Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Иду в гости на канал "Mobile Developer. Поговорим о развитии карьеры разработчика после Senior. Всем будет в прямом эфире. Стрим пройдет завтра, 8 января 2021 в 15:00 по Москве!
#Архитектура #Модуляризация

Ленивая склейка модулей Android-приложения

Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.

Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
#AndroidStudio #DataBinding

Вышла Android Studio Arctic Fox Canary 4

Вышла новая канарейка Android Studio Arctic Fox. Главное новинкой является поддержка StateFlow в Data Binding
#Производительность #UI #RecyclerView

Improve UI Performance with Async RecyclerView Layout Loading

История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
#Архитектура

Separating Features in Android Fragment

Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.

Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.

В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
#Coroutines

7 Gotchas When Explore Kotlin Coroutine

Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
#AndroidBroadcast

📺 Планы Android Broadcast 2021 (21 мин)

Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
#OpenGL

Resources for Learning OpenGL - An Android Developers Guide

Набор полезный книг, ресурсов, курсов и др материал для изучения OpenGL ES и использование его в Android.
#AndroidOS

Evolution of Android Update System

Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.

В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
#Coroutines #Performance

Android App Startup Tip: Don’t Use Kotlin Coroutines
2 минут чтения

Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения:
👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти
👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard
👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу
#Coroutines #RxJava

Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow

Сравнение подходов RxJava и Flow для обработки реактивных стримов и как происходит миграция
#LiveData #Kotlin

Avoid backing properties for LiveData and StateFlow

Использование LiveData, StateFlow и SharedFlow в ViewModel имеет свою неприятную особенность - создание приватного модифицируемого property и публичного только для чтения. Автор предлагает решение в лоб - абстракция в виде интерфейса или абстрактного класса и разведёт модифицируемый и немодифицируемые поля. Встают вопросы интеграции этого с ViewModelFactory, DI и др.

Я жду в языке фичи о которой рассказал Роман Елизаров, решающую проблему (подробнее здесь).
#AndroidStudio

When your Android Studio breakpoint doesn’t stop

Пункты, которые стоит проверить когда дебаггер не останавливается на break point. Часть из них совсем банальная, но есть и интересные, например особенности приложения со множеством процессов или запуск deep link.
Помимо канала Android Broadcast множество всего интересного можно найти в группе @android_broadcast_talks
👉 Задать вопрос сообществу Android разработчиков
👉 Помочь найти аргументы и практики, чтобы разрешить холивар
👉 Получить помощь в выборе ноутбука для разработки под Android

Кучу всего мы обсуждаем там ежедневно. Присоединяйся и ты @android_broadcast_talks
#AndroidBroadcast #Kotlin #ViewBinding

Android ViewBinding KTX (20 мин)

Новое видео на канале Android Broadcast в котором рассказываю о:
👉 История ViewBinding
👉 ViewBinding под капотом
👉 Как упростить работу с помощью ViewBindingPropertyDelegate

Жду ваши лайки и подписки на канал. В следующем видео буду рассказывать о миграции с LiveData на Flow
#Dagger #DependencyInjection

Вышел Dagger 2.31

Новая версия Dagger радует новыми фичами:
🔥 Поддержка Assisted Injection - возможность передать параметры во время создания объекта, а не из DI графа. Подробности здесь

Hilt:
👉 @TestInstallIn - позволяет описывать глобально подмену тестовых модулей вместо @UninstallModules на отдельных тестах
👉 @HiltViewModel - замена @ViewModelInject. Отличается тем что делает inject из ViewModelComponent с @ViewModelScope. Подробнее здесь
👉 Удалили ApplicationComponent. Мигрируемся на SingletonComponent
👉 Небольшие улучшения в настройке Gradle плагина и поддержке многомодульных проектов
#Coroutines #Lifecycle

Deep Dive Into Android Lifecycle Coroutines

Разбор как работают CoroutineScope, которые являются частью библиотеки lifecycle-ktx, и какие особенности есть в их поведении.
#Jetpack

Обновление библиотек Jetpack 13.01.2021

Annotation 1.2.0-beta01
👉 Аннотация @DoNotInline чтобы отключить inline метода в R8

AppCompat 1.3.0-beta01
👉 Часть стандартных иконок была замена на векторные
👉 Изменения в API

Core 1.5.0-beta01
👉 Добавлено Insets Animation API
👉 Улучшения API OnReceiveContentListener
👉 Уведомления могут быть помечены как пропущенный звонок
👉 Впервые увидел раздел "External Contribution"
Кажется, после 1.3.X будет сразу релиз 1.5.0

DataStore 1.0.0-alpha06
👉 Поддержка RxJava 2/3
👉 Изменения в API

Также вышли
👉 Work 2.5.0-rc01
👉 Slice 1.1.0-alpha02 (кто их использует просьба написать @krlrozov)
👉 ShareTarget 1.1.0
👉 Enterprise 1.1.0
👉 MediaRouter 1.2.1