Compose Broadcast
5.44K subscribers
315 photos
83 videos
513 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
Вышел Compose Compiler 1.5.8 с поддержкой Kotlin 1.9.22 и исправлением багов

@compose_broadcast
👏26🔥4
В новой версии androidx.lifecycle появился LifecycleEventEffect для Compose, который позволяет отслеживать события жизненного цикла. До этого приходилось самостоятельно создавать LifecycleEventObserver и использовать DisposableEffect, чтобы корректно удалить наблюдателя.

Помимо общего эффекта, также появились более специфичные эффекты LifecycleStartEffect и LifecycleResumeEffect для отслеживания событий onStart и onResume соответственно.

⚠️ Обратите внимание, что отследить событие onDestroy не получится, потому что Compose не будет рекомпозироваться после события onStop!
🔥85👍7
​​Google удалила базовый курс по Kotlin, вместо него доступен только курс по Compose

Компания удалила со своего сайта курс Android Basics with Kotlin и оставила только Android Basics with Compose: https://developer.android.com/courses/android-basics-compose/course

Google как бы намекает, что если вы изучаете разработку на Android или начинаете новое приложение, то вы должны выбирать Compose. Это не значит, что прямо сейчас что-то перестанет работать. Но Google явно делают упор именно на Compose в будущем.

Естественно, не все тепло восприняли такие действия. На Reddit, например, идет активное обсуждение. Там есть как обоснованные за, так и против. Интересно почитать: https://reddit.com/r/androiddev/comments/194r5xm/google_just_removed_their_android_basics_with/

#android #google
👍28
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Action Menu - мультиплатформенная библиотека для реализации меню в Compose MP

#android #ios #jvm @compose_broadcast
🔥12👍3
Если вам надо рисовать UI под системными панелями, когда используете Compose - статья (6 мин, EN, ссылка без VPN) в помощь и исходники на GitHub

#android @compose_broadcast
🔥14
CompositionLocal - это способ передачи данных которые могут использоваться во всех вложенных Composable функций. Самый просто пример - это MaterialTheme.

В статье (6 мин, EN, ссылка без VPN) вы можете получше разобраться в вопросе (ну уровне применения) либо читайте официальную документацию

#compose @compose_broadcast
🔥21👍3
Forwarded from Mobile Developer (Алексей Гладков)
Compose Multiplatform 1.6.0 beta released

https://github.com/JetBrains/compose-multiplatform/releases/tag/v1.6.0-beta01

👉 Экспериментальная поддержка compose resources
🔥 Поддержка установленных шрифтов для десктопа и веба
👉 Wasm таргет в мавен централ
👉 Экспериментальная поддержка нативных попапов/диалогов за пределами основного окна
👉 Kotlin 1.9.22

Бегом тестить 😁
🔥24👍1
Вышел Jetpack Compose 1.6.0:
🚀 Ускорение работы скролла и времени запуска
👉 Обновленное руководство создания собственных Modifier
👉 Улучшен код, генерируемый Compose плагином компилятора
👉 Новый экспериментальный режим "strong skipping mode", который делает правила рекомпозиции менее строгими
👉 Отключен padding для шрифтов по умолчанию
👉 Добавлена поддержка нелинейного масштабирования текста
👉 Добавлена поддержка Drag & Drop между приложениями. Пример тут
👉 Выделение элементов мышью, включая текст

Обновленный Roadmap развития JetpackCompose тут

#android @compose_broadcast
👍34🔥23
Инструкция (11 мин) по интеграции Яндекс Карт в приложение на Compose Multiplatform (Android + iOS)

#maps #android #ios @compose_broadcast
👍35🔥154
Вышел Accompanist 0.34.0: обновление до Compose 1.6 и исправление документации

#android @compose_broadcast
👍5
В Compose Multiplatform 1.6.0-beta01 появилась экспериментальная поддержка ресурсов, в том числе появилась поддержка кастомных шрифтов! Теперь генерируется специальный класс с ресурсами, по аналогии с R классом в Android.

В статье (EN, 4 мин, ссылка без VPN) вы узнаете как работать с такими ресурсами и какие проблемы сейчас есть:

👉 Есть проблемы с .ttf шрифтами
👉 Нет поддержки plurals
👉 Нельзя объявить ресурсы в нескольких модулях

#android #ios #jvm @compose_broadcast
24👍8
Подборка советов по использованию Compose с другими библиотеками (EN, 5 мин, ссылка без VPN):
👉 Как объявлять функции чтобы они могли дружить с Preview
👉 Навигация в многомодульном приложении
👉 ViewModel Dependency Injection

#android @compose_broadcast
👍9
Довольно хорошая демонстрация (EN, 7 мин, ссылка без VPN) как отслеживать какие функции в Compose слишком часто выполняются при рекомпозиции и как оптимизировать работу с помощью аннотация @Stable и @Immutable

#android #performance @compose_broadcast
👍18
Разбор Modifier.aspectRatio(1f) читать тут

@compose_broadcast
👍11
PrevGen - KSP плагин компилятора для генерации стабовых данных для Compose Preview на основе data классов

#ksp @compose_broadcast
👍32🔥5
Forwarded from Kotlin Adept Notes (Alex Panov)
Наткнулся на статью "38 ошибок в Compose" и возникло строгое ощущение, что статью писало ChatGPT, ибо ошибок и неточностей там огромное количество, даже начиная с самых первых пунктов.

1. Нам предлагают написать такой код за место обычной лямбды:


@Composable
fun MyComponent() {
var counter by remember { mutableStateOf(0) }
val clickAction = rememberUpdatedState { counter++ }

Button(onClick = { clickAction.value.invoke() }) {
Text("Clicked $counter times")
}
}


При том, что rememberUpdatedState в целом используется для другого, в примере с обычной лямбдой было бы все окей, так как Compose умеет мемеизировать лямбды со стабильным типами.

В большинстве случаев вам не нужно ничего оптимизировать – это задача команды Compose. Но если все же нужно:
🔵оберните лямбды с нестабильными типами в remember
🔵передавайте часто меняющиеся параметры как Sate или лямбду

2. Далее нам предлагают заменить вложенные layout на Box или ConstraintLayout 🤡

Тут даже комментировать не хочется, ибо в Compose есть правило одного прохода, вьюшки не меряются два раза, соответственно проблем с производительностью не будет.

Разумеется это не все проблемы в статье, так что не верьте всему, что написано в интернете (мне тоже), а лучше читайте официальную документацию🗿
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48👌3🏆1
Вышел Material Design 3 для Compose версии 1.2
👉 Новые экспериментальный компоненты - PullToRefreshContainer и PullToRefreshState
👉 Новый экспериментальный тип кнопок - Segmented Button
👉 Автоматическое скрытие/появление BottomBar при скролле
👉 Рефакторинг SwipeToDismiss
👉 Badge и BadgedBox теперь стабильные
👉 Сhip тоже стабильные
👉 Больше цветов в палитре цветов для большой кастомизации приложения, а также теперь она стала работать лучше
👉 Разные типы Surface

Больше подробностей в release notes

#material #design #android @compose_broadcast
21👍10🔥2
Руководство по использованию Slack Circuit архитектуры в KMP проекта с UI на Compose (EN, 5 мин, ссылка без VPN). Происходит демонстрация пример. Presenter не тот Presenter что в MVP

#architecture
🔥6👍2
Вышел Compose Multiplatform 1.6.0 RC1 с исправлениями багов в бета версиях

@compose_broadcast
🔥24👍3