Android Broadcast
13.8K subscribers
3.13K photos
225 videos
9 files
5.31K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
Forwarded from Kotlin Adept Notes (Alex Panov)
Нашли серьезную уязвимость в Jetpack Navigation Compose, которая позволяет открыть любой экран в приложении, даже если там нет явных диплинков ⚠️

Эксплуатируется она максимально просто, достаточно знать имя пакета и название маршрута в графе навигации:


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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
📺 Fragments in Compose (10 мин)

Видео про то как вставить 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
📺 Kotlin Набирает Обороты | Compose становится быстрее | Поддержка open source (20 мин)

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 и как он будет распространяться

Смотрите видео на разных площадках:
📱 YouTube
📱 VK Video
📺 RuTube

#AndroidBroadcast #compose #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Где запускать загрузку данных для показа UI на Compose? ViewModel? LaunchedEffect? Или может вызывать какую функцию в init блоке? Почитайте статью(6м, EN)

Я предпочитаю использовать Flow в ViewModel, которая отдаст мне данные, когда произойдет подписка на него. Загружать данные раньше, чем они нужны в UI, (прогрев) стоит явно и не через ViewModel, а через работу с источниками данных

#архитектура #compose
Вышла стабильная Jetpack Navigation 2.8.0. Главное нововведение типобезопасная навигация для Compose 🔥

Что еще:
👉 Поддержка 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