Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения: 👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти 👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard 👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу
Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.
В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки: 👉 Неверное использование runBlocking 👉 Отмена исполнения Coroutine 👉 Особенности работы из-за structured concurrency 👉 Неверная работа с CoroutineScope
Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.
Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.
В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.
Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
Иду в гости на канал "Mobile Developer. Поговорим о развитии карьеры разработчика после Senior. Всем будет в прямом эфире. Стрим пройдет завтра, 8 января 2021 в 15:00 по Москве!
Любое Android приложение неразрывно связано с Context. Правильно использовать Context с учетом того, что их несколько (Application, Activity и другие) надо знать, например не хранить ссылки за пределами жизненных циклов и др.
Развеивание мифа, что хранение ключей в нативном коде надежный способ обезопасить их от злоумышленников. Рассматривается несколько способ хранения и как взламывается нативный код.
Motion Layout Playground - репозиторий с примерами UI и переходов, построенных на основе MotionLayout. В примере используется MotionLayout 2.1.0 (еще в стадии альфа), но часть анимаций работают и на текущей стабильной версии.
Как только вам нужно работать с датами и зонами времени, языками или форматированием то класс Locale
В статье разбирается что это такой за класс, что он из себя представляет и особенности работы c локализацией в Android.
Также вас ждет разбор основных ошибок разработчиков: 👉 Ошибки при работе cо строками из библиотек 👉 Разница между системной локалью и Locale.getDefault(). Правильно использовать ConfigurationCompat.getLocales(Resources.getSystem().configuration)[0] 👉 Опасайтесь WebView.