Что лучше брать для представления состояния в 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
Media is too big
VIEW IN TELEGRAM
0:00 Introduction
0:39 Basic layout animations
1:11 How do layout animations work
3:18 Lookahead
4:58 Use cases for Lookahead
5:56 Shared elements
6:39 SharedTransitionLayout
8:08 Modifier.sharedElement
9:02 Custom animation specs
9:40 Modifier.sharedBounds
11:43 ResizeMode
12:52 Overlay
15:37 Modifier.skipToLookaheadSize
16:29 Clipping
18:53 Modifier ordering
19:54 Predictive Back
20:53 Shared elements under the hood
21:09 Composition Phase
22:14 Layout Phase
26:27 Drawing Phase
26:49 Overlay under the hood
28:02 Challenges with overlay
29:42 Summary
#compose #анимация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6👏2
Альтернативная библиотека для организации пагинации списков в Compose UI на мультиплатформе
#compose #пагинация #kmp #android #ios #desktop #js #wasm
#compose #пагинация #kmp #android #ios #desktop #js #wasm
🔥16
Так как 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
👍29
Forwarded from Android Broadcast
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
👍25
Интеграция авторизации по биометрии (лицо, отпечаток пальца и т.д.) в Compose Multiplatform под мобилку
#android #ios #compose
#android #ios #compose
❤29🔥7👍2
Forwarded from Kotlin Multiplatform Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Field Spottr - статья как автор сделал приложение с использованием KMP и Compose для Android и iOS. Опубликовано в Google Play и App Store
👉 Исходники на GitHub
#пример #android #ios #compose #kmp
👉 Исходники на GitHub
#пример #android #ios #compose #kmp
🔥15
👉 Shared element transitions
👉 Анимации элементов в Lazy List
👉 Поддержка встроенных ссылок и базового форматирования HTML через AnnotatedString.fromHtml()
👉 ContextualFlowRow и ContextualFlowColumn новые layout которое делают композицию только того контента который могут вместить
🚀 Ускорение работы. В отдельных бенчмарках до 17%
👉 Strong skipping mode включен по умолчанию с Compose Compiler 2.0.20
👉 Различные API их экспериментальных переехали в стабильные
👉 Задепрекейтили ClickableText. На замену BasicText с LinkAnnotation
👉 Поддержка длинных скриншотов
Артефакты
👉 Compose Runtime 1.7.0
👉 Compose Material3 1.3
👉 Compose Material 1.7.0
👉 Compose Foundation 1.7.0
👉 Compose UI 1.7.0
👉 Compose Animation 1.7.0
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍5
Compose Broadcast pinned «‼️ Вышел стабильный Jetpack Compose 1.7.0 👉 Shared element transitions 👉 Анимации элементов в Lazy List 👉 Поддержка встроенных ссылок и базового форматирования HTML через AnnotatedString.fromHtml() 👉 ContextualFlowRow и ContextualFlowColumn новые layout которое…»
Forwarded from Android Broadcast
Вышла стабильная 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
🔥40👍8