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

Android Gradle Plugin получил важные улучшения для разработчиков плагинов, завязанных на него:
👉 Разделение API на публичное и приватное
👉 Документация
👉 Обратная совместимость публичного API

Ссылок по этой информации кроме как видео выше нет (
#Jetpack

AndroidX: App Startup

App Startup - новая библиотека в составе Jetpack, призванная уменьшить время запуска приложений.

Появилась возможность создавать граф компонентов и последовательно инициализировать каждый из них, с учётом того, что один компонент может зависеть от другого, тем самым предотвращая повторный вызов встроенных ContentProvider'ов.

Это позволит уменьшить код в Application-классе и ограничиться лишь одним Content Provider'ом для инициализации всего графа. Так же библиотека может отключать "тяжёлые" зависимости, чтобы инициализировать их в нужном месте приложения.

В статье описывается принцип работы App Startup на примере инициализации компонентов приложения для распознавания лиц.
#Jetpack

Пример инициализатора из App Startup
#Android11 #Jetpack #Compose #GooglePlay #AndroidStudio

По следам Android 11 Beta

Когда: завтра, 15 июня, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast

Обзор недавно представленных новинок Android 11, Android Jetpack, Jetpack Compose, Google Play, Android Studio и др

Организовано совместно с Android Dev Podcast
#Conference #Online

Podlodka Android Crew

22 июня запускается онлайн-конференция Podlodka Android Crew – ежедневные интерактивные сессии и постоянное общение с самыми крутыми экспертами.

Конференция будет идти на протяжении двух недель, каждая из которых имеют свою тему: “Архитектура” и “Оптимизация работы приложений”. На борту уже такие известные спикеры как Денис Неклюдов, Александр Блинов, Сергей Боиштян, Александр Ефременков, а скоро экспертов будет еще больше!

Купить early bird билет по пониженной цене!
Хотите выиграть билет? Участвуйте в розыгрыше
#GooglePlay

Meet Google Play Billing Library Version 3

Вышла новая мажорная версия библиотеки для работы с платежами в Google Play. Что нового:
👉 Pending transaction
👉 Оплата наличкой
👉 Возможность использовать промокодов без установки приложения
👉 Возможность добавления мета информации при покупке товаров

Также введены сроки смерти всех старых версий API:
👉 Все новые приложения должны будут публиковаться с Billing API v3 с 2 августа 2021
👉 Все старые версии Billing API перестанут работать с 1 ноября 2021
👉 Каждый мажорный релиз будет поддерживаться 2 года
#AndroidStudion #Debug

Debugging in Android Studio

Любой разработчик занимался отладкой своего кода. Поэтому знать инструмент всегда стоит получше.

AndroidStudio и Logcat
👉 Настройка вывода Logcat (что показывать из логов)
👉 Фильтр нужных логов Logcat
👉 Возможность спрятать похожие логи

Возможности breakpont:
👉 Присоединение дебагера во время работы приложения
👉 Остановка на breakpoint по условию
👉 Зависимости между breakpoint
👉 Приостановка потоков
👉 Вывод лога вместо остановки выполнения программы (без добавления кода логирования в программу)
👉 Drop frame - возможность выйти из метода и вернуться в момент до его выполнения. Доступна на Android 10+
👉 Mark object - возможность пометить объект и отслеживать его, вместо того чтобы запоминать его хэш код
👉 Возможность выполнить код во время остановки


Еще стоит упомянуть опцию "Analyze stacktrace" - скопируйте стектрейс из любого места и вставьте его и вы сможете переходить по коду из него
#Kotlin #KAPT

Kotlin Symbol Processing API

Скорость Kapt огорчает многих разработчиков в Android мире. Люди делают свои обходные решения, а некоторые и вовсе весь код, которые используется для кодогенерации, пишут только на Java.

В этом царстве тьмы появляется новый игрок - Kotlin Symbol Processing. Цель новой утилиты позволить генерировать Kotlin код во время компиляции, без необходимости делать это через Java. Проект пока на ранней стадии, но уже способен сократить время работы компиляции кода на 30%!
#Architecture

The beautiful story of Android developers, multiple Activities, and the chained elephant

Подход "Single Activity" становится всё более популярным при разработке Android приложений, как минимум потому что это рекомендация от Google.

Автор статьи простым языком объясняет проблемы "Multi Activity" приложений и показывает плюсы подхода "Single Activity":
👉 Отпадает необходимость в Bundle
👉 Больше не нужны Result-колбэки
👉 Упрощённая навигация с помощью Navigation Component или другой библиотеки на ваш выбор
👉 Shared scope для передачи данных между Fragment-ами и хранение состояния

Обойтись без "Multi Activity" не получится полностью. Автор приводит частные случаи, когда такой подход становится оправдан.
#Gradle #Performance

10 Tips to Speed Up Android Gradle Build Times

Автор даёт 10 простых советов как ускорить время сборки вашего приложения. В статье приводится инфографика влияния того или иного изменения на время сборки, поэтому вы сможете выбрать наиболее подходящие для себя.

После применения всех рекомендаций результаты были следующими:
👉 Время полной сборки сократилось с 59 до 19 секунд, почти в три раза.
💥 Время инкрементальной сборки после изменения кода сократилось с 24 до 2 секунд, в 12 раз!
👉 Время инкрементальной сборки после изменения ресурсов сократилось с 15 до 4.5 секунд
#GooglePlay

История одной блокировки и разблокировки в Google Play

Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
#Testing

Using Fakes To Test Reactive Flows

Довольно часто для создания зависимостей в Unit тестах используются mocking-фреймворки. Несмотря на простоту и быстроту имплементации такого решения, иногда можно столкнуться с его ограничениями, например, при тестировании реактивных потоков данных.

В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
#MotionLayout

MotionLayout: Visibility

Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.

Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
#Architecture #LiveStream

Все тайны MVI

Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast

Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.

Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
#JetpackCompose

Compose Academy

Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).

На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
#R8 #Proguard

How to break your Android App with ProGuard / R8

Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.

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

Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы wait, nofify и nofifyAll класса Object были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.

Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
#Dagger #Hilt

Dependency Injection on Android with Hilt

Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте

Внимание: библиотека еще в альфа стадии
hilt-annotations.pdf
56.4 KB
Основные аннотации Hilt и их использование