#optimization #performance
Improving App Startup: Lessons from the Facebook App
История оптимизации времени запуска Android приложения Facebook. Кода и конкретных советов не приводится, но рассказывается про том как замеряли время запуска по метрикам Time-To-Initial-Display (отписывался фон) и Time-To-Full-Display (полная отрисовка). Статья содержит советы как делать и откуда начинать, а также на что обратить внимание во время оптимизации
Improving App Startup: Lessons from the Facebook App
История оптимизации времени запуска Android приложения Facebook. Кода и конкретных советов не приводится, но рассказывается про том как замеряли время запуска по метрикам Time-To-Initial-Display (отписывался фон) и Time-To-Full-Display (полная отрисовка). Статья содержит советы как делать и откуда начинать, а также на что обратить внимание во время оптимизации
#compose
Jetpack Compose Phases
Новая статья в документации по Compose в которой рассказывается про фазы работы Compose и что на них происходит и какие улучшения были сделаны по сравнению с Android View.
📺 Видео версия (~30 мин)
Jetpack Compose Phases
Новая статья в документации по Compose в которой рассказывается про фазы работы Compose и что на них происходит и какие улучшения были сделаны по сравнению с Android View.
📺 Видео версия (~30 мин)
#подборкавидео #androidbroadcast
📺 Gradle and AGP build APIs: Configure your build (7 мин)
📺 Android Academy Advanced: Testing cases in HH.ru, AliExpress and Revolut (~2.5 часа)
📺 What's new in Kotlin 1.6.0 (~10 минут)
📺 Kotlin Standard Library Changes in 1.6 (8 минут)
📺 A Story of Android App Excellence: Duolingo revamped their app and improved developer velocity (2.5 минуты)
📺 Дизайн система для мобильных приложений (~1.5 часа)
📺 Курс по Dagger от Кирилла Розова. Урок 6. Dagger Hilt (~30 минут)
📺 Gradle and AGP build APIs: Configure your build (7 мин)
📺 Android Academy Advanced: Testing cases in HH.ru, AliExpress and Revolut (~2.5 часа)
📺 What's new in Kotlin 1.6.0 (~10 минут)
📺 Kotlin Standard Library Changes in 1.6 (8 минут)
📺 A Story of Android App Excellence: Duolingo revamped their app and improved developer velocity (2.5 минуты)
📺 Дизайн система для мобильных приложений (~1.5 часа)
📺 Курс по Dagger от Кирилла Розова. Урок 6. Dagger Hilt (~30 минут)
#AndroidBroadcast #livestream
🔴 Прямой эфир с новостями и ответами на вопросы
Готовьте напиток и подключайтесь к общению! Буду отвечать на ваши вопросы и рассказывать про ближайшие планы
Запись стрима останется на канале после эфира
🔴 Прямой эфир с новостями и ответами на вопросы
Готовьте напиток и подключайтесь к общению! Буду отвечать на ваши вопросы и рассказывать про ближайшие планы
Запись стрима останется на канале после эфира
#jetpackupdate #jetpack #fragment #emoji
Обновление Android Jetpack 17 ноября 2021
Что нового:
👉 AppCompat 1.4 Stable - поддержка Emoji Compat по умолчанию
👉 Fragment 1.4.0 Stable - Fragment StrictMode, множественный back stack и возможность получить текущий Fragment из FragmentContainerView, новый менеджер состояний стал основным и единственным
👉 Beta Hilt-Navigation-Compose 1.0
👉 Preference 1.2.0 вышли в beta, а с ними адаптации UI настроек на складных устройствах и планшетах
👉 Релиз библиотеки Emoji2 1.0
👉 Paging 3.1.0 Stable - исправление багов, изменение поведения и улучшения API
👉 WorkManager 2.7.1 с исправлением багов
Напишите в комментариях стоит ли делать выпуски об обновлениях Jetpack. Например мне точно нужно рассказать про изменения в Fragment 1.4, так как там много важного а остальное так себе и не вижу смысла рассказывать о других изменениях
Обновление Android Jetpack 17 ноября 2021
Что нового:
👉 AppCompat 1.4 Stable - поддержка Emoji Compat по умолчанию
👉 Fragment 1.4.0 Stable - Fragment StrictMode, множественный back stack и возможность получить текущий Fragment из FragmentContainerView, новый менеджер состояний стал основным и единственным
👉 Beta Hilt-Navigation-Compose 1.0
👉 Preference 1.2.0 вышли в beta, а с ними адаптации UI настроек на складных устройствах и планшетах
👉 Релиз библиотеки Emoji2 1.0
👉 Paging 3.1.0 Stable - исправление багов, изменение поведения и улучшения API
👉 WorkManager 2.7.1 с исправлением багов
Напишите в комментариях стоит ли делать выпуски об обновлениях Jetpack. Например мне точно нужно рассказать про изменения в Fragment 1.4, так как там много важного а остальное так себе и не вижу смысла рассказывать о других изменениях
#performance
Partitioning Chrome's Code for Faster Launch Times on Android
Команда Chrome делится как они ускорили запуск приложения и загрузку страниц на Android, Они разделили загрузку фиче модулей с помощью атрибута android:isolatedSplits, что заставит загружать каждую split APK из App Bundle отдельно, а не автоматом на старте приложения.
Даже не знал что такая возможность существует и добавлена была в Android 8.0 (4 года назад). Знали про неё? Стало интересно попробовать?
Partitioning Chrome's Code for Faster Launch Times on Android
Команда Chrome делится как они ускорили запуск приложения и загрузку страниц на Android, Они разделили загрузку фиче модулей с помощью атрибута android:isolatedSplits, что заставит загружать каждую split APK из App Bundle отдельно, а не автоматом на старте приложения.
Даже не знал что такая возможность существует и добавлена была в Android 8.0 (4 года назад). Знали про неё? Стало интересно попробовать?
👍1
#compose #navigation
Jetpack Compose Navigation в многомодульном проекте
Опыт организации навигации с помощью Jetpack Navigation в многомодульном Android приложения с Compose
Jetpack Compose Navigation в многомодульном проекте
Опыт организации навигации с помощью Jetpack Navigation в многомодульном Android приложения с Compose
#androidos
Main Loop (Главный цикл) в Android Часть 2. Android SDK
Продолжение разбора Handler и Looper из Android
Main Loop (Главный цикл) в Android Часть 2. Android SDK
Продолжение разбора Handler и Looper из Android
#gradle #Madskills
Gradle and AGP build APIs: Configure your build (5 мин)
Разбор устройства Gradle и Android Gradle Plugin, а также их настройка в проекте, фазы билда и сравнение Groovy и Kotlin Gradle DSL
📺 Видео версия (7 мин)
Gradle and AGP build APIs: Configure your build (5 мин)
Разбор устройства Gradle и Android Gradle Plugin, а также их настройка в проекте, фазы билда и сравнение Groovy и Kotlin Gradle DSL
📺 Видео версия (7 мин)
#media
Вышел ExoPlayer 2.16
Что нового:
👉 Поддержка Android 12
👉 Выбор нескольких треков в интерфейсе плеера
👉 Подготовка к миграции на AndroidX Media3
👉 Исправление багов
Вышел ExoPlayer 2.16
Что нового:
👉 Поддержка Android 12
👉 Выбор нескольких треков в интерфейсе плеера
👉 Подготовка к миграции на AndroidX Media3
👉 Исправление багов
Создал группу в которой будем обсуждать встречи нашего уютного сообщества в Гродно. Присоединятесь https://news.1rj.ru/str/joinchat/5Kzpb8eVrdI4MDVi
#activity #coroutines
Consuming Activity Results using coroutines: Part 1
Адаптация Activity Result API для работы с ними через Coroutine, чтобы убрать необходимость в Callback
Если не знаете что такое Activity Result API, то я сделал видео где подробно об этом рассказал и показал как применять. Смотреть здесь
Consuming Activity Results using coroutines: Part 1
Адаптация Activity Result API для работы с ними через Coroutine, чтобы убрать необходимость в Callback
Если не знаете что такое Activity Result API, то я сделал видео где подробно об этом рассказал и показал как применять. Смотреть здесь
#ui #compose
📺 Обзор ConstraintLayout 2.1 (40 мин)
Рассказывают про новую версию библиотеки ConstraintLayout, а также её использование в Compose
📺 Обзор ConstraintLayout 2.1 (40 мин)
Рассказывают про новую версию библиотеки ConstraintLayout, а также её использование в Compose
#camera #camerax
Convert YUV To RGB for CameraX ImageAnalysis (5 мин)
Статья о поддержке конвертации цветов в формате YUV в RGB, которая недавно была добавлена в библиотеку Jetpack CameraX. Рассказывают про различные подходы в реализации, что оказалось лучше и пр. аспекты
Convert YUV To RGB for CameraX ImageAnalysis (5 мин)
Статья о поддержке конвертации цветов в формате YUV в RGB, которая недавно была добавлена в библиотеку Jetpack CameraX. Рассказывают про различные подходы в реализации, что оказалось лучше и пр. аспекты
Forwarded from Kotlin Multiplatform Broadcast
#coroutines
Вышел RC KotlinX Coroutines 1.6.0
👉
👉 Обновление тестового API. Подробности здесь
👉 Добавили
👉 Пачка Breaking Changes в поведение API
👉 Стабилизация операторов Flow
👉 Улучшение работы с Exception в Flow
👉 Поддержка новой модели памяти Kotlin/Native
👉 Поддержка Kotlin 1.6.0
👉 Java target теперь 8 вместо 6
🔨 Фикс багов
Вышел RC KotlinX Coroutines 1.6.0
👉
kotlinx-coroutines-test стала мультиплатформенной👉 Обновление тестового API. Подробности здесь
👉 Добавили
CoroutineDispatcher.limitedParallelism который позволяет получить представление Dispatcher, но с ограничением на параллельное выполнение👉 Пачка Breaking Changes в поведение API
👉 Стабилизация операторов Flow
👉 Улучшение работы с Exception в Flow
👉 Поддержка новой модели памяти Kotlin/Native
👉 Поддержка Kotlin 1.6.0
👉 Java target теперь 8 вместо 6
🔨 Фикс багов
#coroutines #retrofit
После сборки — доработать напильником. Фиксим Retrofit для Coroutine
Автор статьи нашла интересный баг в Retrofit, который неполностью уводит обработку запросов в отдельный поток при использование Retrofit через Coroutine.
Как решение сделали RetrofitFix - обёртку над Retrofit для вывод всех операций в отдельный поток, что по их результатам дало ускорение до выполнения запроса в 10 раз.
После сборки — доработать напильником. Фиксим Retrofit для Coroutine
Автор статьи нашла интересный баг в Retrofit, который неполностью уводит обработку запросов в отдельный поток при использование Retrofit через Coroutine.
Как решение сделали RetrofitFix - обёртку над Retrofit для вывод всех операций в отдельный поток, что по их результатам дало ускорение до выполнения запроса в 10 раз.
#архитектура #di #модуляризация
Модульность и DI в современном Android-приложении Яндекса
Автор рассказывает о реализации подхода работы с DI в Яндекс Картах, который отказывается от DI в Feature модулях и делает единую организацию с зависимостями из них. Рассматриваются подробно все случаи и навигация между фичами
🔗 Пример подхода модуляризации
Видео по теме от автора
📺 Как мы делаем Яндекс.Карты для Android: DI (~ 1 час)
📺 Школа мобильной разработк Яндекс. DI (~ 1 час)
Модульность и DI в современном Android-приложении Яндекса
Автор рассказывает о реализации подхода работы с DI в Яндекс Картах, который отказывается от DI в Feature модулях и делает единую организацию с зависимостями из них. Рассматриваются подробно все случаи и навигация между фичами
🔗 Пример подхода модуляризации
Видео по теме от автора
📺 Как мы делаем Яндекс.Карты для Android: DI (~ 1 час)
📺 Школа мобильной разработк Яндекс. DI (~ 1 час)
#compose #navigation #jetpack
Safe compose arguments: An improved way to navigate in jetpack compose
Реализация Jetpack Navigation для Compose пока оставляет желать лучшего - нет статической типизации параметров, легко забыть что-то не передать или потерять и пр. болячки. Конечно вы можете подумать что лучше взять какое-то другое решения для навигации (вполне можете быть правы), но автор статьи решил часть проблем написав процессор аннотаций для строго описания параметров и мест навигации в графе.
🔗 Safe Compose Args
Safe compose arguments: An improved way to navigate in jetpack compose
Реализация Jetpack Navigation для Compose пока оставляет желать лучшего - нет статической типизации параметров, легко забыть что-то не передать или потерять и пр. болячки. Конечно вы можете подумать что лучше взять какое-то другое решения для навигации (вполне можете быть правы), но автор статьи решил часть проблем написав процессор аннотаций для строго описания параметров и мест навигации в графе.
🔗 Safe Compose Args
#AndroidBroadcast #Dagger
📺 Ускорение Dagger (7 мин)
В заключительном уроке курса по Dagger рассказываю как улучшить скорость работы и удобства, а также уменьшить время сборки приложения
📺 Весь курс по Dagger (7 видео)
📺 Ускорение Dagger (7 мин)
В заключительном уроке курса по Dagger рассказываю как улучшить скорость работы и удобства, а также уменьшить время сборки приложения
📺 Весь курс по Dagger (7 видео)
#android12 #workmanager
Replace Android Foreground Services with WorkManager
Android 12 дал новые ограничения на работу в фоне и даже часть Foreground Service должны быть мигрировать на новое API, которое обернул в себе WorkManager и является рекомендуемым решением. Автор статьи подробно рассказывает про изменения и как осуществить миграцию на Expedited Jobs в WorkManager.
Replace Android Foreground Services with WorkManager
Android 12 дал новые ограничения на работу в фоне и даже часть Foreground Service должны быть мигрировать на новое API, которое обернул в себе WorkManager и является рекомендуемым решением. Автор статьи подробно рассказывает про изменения и как осуществить миграцию на Expedited Jobs в WorkManager.
#gradle #agp #madskills
Gradle and AGP build APIs: How to write a plugin (6 мин)
Разбор как написать свой собственный Gradle плагин на основе Android Gradle Plugin, который обзавелся стабильным API для интеграции с ним.
Gradle and AGP build APIs: How to write a plugin (6 мин)
Разбор как написать свой собственный Gradle плагин на основе Android Gradle Plugin, который обзавелся стабильным API для интеграции с ним.