Android Broadcast – Telegram
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
​​#UI #ConstraintLayout #MotionLayout #Animation

Началась работа над ConstraintLayout 2.1.0
👉 Новый тэг <ViewTransition> для анимирование одной View в MotionLayout. Подробнее
👉 Возможность забивать Constraints на несколько файлов. Подробнее
👉 Возможность копировать Constraints с переопределением атрибутов. Подробности
👉 Возможность поворачивать View в <OnSwipe>. Подробности
👉 Поддержка матричных преобразований для ImageFilterView/Button. Подробности
👉 Поддержка изменений с значение в шагах. Подробности
👉 Поддержка кастомных атрибутов в KeyTrigger. Подробности
#Coroutines

Корутины и синхронизация. Лучше не смешивать

Kotlin Coroutines - это не просто новый способ работы с множеством потоков в другом стиле (аля RxJava), а подход, отличающийся принципиально по выполнению кода между suspension points.

В статье автор делится почему synchronized не работает для Coroutine и как решить такую задачу для этого подхода.
#Kotlin #Coroutines

Shared flows, broadcast channels от Романа Елизарова

В статье рассказывается и о причинах появления
👉 Channel, Flow
👉 ConflatedBroadcastChannel и его замене StateFlow
👉 SharedFlow, пришедший на замену BroadcastChannel

Какая роль уготована Channel? Они все также останутся, но будут служить для реализации взаимодействия между Coroutine и реализации сложных операторов во Flow.

Все вариации broadcast channel ждет deprecatated статус и удаление из библиотеки
#AndroidBroadcast

Разработка для устройств
Среда 19:00 GMT+3. Партнер выпуска - SberDevices

Не так давно Сбер показал свою трансформацию и представил умные устройства с виртуальными ассистентами. Антон Дудаков расскажет нам о особенностях разработки приложений, которые обеспечивают работы собственной вариации Android на этих устройствах.

Узнаем много интересного из механизмов работы Android ОС, какого быть без каких либо сервисов (GMS или HMS) на устройстве и иметь полную свободу

Гость выпуска - Антон Дудаков, Team Lead встраиваемых Android приложенек в SberDevices. Работал Team Lead в стартапе Storia.me и Яндекс.Авто. Соведущий Android Dev Podcast
Stop generating the BuildConfig on your Android modules

Android Gradle Plugin имеет возможность отключения генерации ресурсов и BuildConifg. Это очень полезная функция для библиотек. Помимо прочего этого избавит вас от дополнительного шага во время компиляции кода.

Как отключить? Добавляем в build.gradle:
android {
buildFeatures {
buildConfig = false
}
}

Автор и вовсе предлагает отключить генерацию по умолчанию и включать ее только там где это необходимо. Сделать это можно добавлением в gradle.properties свойства android.defaults.buildfeatures.buildconfig=false
#Kotlin

The future of Kotlin Android Extensions

С Kotlin 1.4.20 начался цикл deprecation Android Kotlin Extensions Gradle plugin, который содержит в себе synthetics views и Parcelize. Google рассказывает что пора мигрировать на View Binding for Android, а Parcelize был выделен в отдельный Gradle плагин kotlin-parcelize.
#AppBundle #GooglePlay

MAD Skills — Become an Android App Bundle expert

Google провела серию эпизодов и Q&A по теме App Bundle и все касательно него: Play App Signing, Play Feature Delivery, тестирование и др.

Множество видео вы найдете в плейлисте App Bundles - MAD Skills
#Coroutines

Substituting Android’s LiveData: StateFlow or SharedFlow?

Руководство как избавиться на всех слоях Clean Architecture от LiveData и заменить на Flow. В статье также описывается подробные примеры с кодом и объяснения в какой Flow конвертировать LiveData.
#Kotlin

Parcelable implementation generator

В Kotlin 1.4.20 @Parcelize выделился в отдельный и он уже успел получить руководство в официальной документации по Android.

Оно совсем короткое, показывая пример использования, а также более сложные случаи сериализации различных типов данных.
#Testing

5 New Test Automation Frameworks for Android (2020)

В Android бум UI тестирования и множество проектов, которые расширяют возможности Espresso. В статье вы найдете информацию о самых популярных, а именно:
👉 Kaspresso - тестовый Фреймворк от Kaspersky, построенный на основе Espresso, Kakao, UIAutomator
👉 Barista - большое расширение Espresso
👉 BusyBee - еще одно расширение Espresso
👉 Repeato - NoCode test automation framework for Android
#Compose #Jetpack

