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

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

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

apkscale

Gradle плагин, который позволит определить какой эффект на размер приложения оказывает Android библиотека. Всем кто более за размер приложения будет полезно.
#Testing #Coverage

Code Coverage Best Practices

Чтобы понять насколько хорошо покрыто тестами ваше приложение, надо это измерить. Google делиться своим опытом по покрытию тестами проектов и как это сделать.
#JetpackCompose #UI

Announcing Jetpack Compose Alpha!

Вышла первая альфа-версия Jetpack Compose 🚀! API все еще нестабильное и могут происходить изменения в нем до Beta

Альфа релиз включает в себя:
👉 Анимация
👉 Constraint Layout
👉 Базовую поддержку A11Y
👉 Ввод и жесты
👉 Взаимодействие с View (полный interop)
👉 Lazy Lists
👉 Material UI
👉 Улучшения в производительности
👉 Тестирование
👉 Темы и графику
👉 Управление окнами

Android Studio 4.2 включает целый ряд инструментов, чтобы удобно работать с Jetpack Compose.

👉 Новые каноничные примеры Jetpack Compose
👉 "Изучение шаг за шагом" - цикл статей и Codelab
👉 Документация

Также рекомендую посмотреть новые видео:
📺 Compose for existing apps (22:05) - интеграция Compose в существующие приложения
📺 Thinking in Compose (25:27) - как правильно мыслить о построение UI в шаблонах Compose
📺 Compose by example (22:07) - примеры использования Compose
Будете пробовать альфу Jetpack Compose в production приложениях?
Anonymous Poll
11%
Да
17%
Жду Beta
43%
Жду Stable
14%
Не планирую использовать Compose
15%
Не участвую в опросе
#Fragment

Android Fragment Result Listener (RU)

Разбор нового API Fragment - Fragment Result API, которое заменить Fragment Target API и позволит передать результат между Fragment в рамках одного. FragmentManager проще.

В статье разбирается как работать с новым API и его тестирование
#Awareness

Smarter apps with Awareness API

Google Awareness API позволяет вам отслеживать изменения вокруг пользователя с помощью сенсоров устройств и получать информацию о текущем состоянии.

Что можно сделать? Например, легко отследить состояние подключения наушников, отследить активность пользователя (бег, ходьба и др.). Мало того API может предсказывать ближайшие активности пользователя
#Kotlin #SAM

Support for Kotlin SAM in release 1.4

SAM (Single Abstract Method) - это интерфейс у которого только 1 метод без реализации по умолчанию. Также такие интерфейсы называют Functional Interface.

В Kotlin 1.4 добавили возможность использовать SAM Kotlin интерфейсы, к уже существующей поддержки только Java SAM.

В статье рассматривается адаптация нового функции языка в вашем коде
#Material #Animation

Adding Amazing Transitions to Your Android App Easily Using Material Motion

В последнем релизе Material Components 1.2.0 добавили реализацию стандартны анимаций из Material Motion. В статье разбирают как их использовать и получить крутые результаты.
#JetpackCompose #UnderTheHood

Understanding Jetpack Compose — Part 1 of 2

Совсем недавно была анонсирована альфа Jetpack Compose. Вместе с этим нам стало доступно множество обучающих материалов и документации.

В статье разбираются базовые принципы декларативного подхода в UI и чем он отличается привычному Android разработчику иерархии View + XML
#JetpackCompose #UnderTheHood

Under the hood of Jetpack Compose — part 2 of 2

Продолжение раскрытие деталей реализации Jetpack Compose. Во второй части вы найдете ответы на вопросы:
👉 Что значит аннотация @Composable
👉 В чем похожи @Composable и suspend из Kotlin
👉 Как строится UI в Jetpack Compose
👉 Что такое Composer
👉 Как устроена работа с входными параметрами и обновлением UI в Jetpack Compose

Важно: чтобы работать с Jetpack Compose вам не нужно понять детали этой статьи
#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. В первой части описывается работа этого функционала на уровне виртуальной машины.