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

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Android10 #Thermal

Thermal in Android

Хотите узнать насколько горячее ваше приложение? Вы сможете это сделать в Android 10 с помощью нового Thermal API. Оно также доступно в NDK, но только с Android 11.

Кому это может быть полезно? Разработчикам игр и всех приложений, кто активно используется железо устройства, например приложения камеры во время съемки видео.
#Gradle #Performance

The proper care and feeding of your Gradle build

Скорость сборки Gradle проекта - это всегда боль для Android проектов. Негативно на скорость сборки могут влиять зависимости, процессоры аннотаций и Gradle плагины.

С помощью Gradle плагина от автора статьи вы можете проанализировать ваш проект и понять какие зависимости:
👉 Не используются в вашем проекте
👉 Какие процессоры аннотаций не используются в вашем проекте
👉 Объявляете ли вы зависимости корректно (apiimplementationcompileOnly и др)
👉 Используете ли вы код из транзитивных зависимостей, которые лучше определить явно
👉 Есть ли у вас неиспользуемые Gradle плагины

Анализировать ваш проект стоит регулярно, что позволит четко следить за вашими зависимостями. Возможно задуматься о запуске плагина на CI частью ПРов
#AndroidBroadcast #DependencyInjection #Dagger

Dagger Hilt Deep Dive (Livestream EN)

В четверг, 3 сентября, в 19:30 обсуждаем Dagger Hilt с Manuel Vivo, Android Developer Relations Engineer в Google

Dagger Hilt - это надстройка над Dagger под Android, призванная убрать множество boileplate кода, который приходится писать для модулей и компонентов.

Manuel занимается архитектурой приложений, Kotlin, Coroutines, Dependency Injection, а также Jetpack Compose. Ранее работал в Capital One.
#Robolectric #Testing

Robolectric 4.4

Вышла новой версии библиотеки для тестирования Android кода на локальной машине. Изменений огромное количество и подробнее вы с ними можете ознакомиться по ссылке.
#UI #Spannable

Styled Texts for Android (Replaceable and Localizable)

Для всех тех кто используется Spannable строки, рекомендую взять на вооружение практику из статьи. С помощью разметки строк тегами с аннотациями в XML и последующим заданием через код какому Span соответствует кастомная аннотация
#Kotlin #Multiplafrom #iOS

Kotlin Multiplatform Mobile goes Alpha

JetBrains уже говорили о том что концентрируют сейчас усилия в мультиплатформе на мобильном сегменте. Как результат - релиз Kotlin Multiplatform Mobile (KMM).

KMM - это SDK для шаринга кода между iOS и Android, которое включается в себя плагин для Android Studio. Плагин позволяет писать, запускать и дебажить общий код на Android и iOS из одной IDE.

Руководство по использованию и установке плагина здесь
#Kotlin #Coroutines

Why exception handling with Kotlin Coroutines is so hard and how to successfully master it!

Coroutine всегда хвалились тем что вы можете писать асинхронный код в синхронном стиле. Все мы думали что мы сможем использовать привычные подходы, но как же мы заблуждались.

Обработка ошибок может быть еще тем трюком в Coroutine. Как бы я не любил этот подход, но такая сложность в нем есть (

В статье автор разбирает
👉 интересные случаи обработки ошибок,
👉 почему так происходит
👉 какая в этом роль Structured Concurrency
👉 CoroutineExceptionHandler
👉 try-catch vs CoroutineExceptionHandler
👉 launch{} vs async{}
👉 coroutineScope{}
👉 supervisorScope{}
#Coroutines #Flow #LiveData

Refactoring from LiveData to Coroutines & Flow

Помните руководство где Google рекомендовала на всех слоях использовать LiveData для коммуникации между слоями? Так вот - это заблуждение. LiveData нужна только на UI слое, а на других - Coroutines, Reactive подход или что-то еще асинхронное

В статье разбирается как мигрировать с LiveData на Coroutines и Flow
​​#JetpackCompose

Showkase поможет вам организовать, изучить, найти и визуализировать компоненты Jetpack Compose UI. Фактически это букварь для изучения нового подхода для работы с UI в Android.

Библиотека конфигурирует UI браузер для просмотра все элементов и рендерит их в основных различных режимах.
#Android11 #ART #AndroidStudio

Structural Class Redefinition

Android Runtime (ART) - виртуальная машина, которая исполняет код Android приложений, обновляется регулярно. Проблема в том, что очень мало информации о том что происходит в ней от релиза к релизу. Поэтому рекомендую остановить внимание на посте.

Structural Class Redefinition - это расширение для JVMTI API, которое позволяет улучшить функцию "Apply Changes" в Android Studio. В первой части описывается работа этого функционала на уровне виртуальной машины.
#Android11 #ART #AndroidStudio

Structural Class Redefinition and Apply Changes

Реализация Structural Class Redefinition в Android Studio, которая уже работает в Android Studio 4.1 (вчера вышел RC2). К сожалению, не все заработает полноценно в AS 4.1, часть функционала доступна только в 4.2.
#Jetpack

Обновление Jetpack 2 сентября 2020

Новое обновление Jetpack. Основная часть обновления - новые альфа библиотек Compose и переход множества других библиотек на новую стадию alpha, beta, rc.

Однако не обошлось без интересного анонса - библиотека DataStore для сохранения данных, разработанная на Kotlin и под капотом построенная на Coroutines и Flow. Библиотека приходит на замену SharedPreferences.
#Jetpack #DataStore #SharedPreferences

Prefer Storing Data with Jetpack DataStore

Всему суждено пасть. AsyncTask уже стали deprecated, UI на основе View будет заменен Compose. Вот и SharedPreferences будет замене новой библиотекой DataStore, разработанной на Kotlin и работающей на основе Coroutines.

Новая библиотека решена всех проблем SharedPreferences:
👉 Полностью асинхронное
👉 Уведомление об ошибках
👉 Транзакционное выполнение
👉 Поддержка миграции с SharedPreferences в DataStore
👉 Возможность работы как "Key-Value" так и хранилище объектов на основе Protobuf

В статье найдете примеры использования DataStore и миграции с SharedPreferences

Важно: DataStore не является заменой Room
#Jetpack #Datastore #SharedPreferences

Сравнение SharedPreferences и новой DataStore
​​#Tooling #JakeWharton

Dependency Tree Diff

Утилита для вычисления разницы между выводом Gradle таска `dependencies`. Будет полезно, чтобы делать анализ и визуализировать что менялось между коммитами. Также упростит отслеживание транзитивных зависимостей.
​​#Tooling #JakeWharton

Diffuse - утилита для определения изменения размера APK, AAB, AAR и JAR файлов, которая по категориям файлов в архивах показывает детали.
#MLKit #MachineLearning

ML Kit Pose Detection Makes Staying Active at Home Easier

Одной из возможностей, которые предоставляются ML Kit SDK, является Pose Detection.

Pose Detection API обеспечивает отслеживание положения всего тела по 33 точкам, включая лицевые ориентиры (уши, глаза, рот и нос), отслеживание рук и ног, а также отслеживание множества сложных спортивных поз, таких как позы йоги.

Особенности решения:
👉 решение кроссплатформенное (Android и iOS)
👉 работает как с изображениями так и с видео
👉 позволяет использовать "Быстрый" и "Точный" режимы

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