Фреймворк тестирования Ultron обзавелся поддержкой Compose Multiplatform. Пока находится в стадии альфа, но уже можно пробовать писать свои тесты на нём.
Автор библиотеки сделал её большой разбор в📺 видео для @android_broadcast
#тестирование #multiplatform #compose
Автор библиотеки сделал её большой разбор в
#тестирование #multiplatform #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1
Разбор(EN,6м) того как работает Jetpack Compose Preview в IDE и на устройстве/эмуляторе
#compose #androidstudio
#compose #androidstudio
👌3
Полезная статья (EN,12м) с демонстрацией что умеют TextField в Compose и как это реализовать. Примеры с градиентами, маской ввода номера карты, обработка действий пользователя, использование username и многое другое
#compose
#compose
❤28👍14🔥1
Что лучше брать для представления состояния в Compose: MutableState или MutableStateFlow из корутин? Размышления и сравнение читайте в статье (EN, 8м)
#compose #coroutines
#compose #coroutines
👍6
👍14❤1
❤17👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Valkyrie - плагин для Idea/Android Studio от подписчика канала для конвертации SVG и Android XML Vector Drawable в Compose ImageVector. Поддерживает Compose Multiplatform
Давайте поддержим звездой на GitHub
#compose #idea #androidstudio
Давайте поддержим звездой на GitHub
#compose #idea #androidstudio
👍61🔥5
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
👍30💯4