Size: a a a

Android Broadcast

2020 November 18
Android Broadcast
#Navigation #Compose

Android Jetpack Compose: Navigation

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

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

Explore Kotlin Annotations

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

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

DIP vs IoC vs DI в мире Android

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

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

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

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

Вышел Kotlin 1.4.20

В новой версии языка вы найдете:
👉  Kotlin Android Extensions (synthetic views) плагин теперь deprecated, а Parcelize выделился в отдельный, независимый плагин org.jetbrains.kotlin.plugin.parcelize
👉 Множество улучшений и багфиксов в компиляторе
👉 Улучшения Kotlin плагина для IDE
👉 Поддержка Gradle configuration cache
источник
Android Broadcast
#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, исключением являются существующие приложения, которые требования не заденут, либо распространяются только на будущие обновления.
источник
Android Broadcast
#Location #Android11

Tips for getting your app approved for background location access

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

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

Вышел Dagger 2.30
👉 Hilt депрекейтнул ApplicationComponent и вскоре его удалят и заменят SingletonComponent
👉 Hilt стал поддерживать @BindValue val
👉 Dagger по умолчанию теперь использует experimentalDaggerErrorMessages. Подробности о новом формате вывода ошибок здесь
👉 Исправление багов
источник
Android Broadcast
​​#UI #ConstraintLayout #MotionLayout #Animation

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

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

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

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

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

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

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

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

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

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

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

Гость выпуска - Антон Дудаков, Team Lead встраиваемых Android приложенек в SberDevices. Работал Team Lead в стартапе Storia.me и Яндекс.Авто. Соведущий Android Dev Podcast
источник
2020 November 24
Android Broadcast
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
источник
Android Broadcast
#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.
источник
Android Broadcast
источник
Android Broadcast
#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
источник
Android Broadcast
#Coroutines

Substituting Android’s LiveData: StateFlow or SharedFlow?

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

Parcelable implementation generator

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

Оно совсем короткое, показывая пример использования, а также более сложные случаи сериализации различных типов данных.
источник
Android Broadcast
#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
источник