Forwarded from Mobile Compose (Jetpack Compose Bot)
#Video #Compose
Дмитрий Григорьев — Путешествие к центру Композиции
Второй доклад из серии моих "подкапотных разбирательств" с Compose (первый можно посмотреть тут).
На этот раз речь пойдет о Композиции, а в ходе доклада будут рассмотрены такие вопросы как:
▫️Когда и где создается композиция?
▫️Какие структуры данных используются для этого?
▫️Каким именно образом внесенные изменения обновляют дерево Composable-компонентов?
📺 Смотреть доклад 👈
Дмитрий Григорьев — Путешествие к центру Композиции
Второй доклад из серии моих "подкапотных разбирательств" с Compose (первый можно посмотреть тут).
На этот раз речь пойдет о Композиции, а в ходе доклада будут рассмотрены такие вопросы как:
▫️Когда и где создается композиция?
▫️Какие структуры данных используются для этого?
▫️Каким именно образом внесенные изменения обновляют дерево Composable-компонентов?
📺 Смотреть доклад 👈
🔥17👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Приложения с KMP и Compose Multiplatform для Android, iOS, Desktop, Web. Стек: Kotlin Inject, KStore, KotlinX библиотеки, Ktor, Coil, KMP Settings, Compose Desktop JVM Hot Reload
Автор - Константин Цховребов из JB команды KMP.
Скачать можно в Google Play, а вот в App Store не выкладывали.
#compose #kmp #kotlin #пример #android #desktop #ios #web #wasm
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34
Forwarded from Android Broadcast
🎉 Jetpack Navigation 3 - навигация для Compose, написанная с нуля!
Будем честны Jetpack Navigation for Compose было никаким решением, до того как в ней появилась типобезопасная навигация, но и тогда остается много вопросов. Google решила что пора написать настоящую навигацию для Compose. Знакомьтесь - Jetpack Nav 3
Ключевые идеи в новой библиотеки: декларативное объявление + "навигация как состояние". Это полностью повторяет идеи что я заложил в NavState. Все это вылилось в принципы:
👉 Разработчик управляет back stack
👉 Возможность расширения и реализации собственной навигации на базовых компонентах
👉 Анимации из коробки
👉 Поддержка Predictive Back
👉 Поддержка адаптивных layout
👉 Сохранения состояния каждого элемент back stack, включая ViewModel
👉 Поддержка многомодульности
Пока представлена только первая альфа и библиотеки еще предстоит путь, как минимум обзавестись поддержкой KMP
🔗 Больше подробности в документации
🐱 Примеры использования на GitHub
#jetpack #compose #навигация
Будем честны Jetpack Navigation for Compose было никаким решением, до того как в ней появилась типобезопасная навигация, но и тогда остается много вопросов. Google решила что пора написать настоящую навигацию для Compose. Знакомьтесь - Jetpack Nav 3
Ключевые идеи в новой библиотеки: декларативное объявление + "навигация как состояние". Это полностью повторяет идеи что я заложил в NavState. Все это вылилось в принципы:
👉 Разработчик управляет back stack
👉 Возможность расширения и реализации собственной навигации на базовых компонентах
👉 Анимации из коробки
👉 Поддержка Predictive Back
👉 Поддержка адаптивных layout
👉 Сохранения состояния каждого элемент back stack, включая ViewModel
👉 Поддержка многомодульности
Пока представлена только первая альфа и библиотеки еще предстоит путь, как минимум обзавестись поддержкой KMP
🔗 Больше подробности в документации
#jetpack #compose #навигация
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥43👍9❤1
Что нового
👉 Compose библиотека с ресурсами теперь может быть собрана как XCFramework (нужен Kotlin 2.2+)
👉 Теперь можно изменить имя генерируемого класса для Compose Resources (Res->)
🛠 Исправление багов
#compose #composemp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22
Forwarded from Android Broadcast
Google показала как они снизили лаги UI на Jetpack Compose за 2 года. Тесте проводились на Pixel 3a
В Compose 1.9.0 появятся еще улучшения:
🚀 Приостановка композции
🚀 Фоновая подготовка текста для отображения
🚀 Улучшения предзагрузки в LazyLayout
#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥48👍7
В
androidx.compose.material3:material3:1.4.0-alpha10 есть множество новых компонентов следующий дизайн системы Google. Помимо компонентов также доступна новая системная физика для движений компонентов@Composable
fun AndroidifyTheme(
content: @Composable () -> Unit,
) {
val colorScheme = LightColorScheme
MaterialExpressiveTheme(
colorScheme = colorScheme,
typography = Typography,
shapes = shapes,
motionScheme = MotionScheme.expressive(), // задание схемы движений
content = {
SharedTransitionLayout {
CompositionLocalProvider(LocalSharedTransitionScope provides this) {
content()
}
}
},
)
}
Больше примеров найдете в статье, а также можно посмотреть в исходниках нового приложения примера Androidify
#compose #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29🤯6🤔3
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
#androidstudio #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60🔥32
This media is not supported in your browser
VIEW IN TELEGRAM
Kotlin Playground позволяет писать код с Compose Multiplatform и сразу его проверить (используется Compose Web)
#compose #composemp #web
#compose #composemp #web
🤯77🔥42
Интересная статья с экспериментов как происходит рекомпозиция в зависимости от параметров. влияние лямбд и strong skipping режима работы компилятора.
По итогу автор выводит ряд рекомендаций (зайдите поставьте лайк на Хабре за статью):
#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤9👏2🤯1
Пример реализации виджета тултипа, который должен уметь:
👉 Показываться под якорным элементом в виде облачка
👉 Скрываться согласно нашей кастомной логике
👉 Добавляться в существующие экраны с минимальными затратами
👉 Не блокировать взаимодействие с остальным UI
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Очень подробный разбор в статье (EN) Материал обязателен тем кто пишет свой UI Kit или много собственных компонентов на Compose
#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29
Почему важно применить? Да потому что в Compose MP по умолчанию используется эффект в лоб от Material, да еще и не в лучшей реализации.
Подробнее про реализацию можно почитать в статье (7м)
#compose #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤2
Новая возможность появилась в Compose 1.9.0-alpha04. В release notes рассказывают про "новый кастомизируемый фреймвор теней" 🤯
@Composable
fun DropShadowSample() {
Box(Modifier.size(100.dp, 100.dp)
.dropShadow(RectangleShape, DropShadow(12.dp)))
}
@Composable
fun InnerShadowSample() {
Box(Modifier.size(100.dp, 100.dp)
.innerShadow(RectangleShape, InnerShadow(12.dp)))
}
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72👍8🤯5
Самый просто способ обновиться - использовать свейжи BOM файл
// Добавляем в зависимости перед добавлением Compose зависимостей
// и лучше версию зависимостей не указывать вовсе, чтобы они всегда из BOM брались
implementation("androidx.compose:compose-bom-alpha:2025.06.00")
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
@Composable
fun AddComponentsToTextContextMenu() {
val textFieldState = rememberTextFieldState()
BasicTextField(
state = textFieldState,
modifier =
Modifier.addTextContextMenuComponents {
separator()
item(key = ClearKeyDataObject, label = "Clear") {
textFieldState.clearText()
close()
}
separator()
}
)
}
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👏8👍5❤1
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30