Что вы знаете про AsyncLayoutInflater?
Anonymous Poll
7%
Использовал(а) в проектах
32%
Знаю, но не использовал(а)
56%
Что это?
1%
Не пишу под Android
5%
Не участвую в опросе
🤔8🤯3👍2😁1🏆1
Пример разработки виджета колеса для выбора цвета для чайников и добавить больше нечего. Хотите узнать подробнее про Custom View, то смотрите серию видео на моем канале
👍45🤔2😁1🎉1
OkLayoutInflater - прокачанный AsyncLayoutInflter на корутинах. AsyncLayoutInflater позволяет перенести inflate layout ресурс в фоновые поток, тем самым разгрузив его от блокирующего вызова LayoutInflter.inflate на главном/UI потоке приложения. Авторы решили написать свою версию, добавив ей:
👉 Поддержка корутин
👉 Парсинг на нескольких фоновых потоках (AsyncLayoutInflater работает в одном фоновом потоке)
👉 Подружили с жизненным циклом
👉 Добавили поддержку LayoutInflater.Factory2
Авторы добились уменьшения фризов до 30% на отдельных экранах и 23% в среднем
💻 Исходный код на GitHub
#coroutine
👉 Поддержка корутин
👉 Парсинг на нескольких фоновых потоках (AsyncLayoutInflater работает в одном фоновом потоке)
👉 Подружили с жизненным циклом
👉 Добавили поддержку LayoutInflater.Factory2
Авторы добились уменьшения фризов до 30% на отдельных экранах и 23% в среднем
💻 Исходный код на GitHub
#coroutine
🤔42👍24🔥7😁1
Pixel 7 и 7 Pro стали первыми устройствами на Android, которые поддерживаю только 64-битные приложения. Это значит что если у вас есть нативные библиотеки под x32, то новые телефоны Google не смогут из запустить так как не поддерживают эмуляцию инструкций
Зачем нужно было так делать? По заявлением Google это приводит к:
👉 Уменьшению расхода памяти
👉 Улучшает производительность
👉 Делает устройства безопаснее
x64 нативные либы стали обязательным требованием еще в 2019, так что отвалится должны только те приложения, автором которых уже давно все равно на них. Также в Google ожидают что их примеру последуют производители других устройства на Android. Думаю что флагманы Samsung будут с такой же фичей.
Что вы думаете об это нововведении? Делитесь в комментариях
Зачем нужно было так делать? По заявлением Google это приводит к:
👉 Уменьшению расхода памяти
👉 Улучшает производительность
👉 Делает устройства безопаснее
x64 нативные либы стали обязательным требованием еще в 2019, так что отвалится должны только те приложения, автором которых уже давно все равно на них. Также в Google ожидают что их примеру последуют производители других устройства на Android. Думаю что флагманы Samsung будут с такой же фичей.
Что вы думаете об это нововведении? Делитесь в комментариях
👍56🤔6😁2
Optimize for Android (Go edition): Lessons from Google apps Part 3
Разбор инструментов для анализа производительности приложения: анализ потребления RAM, Perfetto, Memory Profiler, meminfo, Address Sanitizer, CPU Profiler и другие. Берите на заметку для слабых устройств и производительных
#androidgo #performance #androidstudio
Разбор инструментов для анализа производительности приложения: анализ потребления RAM, Perfetto, Memory Profiler, meminfo, Address Sanitizer, CPU Profiler и другие. Берите на заметку для слабых устройств и производительных
#androidgo #performance #androidstudio
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
CreditCardView - библиотека для создания UI для повторения реальной кредитной карточки
👍70🔥10😁5🤔5
Что там по автотестам на Android в 2022?
Женя "Kaspresso" Мацюк рассказывает про результаты опроса 30 команд (Spotify, Revolut, Badoo, Авто.ру, Sber, HH и другие) на тему автотестов. Результаты в статье
Женя "Kaspresso" Мацюк рассказывает про результаты опроса 30 команд (Spotify, Revolut, Badoo, Авто.ру, Sber, HH и другие) на тему автотестов. Результаты в статье
👍31🤔6🔥2😁1
7 плагинов Android Studio, ускоряющих разработку приложений
Подборка полезных плагинов для вашей Android Studio, а в комментариях делитесь своими любимыми
Подборка полезных плагинов для вашей Android Studio, а в комментариях делитесь своими любимыми
🤔24🔥14👍6😁2🤯1
Всем привет. На связи Кирилл Розов, автор @android_broadcast. Этот канал касается только Android разработки, но есть много мыслей и событий в моей жизни, которыми я делюсь в @rozov_blog и моем Instagram. Подписывайтесь!
#androidbroadcast
#androidbroadcast
🤔12👍8😁6🔥3🤯3
Всем выйти из сумрака: как добавить тень на Android
Разработчик дизайн системы просветит вас о тенях в Android:
👉 зачем нужны
👉 параметр elevation
👉 MaterialShapeDrawable
👉 Создание 9-patch Drawable в коде динамически
👉 системные тени против кастомных
#ui
Разработчик дизайн системы просветит вас о тенях в Android:
👉 зачем нужны
👉 параметр elevation
👉 MaterialShapeDrawable
👉 Создание 9-patch Drawable в коде динамически
👉 системные тени против кастомных
#ui
👍33🤔3⚡1😁1
Используем делегаты в Android-приложениях
Реальный опыт применения делегатов для замены наследования. Много Android кода и DI с Hilt, но шаринг части поведения между ViewModel без наследования вышло сделать.
#kotlin
Реальный опыт применения делегатов для замены наследования. Много Android кода и DI с Hilt, но шаринг части поведения между ViewModel без наследования вышло сделать.
#kotlin
🤔5👍2😁2💯1
📺 More performance tips for Jetpack Compose (20 мин)
Продолжаю смотреть Android Dev Summit'22. Интересное видео про то как отказаться от ненужных рекомпозиций (все вокруг состояния):
👉 Как делать анализ производительности UI на Compose
👉 Используйте лямбды для часто меняющихся значений
👉 Зачем нужны immutable классы
👉 Разница между Stable, Immutable и Unstable
👉 Все стандартные Kotlin коллекции - unstable by default
👉 derivedStateOf() используйте только если вам нужно делать рекомпозицию при изменении значения по содержанию (equals). Чем-то схоже c distinctUntilChanged
👉 Рассказали про новое API - reportFullyDrawn в Compose, которая заработает с AndroidX Activity 1.7.0
Хоть Compose и стараются сделать "быстрым из коробки" но следить за вашим кодом для Compose и состоянием придётся вам!
#compose #performance #androiddevsummit
Продолжаю смотреть Android Dev Summit'22. Интересное видео про то как отказаться от ненужных рекомпозиций (все вокруг состояния):
👉 Как делать анализ производительности UI на Compose
👉 Используйте лямбды для часто меняющихся значений
👉 Зачем нужны immutable классы
👉 Разница между Stable, Immutable и Unstable
👉 Все стандартные Kotlin коллекции - unstable by default
👉 derivedStateOf() используйте только если вам нужно делать рекомпозицию при изменении значения по содержанию (equals). Чем-то схоже c distinctUntilChanged
👉 Рассказали про новое API - reportFullyDrawn в Compose, которая заработает с AndroidX Activity 1.7.0
Хоть Compose и стараются сделать "быстрым из коробки" но следить за вашим кодом для Compose и состоянием придётся вам!
#compose #performance #androiddevsummit
👍22😁2