Android Broadcast
14.2K subscribers
3.52K photos
340 videos
11 files
5.89K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Безопасность

Хранение ключей API в нативном коде

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

Автор канала Android Guards побывал в гостях Android Broadcast (запись здесь), где мы составили карту защиты Android приложения.
Android Developer Reference - репозиторий со множеством сгруппированных по темам статей.
#AndroidBroadcast #ЛучшиеПрактики

▶️ Избавляемся от try-catch (17 мин)

Новое видео на канале Android Broadcast. Рассказываю как я сделал решение, чтобы избавить от try-catch и безопасно обрабатывать ошибки. Решение интегрировано с Retrofit, а также может быть использовано в других асинхронных операциях.

Ставьте лайки видео и подписывайтесь на канал. Также буду рад вашей обратной связи, ведь видео снимал в подготовленной студии и на новую камеру. Пишите в @android_broadcast_talks
#Jetpack

When “Compat” libraries won’t save you

Главное отличие Android от iOS в том, что Google обеспечивает поддержку старых версий Android, портируя функционал и добавляя возможность для безопасного вызова нового API.

В Android такие API зачастую называются Compat, но не все они такие, как можно ожидать. В статье разбирается пример NotificationManagerCompat

Подробно проблемы этого API я осветил в видео "Советы по уведомлениям в Android".

Важно: Скажете для iOS проблема неактуальна? Еще как! Многие приложения для iPhone поддерживают одну или две предыдущих версии ОС.
#Архитектура #Модуляризация

The greatest Android modularization mistake and how to undo it (4 мин на чтение)

Множество старых проектов или стартующих на скорую руку не парились тем, чтобы создавать множество модулей. Когда все начинает упираться в скорость сборки, низкая повторная используемость кода и проблемы с масштабированием при росте команды.

Если сделать модуляризацию проекта неправильно, то от нее можно получить еще больше проблем чем было. В статье разбираются такие ошибки:
👉 Разбитие одного монолитного модуля на несколько монолитных модулей. Да-да! Так случается.
👉 Feature модули знают друг про друга

Что надо делать:
👉 Дробите модули по фичам. Чем модули атомарнее, тем лучше. Только знайте грань
👉 Закрывайте используемые технологи абстракциями, не возвращайте модели для библиотеки (например Room) в другие модули
👉 Делайте модули изолированными друг от друга
#Kotlin #Room #Jetpack

Using and testing Room Kotlin APIs

Разбор различных возможностей Room и кода, который генерируется по итогу.
#Jetpack #Compose

Jetpack Compose Awesome - сборник множества информации по Jetpack Compose:
👉 Документация
👉 Новости
👉 Полезные статьи
👉 Разбор виджетов
👉 Библиотеки
👉 Проекты-примеры
👉 Видео
How to Use Context Correctly in Android (3 мин)

Любое Android приложение неразрывно связано с Context. Правильно использовать Context с учетом того, что их несколько (Application, Activity и другие) надо знать, например не хранить ссылки за пределами жизненных циклов и др.
This media is not supported in your browser
VIEW IN TELEGRAM
#UI

Skelly - простая библиотека для показа анимированного скелета пока загружаются данные для UI. Все скелеты в рамках приложения синхронизированы.
Иду в гости на канал "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 я не хочу