Forwarded from Android Broadcast (Кирилл Розов)
Команда Ozon стоклнулась с проблемой скорости работы Jetpack Compose. Все это они решили, выработали практики и теперь делятся ими в статье (28 мин):
👉 Разберитесь как работает отрисовка и обновление UI в Compose
👉 Правильно выставляйте аннотации @Stable и @Immutable
👉 Правильно готовьте лямбды (не ссылку на метод) через remember
👉 Оптимизируйте функции, так чтобы они были пропускаемые в рекомпозиции
👉 Уменьшайте область рекомпозиции
👉 Быстрые вычисления при смене состояния
👉 Оптимально реализуйте собственные layout
👉 Не менять состояние, которое только что обновилось
👉 Занимайтесь отладкой и профилированием
#compose #performance
👉 Разберитесь как работает отрисовка и обновление UI в Compose
👉 Правильно выставляйте аннотации @Stable и @Immutable
👉 Правильно готовьте лямбды (не ссылку на метод) через remember
👉 Оптимизируйте функции, так чтобы они были пропускаемые в рекомпозиции
👉 Уменьшайте область рекомпозиции
👉 Быстрые вычисления при смене состояния
👉 Оптимально реализуйте собственные layout
👉 Не менять состояние, которое только что обновилось
👉 Занимайтесь отладкой и профилированием
#compose #performance
👍23🤮14💩4🤡3❤1
Оптимизация анимации на Compose (10 мин)
Сравнение различных API для анимации в Compose и преимущества разных подходов, ситуации когда стоит выбрать какой и какие проблемы они в себе таят. Найдете кучу полезных лайфхаков
#animation #performance
Сравнение различных API для анимации в Compose и преимущества разных подходов, ситуации когда стоит выбрать какой и какие проблемы они в себе таят. Найдете кучу полезных лайфхаков
#animation #performance
👍28👎4
История разработчика, который копался в причинах постоянной рекомпозиции LazyList. Вся причина оказалась в модификатор clickable, а точнее composed, который лежит под ним.
Вывод - всегда анализируйте рекомпозицию вашего UI с помощью инструментов, предоставленных командой Google.
В Compose 1.5 авторы фреймворка уже устранили проблему и мигрировали Clickable модификатор на новую систему.
#performance
Вывод - всегда анализируйте рекомпозицию вашего UI с помощью инструментов, предоставленных командой Google.
В Compose 1.5 авторы фреймворка уже устранили проблему и мигрировали Clickable модификатор на новую систему.
#performance
👍68👎2
Уменьшаем рекомпозиции для изображений в Jetpack Compose
Разбор особенностей рекомпозиции изображений и иконок в Compose
#performance
Разбор особенностей рекомпозиции изображений и иконок в Compose
#performance
👍35
📺 Enhancing Jetpack Compose app performance (28 мин) - большое видео с советами про оптимизацию скорости работы Compose UI
#performance @compose_broadcast
#performance @compose_broadcast
YouTube
Enhancing Jetpack Compose app performance
In this video, Tomáš will demonstrate techniques for improving Jetpack Compose app performance through measurement, debugging, and strategic optimization.
You will gain insights into the effective use of Macrobenchmarks in Compose to understand startup and…
You will gain insights into the effective use of Macrobenchmarks in Compose to understand startup and…
👍23
В Jetpack Compose 1.5.5. появилась возможность в виде конфигурационого файла передать Compose Compiler типы, которые считать Stable для оптимизации работы Compose UI. В статье (6 мин, EN, ссылка без VPN) разбирается эта фича и ее влияние, а также как получить отчеты
#performance
#performance
🔥11
Довольно хорошая демонстрация (EN, 7 мин, ссылка без VPN) как отслеживать какие функции в Compose слишком часто выполняются при рекомпозиции и как оптимизировать работу с помощью аннотация
#android #performance @compose_broadcast
@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
🔗 Часть 1 (EN, 12 мин). Методология (Ссылка без VPN)
🔗 Часть 2 (EN, 21 мин). Результаты производительности (Ссылка без VPN)
🔗 Часть 3 (EN, 10 мин). Подведение итогов (Ссылка без VPN)
#performance @android_broadcast
🏆21👍2
Осознанная оптимизация Compose 2: В борьбе с композицией (15 мин)
В статье автор делится свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему и почитать первую часть статьи
@compose_broadcast #performance
В статье автор делится свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему и почитать первую часть статьи
@compose_broadcast #performance
🔥38👍6
Еще одна статья (EN, 7м) на тему советов как сделать UI на Compose быстрым. Особо ничего нового, да и ребята написали про это очень подробно и на русском на Хабре
#performance @compose_broadcast
#performance @compose_broadcast
👍15
В статье (EN, 5м) рассматриваются разные подходы к написанию собственных Modifier в Compose
🔗 Ссылка без VPN
#performance @compose_broadcast
🔗 Ссылка без 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👍13❤5🤔1