Compose Broadcast
5.42K subscribers
313 photos
84 videos
509 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
Forwarded from Android Broadcast (Кирилл Розов)
Команда Ozon стоклнулась с проблемой скорости работы Jetpack Compose. Все это они решили, выработали практики и теперь делятся ими в статье (28 мин):
👉 Разберитесь как работает отрисовка и обновление UI в Compose
👉 Правильно выставляйте аннотации @Stable и @Immutable
👉 Правильно готовьте лямбды (не ссылку на метод) через remember
👉 Оптимизируйте функции, так чтобы они были пропускаемые в рекомпозиции
👉 Уменьшайте область рекомпозиции
👉 Быстрые вычисления при смене состояния
👉 Оптимально реализуйте собственные layout
👉 Не менять состояние, которое только что обновилось
👉 Занимайтесь отладкой и профилированием

#compose #performance
👍23🤮14💩4🤡31
Оптимизация анимации на Compose (10 мин)

Сравнение различных API для анимации в Compose и преимущества разных подходов, ситуации когда стоит выбрать какой и какие проблемы они в себе таят. Найдете кучу полезных лайфхаков

#animation #performance
👍28👎4
История разработчика, который копался в причинах постоянной рекомпозиции LazyList. Вся причина оказалась в модификатор clickable, а точнее composed, который лежит под ним.

Вывод - всегда анализируйте рекомпозицию вашего UI с помощью инструментов, предоставленных командой Google.

В Compose 1.5 авторы фреймворка уже устранили проблему и мигрировали Clickable модификатор на новую систему.

#performance
👍68👎2
Уменьшаем рекомпозиции для изображений в Jetpack Compose

Разбор особенностей рекомпозиции изображений и иконок в Compose

#performance
👍35
В Jetpack Compose 1.5.5. появилась возможность в виде конфигурационого файла передать Compose Compiler типы, которые считать Stable для оптимизации работы Compose UI. В статье (6 мин, EN, ссылка без VPN) разбирается эта фича и ее влияние, а также как получить отчеты

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

#android #performance @compose_broadcast
👍18
Forwarded from Android Broadcast (Кирилл Розов)
Стартует интересный опыт - разработчик написал одно и тоже приложения 15 раз на разных стеках UIKit, SwiftUI, XML, Compose и Compose Multiplatform и меняя другие технологии.

🔗 Часть 1 (EN, 12 мин). Методология (Ссылка без VPN)
🔗 Часть 2 (EN, 21 мин). Результаты производительности (Ссылка без VPN)
🔗 Часть 3 (EN, 10 мин). Подведение итогов (Ссылка без VPN)

#performance @android_broadcast
🏆21👍2
Осознанная оптимизация Compose 2: В борьбе с композицией (15 мин)

В статье автор делится свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему и почитать первую часть статьи

@compose_broadcast #performance
🔥38👍6
Еще одна статья (EN, 7м) на тему советов как сделать UI на Compose быстрым. Особо ничего нового, да и ребята написали про это очень подробно и на русском на Хабре

#performance @compose_broadcast
👍15
В статье (EN, 5м) рассматриваются разные подходы к написанию собственных Modifier в Compose

🔗 Ссылка без VPN

#performance @compose_broadcast
13👏2
⚙️ Приостановка композиции - новый подход к улучшению производительности

В Compose 1.9.0 появляется новое внутреннее API - PausableComposition. Оно позволит:
👉 Инкрементальная рекомпозиция: Подготовка UI, разбивая работу на части
👉 Прогрев UI: Делать подготовку UI асинхронно, до того как она кажется на экране

Обещают хорошее улучшение для LazyColumn и LazyRow

#compose #performance
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥57👍135🤔1