⚙️Optimize App Performance By Mastering Stability in Jetpack Compose (EN, 20м)
Очень подробный гайд по тому, как оптимизировать производительность приложения через использование стабильных типов для меньшего числа рекомпозиций.
Разбираются:
👉 Что такое Stable тип
👉 Как происходит рекомпозиция
👉 Restartable и Skippable Composable функции
👉 Compose Compiler Metrics
👉 Аннотации Immutable и Stable
👉 Аннотация NonRestartableComposable
👉 Как стабилизировать Composable функции
👉 Strong Skipping Mode
#compose#производительность
⚙️ Как растет производительность Jetpack Compose
Google показала как они снизили лаги UI на Jetpack Compose за 2 года. Тесте проводились на Pixel 3a
В Compose 1.9.0 появятся еще улучшения:
🚀 Приостановка композции
🚀 Фоновая подготовка текста для отображения
🚀 Улучшения предзагрузки в LazyLayout
#compose#производительность
⚙️Optimize App Performance By Mastering Stability in Jetpack Compose (EN, 20м)
Очень подробный гайд по тому, как оптимизировать производительность приложения через использование стабильных типов для меньшего числа рекомпозиций.
Разбираются:
👉 Что такое Stable тип
👉 Как происходит рекомпозиция
👉 Restartable и Skippable Composable функции
👉 Compose Compiler Metrics
👉 Аннотации Immutable и Stable
👉 Аннотация NonRestartableComposable
👉 Как стабилизировать Composable функции
👉 Strong Skipping Mode
#compose#производительность
🚀 Ускорения запуска приложения со Splash скрин за счет использования прозрачной Activity.
По умолчанию все Activity в Android являются непрозрачными и перекрывают Activity под ними, что приводит к остановке их работы. Автор статьи решил сделать иначе и запускается MainActivity, а поверх SplashActivity. Это позволяет продолжать работать MainActivity и прогреть код в ней.
Подробности в статье (EN,9м)
#android#производительность
🐱Droidex - Android библиотека для определения уровня производительности устройства на основе характеристик и состояния: процессора, памяти, размера heap, скорости доступа в сеть, свободного хранилища, заряда батаерии и прочих настроек на устройстве.
DroidDex.getPerformanceLevelLd(PerformanceClass.CPU, PerformanceClass.MEMORY)
.observe(lifecycleOwner) { level: PerformanceLevel ->
when(level) {
EXCELLENT -> // Флагманский уровень
HIGH -> // Довольно сильное устройство, но не самое мощное
AVERAGE -> // Средняя производительность/возможности
LOW -> // Бюджетный телефон/низкая производительность
UNKNOWN -> // Не смогли понять ничего
}
}
Больше подробностей в статье или вот ссылка
#android#производительность
‼️ Что надо сделать? Не создавайте сообщения до того, как действительно убедитесь, что включено логирование и откладывать работу для на попозже (совет хорошо для всего). Например
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled) {
Log.d(tag, messageBuilder())
}
}
но автор еще не учел проверку уровня логирования:
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, messageBuilder())
}
}
или прийти к более общей функции
inline fun log(tag: String, level: Int, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, level)) {
when (level) {
Log.VERBOSE -> Log.v(tag, messageBuilder())
Log.DEBUG -> Log.d(tag, messageBuilder())
Log.INFO -> Log.i(tag, messageBuilder())
Log.WARN -> Log.w(tag, messageBuilder())
Log.ERROR -> Log.e(tag, messageBuilder())
else -> Log.d(tag, messageBuilder()) // fallback
}
}
}
#android#производительность
🤖Уверен что правильно работаешь с логами?
Разработчик решил оценить влияние логирования на работу приложения и описал в статье. Проблема только если создаете лишние объекты
#android#производительность
Выпуск программы «Экономика» телеканала Крым 24 с Руководителем Регионального центра компетенций в сфере производительности труда Романом Леонтьевым 📺
В выпуске обсудили:
📌 реализацию федерального проекта «Производительность труда»;
📌 первые проекты по повышению операционной эффективности в санаторно-курортной сфере в Республике Крым;
📌проект по роботизации промышленных предприятий региона;
📌 визит министра экономического развития Российской Федерации Максима Геннадьевича Решетникова в Республику Крым;
📌 итоги стратегической сессии «Сфера-ПРО. ЭКОНОМИКА».
#федеральныйпроект#производительность труда
HotSwan - быстрое обновление Composable на реальном устройстве. Доступно как плагин для Android Studio
Я выбрал другой путь - делаю СMP проект с поддержкой Android + Desktop JVM и так можно быстро проверять + делать код чище.
#Compose
⚙️ Нашел сайт с демонстрацией того как происходит рекомпозиция с примером хороших и плохих практик
Как была сделана реализация написали в статье, а исходники есть на GitHub
#compose