Getting our apps ready for Jetpack Compose

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

Уже можно начать готовиться к декларативному UI, приготовив свои приложения и голову к:
👉 Коцепция состояния
👉 Unidirectional data flow
👉 Отделение UI компонентов от бизнес логики

Потихоньку уже можно готовиться к адаптации Jetpack Compose к себе в приложения, ведь это будущее уже не за горами. В статье вы найдете советы и подробности этого процесса
Используете ли вы Hilt в своих проектах?
Anonymous Poll
11%
Да
68%
Нет
13%
Что это?
7%
Не участвую в опросе
#DependencyInjection

Migrating from Dagger to Hilt — Is it worth it?

Hilt предназначен упростить работу с Dagger в Android, но почему-то не все спешат переходить на него, а именно:
👉 Упростить Inject в конструкторы ViewModel и различные Worker из WorkManager
👉 Упростить тестирование, с помощью более легкой замены Dagger модулей и прокалывания зависимостей в граф
👉 Стандартные Dagger компоненты для основных компонентов приложения

Мне лично очень не хватает поддержки Inject в конструкторы Fragment
#Localization

The Ultimate Guide to Android App I18n and L10n

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

Статья представляет из себя полное руководство i18n и l10n для правильной адаптации продуктов под новые регионы, а именно:
👉 Путаница в понятиях
👉 Настройка проекта
👉 Организация строковых ресурсов
👉 Получение/задание локали
👉 XLIFF
👉 Plurals
👉 Форматирование даты/времени и чисел
👉 Единицы измерения
👉 LTR и RTL
👉 Псевдолокализации - специальный локали en-XA и ar-XB
Избегаем поддельных шрифтов в Android

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

Как этого избежать и как правильно получать необходимый шрифт в коде/XML вы найдете в статье.
#HMS #ML #AI

Снятся ли телефонам с HMS электроовцы? Обзор функций и возможностей инструментов AI от Huawei

Разбор возможностей ML Kit от Huawei, который является частью HMS. В состав этого инструмента входит:
👉 Распознание текста
👉 Распознание речи: диктовка, транскрипция аудиофайлов, TTS, переводы, создание интерактивных обучающих роликов
👉 Работа с изображениями: классификация, обнаружение и отслеживание объектов, распознание, улучшение разрешения и качества и др.
👉 Распознание лица и позы человека

Все возможность работают как онлайн, так и оффлайн, но в более урезанном формате. В отличие от ML Kit от Google, Huawei больше уделяет внимания русскому языку.

Также не стоит забывать, что устройства Huawei имеет свои чипы Kirin с высокопроизводительным NPU, который позволит ускорить весь этот процессинг в разы.

Помимо всего возможна работа с собственными моделями, есть расширенные возможности для приложений с AI и много других интересных сервисов от Huawei.
#AndroidStudio

Магическая шаблонизация для Android-проектов

Иметь шаблон для создания проекта или его частей в UI Android Studio позволяет сокращать время на разработку, убирая необходимость писать однообразный код.

До Android Studio 4.1 можно было использовать FreeMarker шаблоны, но теперь так больше сделать нельзя. В HeadHunter решили исправить эту ситуацию и разработали плагин Geminio

В статье автор делиться тем как работает новый механизм, какие есть альтернативы и как все это улучшает Geminio
#Performance #Testing

Testing App Startup Performance

Сделать быстрый старт вашего приложения (как холодный, так и горячий). Чтобы делать это, надо понять как правильно его замерять, что и разбирается в статье в виде разных трюков с adb, API и немного библиотеки AndroidX Performance
#UI

AsyncLayoutInflater

AsyncLayoutInflater - это возможность инфлейтить Layout XML асинхронно, что может использоваться для ускорения работы вашего приложения и разгрузки Main/UI потока вашего приложения.

Проблема заключается в том, что не все API в Android готово к асинхронному рендерингу, например Fragment, который требует вернуть View как результат выполнения onCreateView()
#IDEA

Keep Shortcuts close, but Quick Lists and Favorites closer

Быстрая навигация и выполнение действий - одна из ключевых функций, которая отличает качественную IDE от простого текстового редактора. В статье разбираются Quick List (собственные списки действий) и Избранное (файлы, папки и пакеты, которые будут доступны быстрее)