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
#Архитектура

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
#AndroidBroadcast #LiveStream

🔴 За 2 зайцами: нужно ли уметь разрабатывать под Android и iOS (прямой эфир)

Сегодня в 19.00 (GMT+3) соберёмся, чтобы обсудить стоит ли разрабатывать под две мобильные платформы или сконцентрироваться на одной. Не обойдем стороной и трансформацию нативных разработчиков в кроссплатформенные

Гость - Алексей Гладков, автор канала Mobile Developer, технический архитектор Леруа Мерлен, барабанщик, прогеймер
#Android11 #ScopedStorage

Scoped Storage: Не надо бояться (33 мин)

С августа 2021 все новые приложения и с ноября 2021 все обновления существующих приложений должны использовать targetSdk 30.

К изменениям лучше готовиться заранее и одно из самых крупных изменений, пришедшее с Android 11 - Scoped Storage. Начиная с targetSdk=30 флаг android:requestLegacyExternalStorage будет игнорироваться и вопрос миграции становится более актуальным. По данной теме Redmadrobot выложили запись со своего внутреннего митапа:

Таймкоды:
01:15 Disclaimer
02:10 Почему не нужно бояться
04:10 App-specific files
06:35 Cпособы обращения к Storage
08:05 Моменты из практики
16:03 Чек-лист для проверки
18:35 Permissions
21:35 Миграция
24:10 Вопросы

Ссылки из доклада:
📄Scoped Storage
📄Storage updates in Android 11
📄App data and files
👍1
#AndroidBroadcast #Новости

📺 Пилотный выпуск новостей от Android Broadcast (14 мин)

Обсуждаем новости, статьи и самые интересные события в мире мобильной разработки и около неё.

Оставляйте ваши отзывы в комментариях на YouTube. Это очень помогает улучшать качество контента.

P.S. Качество звука получилось не очень. В ближайшее время будет исправлено с помощью нового микрофона.
#GooglePlay

Google Play начал показывать рост или падение в рейтингах

Google Play в списках самых популярных приложений начал показывать, растет ли приложение в чартах или падает. Это стрелка вверх или вниз.

Повлияет ли такой индикатор на ваше решение установить приложение? Голосуем 👍 или 👎
#AndroidOS

The legend about AIDL

Разбор механизма для коммуникации между процессами в Android

Статья из трёх частей:
1️⃣ Основы
2️⃣ AIDL в действии
3️⃣ Где используется AIDL в Android
#Безопасность #Networking

📺 Android Guards "Как прикрутить и отломать SSL pinning. CetificatePinner & NSC vs Reverse Engineer" (36 мин)

Автоматическое откручивание SSL pinning-а не всегда хорошо работает и порой приходится выпиливать его руками, чтобы посмотреть трафик приложения.

Автор пишет приложение с двумя видами пиннинга сертификатов и обфусцирует его. Также продемонстрировал работу взломщика с таким приложением.