Size: a a a

Android Broadcast

2021 January 02
Android Broadcast
#Performance #Jetpack

Отключаем Jetifier и ускоряем сборку: опыт Тинькофф.Бизнес

Переход с Android Support Library на Jetpack сопровождался необходимостью включения утилиты Jetifier, которая трансформировала старые библиотеки в новые. Зачем это надо было делать? Без этого проект вовсе бы не собрался.

С момента перехода прошло уже больше 2 лет, но не все разработчики в своих продуктах отключили эту утилиту, хотя вполне возможно в Support библиотек уже и нет в проекте.

В статье приводится:
👉 инструкция как проверить ваш проект
👉 что сделать со сторонними библиотеками, которые не выполнили миграцию
👉 Сравнение скорости сборки проекта с и без Jetifier
источник
Android Broadcast
Demystifying Locale on Android

Как только вам нужно работать с датами и зонами времени, языками или форматированием то класс Locale

В статье разбирается что это такой за класс, что он из себя представляет и особенности работы c локализацией в Android.

Также вас ждет разбор основных ошибок разработчиков:
👉 Ошибки при работе cо строками из библиотек
👉 Разница между системной локалью и Locale.getDefault(). Правильно использовать ConfigurationCompat.getLocales(Resources.getSystem().configuration)[0]
👉 Опасайтесь WebView.
источник
2021 January 04
Android Broadcast
#Безопасность

Retrieve Data From Android Devices Without Rooting

Демонстрация как можно вытащить приватные данные пользователя если разработчик не опирается на все практики.

Потенциальной угрозой является система бэкапа в Android. Разработчик должен настраивать что сохранять туда, а что нет.
источник
Android Broadcast
#MotionLayout #Анимация

Motion Layout Playground - репозиторий с примерами UI и переходов, построенных на основе MotionLayout. В примере используется MotionLayout 2.1.0 (еще в стадии альфа), но часть анимаций работают и на текущей стабильной версии.
источник
Android Broadcast
#Безопасность

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

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

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

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

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

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

When “Compat” libraries won’t save you

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

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

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

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

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

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

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

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

Using and testing Room Kotlin APIs

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

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

Любое Android приложение неразрывно связано с Context. Правильно использовать Context с учетом того, что их несколько (Application, Activity и другие) надо знать, например не хранить ссылки за пределами жизненных циклов и др.
источник
2021 January 07
Android Broadcast
#UI

Skelly - простая библиотека для показа анимированного скелета пока загружаются данные для UI. Все скелеты в рамках приложения синхронизированы.
источник
Android Broadcast
Иду в гости на канал "Mobile Developer. Поговорим о развитии карьеры разработчика после Senior. Всем будет в прямом эфире. Стрим пройдет завтра, 8 января 2021 в 15:00 по Москве!
источник
Android Broadcast
#Архитектура #Модуляризация

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

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

Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
источник
2021 January 09
Android Broadcast
#WorkManager #Jetpack #Kotlin

WorkManager — Kotlin APIs

Разбор Kotlin расширений и поддержки Coroutine в WorkManager
источник
Android Broadcast
#AndroidStudio #DataBinding

Вышла Android Studio Arctic Fox Canary 4

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

Improve UI Performance with Async RecyclerView Layout Loading

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

Separating Features in Android Fragment

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

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

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

7 Gotchas When Explore Kotlin Coroutine

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