Forwarded from Kotlin Broadcast
Чтобы попробовать Kotlin 2.0 надо будет переезжать на библиотеки с его поддержкой:
👉 Google KSP
👉 KotlinX Coroutines с поддержкой 2.0 я не нашел, но может и не нужна спец версия
👉 KotlinX Serialiazation 1.7.0-RC с поддержкой Kotlin 2.0
👉 Отдельный Gradle плагин для Compose (Jetpack и Multiplatform) с поддержкой Kotlin 2.0
👉 KAPT поддерживает Kotlin 2.0 в экспериментальном режиме
👉 Начиная с IntelliJ IDEA 2023.3 and Android Studio Iguana (2023.2.1), есть поддержка Kotlin 2.0
👉 SQLDelight работает
👉 SKIE от Touchlab тоже имеет поддержку Kotlin 2.0
Полное руководство по миграции на компилятор K2 и последствия перехода описала JetBrains в документации
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
👉 Google KSP
👉 KotlinX Coroutines с поддержкой 2.0 я не нашел, но может и не нужна спец версия
👉 KotlinX Serialiazation 1.7.0-RC с поддержкой Kotlin 2.0
👉 Отдельный Gradle плагин для Compose (Jetpack и Multiplatform) с поддержкой Kotlin 2.0
👉 KAPT поддерживает Kotlin 2.0 в экспериментальном режиме
👉 Начиная с IntelliJ IDEA 2023.3 and Android Studio Iguana (2023.2.1), есть поддержка Kotlin 2.0
👉 SQLDelight работает
👉 SKIE от Touchlab тоже имеет поддержку Kotlin 2.0
Полное руководство по миграции на компилятор K2 и последствия перехода описала JetBrains в документации
Полный список всех плагинов компилятора и поддержку ими K2 смотрите тут
#kotlin2 #k2
Forwarded from Kotlin Broadcast
Улучшения Gradle в Kotlin 2.0:
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в аттрибутах при публикации будет указываться для какой JVМ варианта сделана бибилотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
👉 Новое Gradle DSL для конфигурации опций компиляции для всех тасков мультиплатформенных проектов
👉 Compose Runtime теперь часть Kotlin репозитория и теперь всегда будет с актуальными версиями. Из-за этого появился отдельный Gradle Compose плагин для Jetpack и Multiplatform Compose
👉 Теперь в аттрибутах при публикации будет указываться для какой JVМ варианта сделана бибилотека: Android, Standrat JVM или NO JVM
👉 Улучшена работа с зависимостями в Kotlin/Native
👉 Разграничение какие API можно вызывать в разных уровнях DSL
👉 Kotlin/Native компилятор будет загружать только когда он нужен для сборки, а не только если Kotlin/Native используется в проекте
👉 Минимальная поддерживаемая версия Android Gradle Plugin поднята до 7.1.3
👉 Gradle опция
kotlin.experimental.tryNext
для использования следующей dev версией Kotlin за текущей👉 Вывод отчета сборки в JSON формате
👉 kapt наследует конфигурацию из родителського Gradle проекта
#gradle #kotlin2
В Android Studio Koala FD появился экспериментальный инструмент Compose Preview Screenshot Testing - автоматизация тестов сравнения Compose UI и скриншотов из дизайна
#compose #androidstudio #автотесты
#compose #androidstudio #автотесты
Обновление Android Jetpack от 14 мая 2024:
👉 Lifecycle 2.8.0 Stable с поддержкой KMP
👉 Paging 3.30 Stable c поддержкой KMP
👉 ViewPager2 1.1.0 Stable с исправлениями багов и лучшей работой с Fragment
👉 Compose ViewFinder Compose 1.0 Alpha 01 - нативная Composable функция для интеграции превью камеры на CameraX или Camera2 API
👉 Annotation 1.8.0 Stable - аннотация @ReplaceWith для описания замены в @Deprecated
Готовятся к релизам
👉 RC: AppCompat 1.7 || Core-RemoteViews 1.1.0 || Window Manager 1.3.0
👉 Beta: Camera 1.4.0 || Compose 1.7.0 || Fragment 1.8.0 || Navigation 2.8.0 || Wear Compose 1.4.0 || Compose Material 3 1.3.0 || Compose Material3 Adaptive 1.0.0 || Concurrent 1.2.0
#jetpack #jetpackupdate #kmp
👉 Lifecycle 2.8.0 Stable с поддержкой KMP
👉 Paging 3.30 Stable c поддержкой KMP
👉 ViewPager2 1.1.0 Stable с исправлениями багов и лучшей работой с Fragment
👉 Compose ViewFinder Compose 1.0 Alpha 01 - нативная Composable функция для интеграции превью камеры на CameraX или Camera2 API
👉 Annotation 1.8.0 Stable - аннотация @ReplaceWith для описания замены в @Deprecated
Готовятся к релизам
👉 RC: AppCompat 1.7 || Core-RemoteViews 1.1.0 || Window Manager 1.3.0
👉 Beta: Camera 1.4.0 || Compose 1.7.0 || Fragment 1.8.0 || Navigation 2.8.0 || Wear Compose 1.4.0 || Compose Material 3 1.3.0 || Compose Material3 Adaptive 1.0.0 || Concurrent 1.2.0
#jetpack #jetpackupdate #kmp
Обновления библиотек Jetpack Lifecycle 2.8.0
Lifecycle
👉 LocalLifecycleOwner из Compose переехал в
👉 Новые Composable API dropUnlessResumed и dropUnlessStarted что позволяет лямбду вызывать только когда LifecycleOwner достигнет состояния Resumed/Started соотвественно и не будет вызывать когда выйдет из него. Например, полезно для навигации
👉 LifecycleStartEffect и LifecycleResumeEffect бросают ошибку если не задать key. По аналоги с DisposableEffect
👉 API
ViewModel
👉 ViewModel теперь позволяет передать произвольный CoroutineScope при создании. Полезно для тестов и не только
👉 ViewModel переписали на Kotlin и перешли с Closable на AutoClosable из Kotlin
👉 API
👉
👉 Для всех таргетов не Android должна быть обязательна указана фабрика для
LiveData
👉 Переписали NullSafeMutableLiveData
#lifecycle #viewmodel #compose #kmp
Lifecycle
👉 LocalLifecycleOwner из Compose переехал в
lifecycle-runtime-compose
👉 Новые Composable API dropUnlessResumed и dropUnlessStarted что позволяет лямбду вызывать только когда LifecycleOwner достигнет состояния Resumed/Started соотвественно и не будет вызывать когда выйдет из него. Например, полезно для навигации
👉 LifecycleStartEffect и LifecycleResumeEffect бросают ошибку если не задать key. По аналоги с DisposableEffect
👉 API
Lifecycle
, LifecycleOwner
, LifecycleObserver
, Lifecycle.State
, Lifecycle.Event
и LifecycleRegistry
теперь являются частью мультиплатформенных модулейViewModel
👉 ViewModel теперь позволяет передать произвольный CoroutineScope при создании. Полезно для тестов и не только
👉 ViewModel переписали на Kotlin и перешли с Closable на AutoClosable из Kotlin
👉 API
ViewModel
, ViewModelStore
, ViewModelStoreOwner
и ViewModelProvider
теперь являются частью мультиплатформенных модулей👉
ViewModelProvider.NewInstanceFactory
и ViewModelProvider.AndroidViewModelFactory
доступны только на Android👉 Для всех таргетов не Android должна быть обязательна указана фабрика для
ViewModel
LiveData
👉 Переписали NullSafeMutableLiveData
#lifecycle #viewmodel #compose #kmp
Forwarded from Compose Broadcast
Разработчикам под Android TV рекомендуют переходить с Leanback на Compose. Руководство по миграции
#androidtv #compose
#androidtv #compose
Android Auto позволит устанавливать больше типов приложений когда-то в недалеком будущем. Источник тут
#androiauto #auto
#androiauto #auto
Media is too big
VIEW IN TELEGRAM
Привет! На связи автор и создатель @android_broadcast Кирилл Розов
Я покинул Тинькофф 🤯 и буду фокусироваться на создание контента для Android🤖 (а уже и Kotlin Multiplatform 👩💻 ) разработчиков 🔥
Начинается новый большой этап для проекта. Будет много полезного контента в Telegram и YouTube, а также эксклюзивные разборы, статьи, разработки проектов и много всего полезного на Boosty и в Telegram.
Чтобы ничего не пропустить и поддержать создание контента вы можете оформить подписку на Boosty (лучше тут) или Telegram. Независимо от способа оформления вы получите одни и те же возможности, а голосовать за контент и получать мои консультации можно через подписки уровнем выше и только на Boosty
#AndroidBroadcast
Я покинул Тинькофф 🤯 и буду фокусироваться на создание контента для Android
Начинается новый большой этап для проекта. Будет много полезного контента в Telegram и YouTube, а также эксклюзивные разборы, статьи, разработки проектов и много всего полезного на Boosty и в Telegram.
Чтобы ничего не пропустить и поддержать создание контента вы можете оформить подписку на Boosty (лучше тут) или Telegram. Независимо от способа оформления вы получите одни и те же возможности, а голосовать за контент и получать мои консультации можно через подписки уровнем выше и только на Boosty
#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашел /e/OS - полностью деГуглизированую мобильную экосистему на основе AOSP
👉 Все от Google заменил на мета поиск от авторов
👉 Google Play Services замени на microG
👉 Никакие протоколы и сервисы Google не используются под капотом API
👉 Можно купить устройство с этой ОС или поставить на совместимые смартфоны
Полное описание ОС можно найти тут
#aosp
👉 Все от Google заменил на мета поиск от авторов
👉 Google Play Services замени на microG
👉 Никакие протоколы и сервисы Google не используются под капотом API
👉 Можно купить устройство с этой ОС или поставить на совместимые смартфоны
Полное описание ОС можно найти тут
#aosp
Начал писать свою собственную библиотеку навигации, которая построена на идеи "Навигация" как состояние". Исходный код проекта на GItHub и доступ получили все платные подписчики уровня Middle на Boosty и выше, а также платные подписчики в Telegram (оформить подписку тут).
ВАЖНО‼️ Проект находится в активной разработке и будет меняться. Сейчас это самый первый скелет
ℹ️ Новостной проект завершу на следующей неделе стримами в понедельник и среду!
#кодинг #AndroidBroadcast
ВАЖНО
ℹ️ Новостной проект завершу на следующей неделе стримами в понедельник и среду!
#кодинг #AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересный разбор (EN, 11м) разных стратегий кэширования (6 штук) и как их можно описать универсальной функцией в Kotlin
Обзор недавно представленного Compose Preview Screenshot Testing https://t.me/android_broadcast/7578
#тестирование #androidstudio
#тестирование #androidstudio
🔴 Стартует Разработка новостного приложения. Часть 6. Что я сделал не так
После ревью кода нашел много моментов, которые стоило сделать по-другому. На эфире расскажу, что нужно поправить, и как стоило организовать проект, чтобы сразу публиковать хороший код.
❗️ Запись эфира останется на канале
#AndroidBroadcast #live #кодинг
После ревью кода нашел много моментов, которые стоило сделать по-другому. На эфире расскажу, что нужно поправить, и как стоило организовать проект, чтобы сразу публиковать хороший код.
❗️ Запись эфира останется на канале
#AndroidBroadcast #live #кодинг