Forwarded from Kotlin Adept Notes (Alex Panov)
Нашли серьезную уязвимость в Jetpack Navigation Compose, которая позволяет открыть любой экран в приложении, даже если там нет явных диплинков ⚠️
Эксплуатируется она максимально просто, достаточно знать имя пакета и название маршрута в графе навигации:
Как защититься
1. Разумеется лучший вариант не использовать данную навигацию, можете посмотреть мой пост со сравнением библиотек навигации для Compose и выбрать подходящую
2. Если в приложении не используются диплинки, можно частично решить проблему перетерев data в определенном intent:
#Security #Compose
@kotlin_adept
Эксплуатируется она максимально просто, достаточно знать имя пакета и название маршрута в графе навигации:
Intent().apply {
setClassName("your.package", "your.package.MainActivity")
data = Uri.parse("android-app://androidx.navigation/YOUR_DESTINATION")
startActivity(this)
}
Как защититься
1. Разумеется лучший вариант не использовать данную навигацию, можете посмотреть мой пост со сравнением библиотек навигации для Compose и выбрать подходящую
2. Если в приложении не используются диплинки, можно частично решить проблему перетерев data в определенном intent:
val intentData = intent.dataString
if (intentData != null && intentData.startsWith("android-app://androidx.navigation")) {
intent.setData(null)
}
#Security #Compose
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Compose Broadcast
Альтернативная библиотека для организации пагинации списков в Compose UI на мультиплатформе
#compose #пагинация #kmp #android #ios #desktop #js #wasm
#compose #пагинация #kmp #android #ios #desktop #js #wasm
Forwarded from Compose Broadcast
Так как Compose Compiler стал частью Kotlin, то встречайте версию 2.0.20
👩💻 Исправили баг с лишними рекомпозициями, который появился в версии 2.0.0
👩💻 Strong skipping режим теперь включен по умолчанию. Что это такое читайте тут
👩💻 Теперь включать выключать разные фичи Compose Compiler можно будет через Gradle DSL с помощью нормального API, а не текстовых флагов
👩💻 абстрактные Composable функции теперь поддерживают значения параметров по умолчанию
👩💻 Экспериментальная оптимизация "Non-skipping group" - отключает генерацию группы вокруг тела Composable
#kotlin #compose
#kotlin #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Видео про то как вставить Fragment в Compose с применением библиотеки fragment-compose (уже стабильная версия 1.8)
Почитать про использование Fragment в Compose можно в документации
#compose #fragment #android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
00:23 Курс по DivKit
01:14 Под капотом AvitoTech
01:34 Copilot Autofix Бесплатно
02:26 AI для анализа крэшей в Android Studio
03:44 Инсайты в AppMetrica
05:19 Новый эпизод Android Show
07:33 NFC в iPhone не для всех
09:43 Kotlin 2.0.20
13:39 Новый контент от @Android_Broadcast и как он будет распространяться
Смотрите видео на разных площадках:
#AndroidBroadcast #compose #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
В Android Studio Koala появились превью для WearOS Tiles и виджетов приложений на основе Compose через Jetpack Glance
#wearos #compose #androidstudio
#wearos #compose #androidstudio
Где запускать загрузку данных для показа UI на Compose? ViewModel? LaunchedEffect? Или может вызывать какую функцию в init блоке? Почитайте статью(6м, EN)
Я предпочитаю использоватьFlow в ViewModel, которая отдаст мне данные, когда произойдет подписка на него. Загружать данные раньше, чем они нужны в UI, (прогрев) стоит явно и не через ViewModel, а через работу с источниками данных
#архитектура #compose
Я предпочитаю использовать
#архитектура #compose
Вышла стабильная Jetpack Navigation 2.8.0. Главное нововведение типобезопасная навигация для Compose 🔥
Что еще:
👉 Поддержка Predictive Back жеста
👉 Новый артифакт navigation-fragment-compose. Добавляет ComposableNavHostFragment, который позволяет в XML граф навигации добавлять Composable функции
#compose #fragment
Что еще:
👉 Поддержка Predictive Back жеста
👉 Новый артифакт navigation-fragment-compose. Добавляет ComposableNavHostFragment, который позволяет в XML граф навигации добавлять Composable функции
#compose #fragment
Forwarded from Compose Broadcast
Рассказ про типобезопасную навигацию для Compose (EN,3м), какой она стала в Jetpack Navigation 2.8.0. Это всё будет работать и в Compose MP
#compose #android #jetpack #kmp
#compose #android #jetpack #kmp