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
#Gradle

Benchmarking Gradle Builds Using Gradle-Profiler

Разбор как проверить производительность ваших Gradle сборок с помощью Gradle Profiler
#GooglePlay #DynamicDelivery

Configuring your app for Play Feature Delivery

Размер вашего приложения - важная метрика, которая позволяет повысить количество установок. Одна из возможностей Google Play, которая может вам улучшить этот показатель - Dynamic Delivery

В статье разбирается как сконфигурировать модуль и настроить его, чтобы он доставлялся устройства, которые соответствуют определённым критериям.
#Kotlin

Exhaustive плагин - аннотация и плагин Kotlin компилятора для проверки что when содержит все значения из enum или sealed class. В случае если это условие не соблюдается будет ошибка во время компиляции.

Для работы плагина требуется помечать все when специальной аннотацией. Хотите такой же функционал но на уровне языка? Голосуйте за тикет KT-12380 в официальном багтрекере Kotlin.
#Coroutines

На сайте Android Developers появилось руководство по Kotlin Flow, которое включает в себя:
👉 Что такое Flow и как с ним работать
👉 Тестирование Flow
👉 SharedFlow и StateFlow
👉 Примеры использования
👉 Отличия LiveData и StateFlow, а также когда StateFlow может утекать
#Navigation #Compose

Android Jetpack Compose: Navigation

Android Navigation получило интеграцию с Jetpack Compose, а в статье разбирается как это будет выглядеть в коде
Detect Screenshots in Android

Инструкция по определение того, что на телефоне был сделан скриншот и сразу перехватить эту картинку. Способ основываете на ContentProvider и MediaStore. Автор также вынес все это решение в примере на GitHub.
#Kotlin

Explore Kotlin Annotations

В Android разработке Kotlin мы используем поверх JVM, а иногда и воспользоваться вызовом Kotlin кода из Java. Чтобы это все корректно работало и можно было удобно использовать это API из Java, вам пригодятся специальные аннотации: JvmStatic, JvmOverloads, JvmFields.

Особенно рекомендую обратить внимание на эти аннотации для авторов библиотек, если ваше решение может использоваться из Java кода.
#DependencyInjection #SOLID #Architecture

DIP vs IoC vs DI в мире Android

Разбор разницы между Dependency inversion principle (DIP), Inversion of control (IoC) и Dependency injection (DI). Помимо прочего рассматриваются пограничные случаи, когда легко спутать эти термины
​​Roman Elizarov is the new Project Lead for Kotlin

Роман Елизаров возглавит проект Kotlin. Но для меня новость одновременно и грустная - Андрей Бреслав после 10 лет работы над Kotlin уходит из команды.

Kotlin остается в надежных руках. Мне выдалась возможность пообщаться с Романом лично на Kotlin Conf'19, и я был в восторге! Роман это человек, который возглавлял Coroutine в Kotlin и подарил уже много прекрасных вещей в нем.

Андрей от всей команды Android Broadcast большое спасибо вам за язык, который подарили нам. Вы в нашем ❤️ навсегда!
#Kotlin

Вышел Kotlin 1.4.20

В новой версии языка вы найдете:
👉  Kotlin Android Extensions (synthetic views) плагин теперь deprecated, а Parcelize выделился в отдельный, независимый плагин org.jetbrains.kotlin.plugin.parcelize
👉 Множество улучшений и багфиксов в компиляторе
👉 Улучшения Kotlin плагина для IDE
👉 Поддержка Gradle configuration cache
#GooglePlay #AppBundle

New Android App Bundle and target API level requirements in 2021

В 2021 нас ждут следующие требования для наших приложений в Google Play:
👉 Target API Level 30 (Android 11)
👉 Миграция на Android App Bundle и Play App Signing для всех новых приложений
👉 OBBs файлы больше не будут поддерживаться. Используйте Play Asset Delivery или Play Feature Delivery
👉 Instant App должны мигрировать на формат instant-enabled app bundles.

Изменения заденут все существующие приложения с августа 2021, исключением являются существующие приложения, которые требования не заденут, либо распространяются только на будущие обновления.
#Location #Android11

Tips for getting your app approved for background location access

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

Для существующие приложений, опубликованных до 16 апреля 2020 года увеличили срок - вместо января 2021 это стал конце марта 2021 (+2.5 месяца).
#DependencyInjection

Вышел Dagger 2.30
👉 Hilt депрекейтнул ApplicationComponent и вскоре его удалят и заменят SingletonComponent
👉 Hilt стал поддерживать @BindValue val
👉 Dagger по умолчанию теперь использует experimentalDaggerErrorMessages. Подробности о новом формате вывода ошибок здесь
👉 Исправление багов
​​#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.