После релиза Compose 1.8.0 сразу же выпустили свежий RC мультиплатформенной версии. Внесены улучшения в Compose Web для Safari, но также появились и критические изменения:
👉 Зависимость material/material3 больше не добавляет зависимость material-icons-core, её нужно будет добавлять явно.
👉 Больше не поддерживается LocalTextInputService.
👉 Требуется Kotlin Gradle Plugin 2.X.
👉 Старый плагин org.jetbrains.compose.compiler больше не поддерживается.
#compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
CMP Container Size - KMP библиотека для получения размера текущего окна в DP. Пригодится тем кому не подходят стандартные классы размеров окон из Jetpack WindowManager
#compose
@Composable
fun App() {
val containerSize = currentWindowContainerSize()
if (containerSize.width >= 600.dp) {
TabletLayout()
} else {
PhoneLayout()
}
}
#compose
👍30
При показе одной Composable функции
1. Фаза композции
2. Регистрация Side Effect во время композиции
3. Запуск Side Effect-ов
4. DisposableEffect синхронный и запускается сразу после композиции
5. LaunchedEffect запускается после синхронных Side Effect-ов
В статье также рассматривается что происходит при навигации между Composable
🔗 Альтернативная ссылка
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45
Что нового:
👉 Переход на K2
👉 Мультиплатформенные реализации BackHandler и PredictiveBackHandler
👉 Улучшения в тестах
👉 Поддержка вариативных шрифтов на всех платформах
👉 Clipboard API заменяет ClipboardManager для работы c буфером обмена на всех платформах
👉 Множество улучшений в Compose/iOS
👉 На Windows улучшили производительность и размер инсталятора
Множество других улучшений, которые надо разбирать отдельными постами.
#compose #k2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
🔥⚙️ Compose iOS теперь Stable
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Самый громкий и важный анонс в истории Compose Multiplatform с выходом версии 1.8.0
Что именно готово для продакшен применения
👉 Все основные фичи из Jetpack Compose работают на iOS
👉 Типобезопасная навигация с поддержкой deep link
👉 Гибкое управление ресурсами
👉 Поддержка iOS Accessibility API
👉 Ощущения от UI приложения как нативного (скрол, редактирование текста, drag-and-drop, адаптивный UI, навигация жестами и пр)
👉 Производительность UI на Compose близка к SwiftUI, но пока немного уступает
Новая эра мобильной разработки уже тут!
#compose #ios
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍84🔥26🤯6
Forwarded from Android Broadcast
🛠 Значительные переработки под капотом для улучшения поддержки KMP
👉 Добавлена поддержка обработки deep link из Kotlin Common кода
👉 Улучшения API
#jetpack #jetpackupdate #navigation #compose #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Обновляем BOM файл
implementation(platform("androidx.compose:compose-bom:2025.05.00"))
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤯2🔥1👏1
Обновляем BOM файл
implementation(platform("androidx.compose:compose-bom-alpha:2025.05.00"))
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14
Автор статьи написал простое DSL для упрощения работы с пагинацией через JetPack Paging3, вместо решения в лоб от Google. Исходны код на
@Composable
fun ArticlesPage(
articles: LazyPagingItems<Article>,
onAction: (NewsListAction) -> Unit,
) {
val newsListState = rememberLazyListState()
HandlePagingItems(articles) {
onRefresh { CircularProgressIndicator() }
onEmpty { // UI for empty list }
onError { error -> // UI for error }
onSuccess { items ->
LazyColumn(newsListState) {
onPagingItems(key = { it.id }) { article -> // UI for article }
onAppendItem { CircularProgressIndicator(Modifier.padding(6.dp)) }
onLastItem { // UI for end of the list }
}
}
}
}
#compose #dsl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍10
This media is not supported in your browser
VIEW IN TELEGRAM
compose-table - Compose Multiplatform библиотека с поддержкой Android, iOS, JVM Desktop, WASM для показа таблиц
Можно попробовать онлайн версию
#compose #android #ios #jvm #desktop #wasm
Можно попробовать онлайн версию
#compose #android #ios #jvm #desktop #wasm
👍41❤1
В Compose 1.9.0 (пока в альфа) добавили новый Modifier - keepScreenOn(), который будет держать экран включенным, пока Composable функция будет частью композиции
#jetpack
Box(
modifier = Modifier.keepScreenOn()
){
...
}
#jetpack
❤71👍50🔥2
Писали ли свой layout в Compose?
Anonymous Poll
39%
Да
52%
Нет
3%
Не знаю Compose
0%
Не пишу код
1%
Другой вариант
5%
Не участвую в опросе
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
💠 Вышел Haze 1.6.0 - блюр в стиле glassmorphism для Compose Multiplatform
Что нового:
🤖 Размытие теперь работает на всех версиях Android
🎨 Поддержка размытия переднего плана (контента)
📐 Обработка размытых краёв
#compose
Что нового:
🎨 Поддержка размытия переднего плана (контента)
📐 Обработка размытых краёв
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40🤯9🤔4👍2❤1
Что нового
⬆️ Обновление Kotlin, Compose, Okio, Skiko, Coroutines и др зависимостей до актуальных версий
🛠 Исправление багов
👉 Compose артефакты требуют Java 11 и выше из-за перехода на Compose 1.8.0
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥4❤2
Какое из утверждений о Stable типах в Jetpack Compose верно?
Anonymous Quiz
2%
Stable типы всегда пересоздаются при recomposition.
10%
Stable типы не гарантируют отсутствие побочных эффектов в функции composable.
78%
Stable типы помогают снизить количество ненужных recomposition.
5%
Любой data class в Kotlin автоматически считается Stable типом в Compose
6%
Не участвую
🔥17🤔3❤1
Выберите класс, который будет признан Stable типом в Jetpack Compose:
Anonymous Quiz
3%
data class A(val numbers: List<Int>)
74%
data class B(val name: String, val age: Int)
10%
data class C(var id: Int)
10%
data class D(val callback: () -> Unit)
3%
Не участвую
🔥19🤔5🤯1
Какое из следующих утверждений о Stable и Immutable типах в Jetpack Compose верно?
Anonymous Quiz
8%
Immutable типы могут менять своё внутреннее состояние после создания.
28%
Stable типы гарантируют, что их содержимое никогда не изменяется.
4%
Любой data class автоматически считается Immutable в Compose.
61%
Все Immutable типы также считаются Stable типами.
🔥27