Size: a a a

Android Broadcast

2020 August 22
Android Broadcast
#RxJava

RxRelay – это магия? Subject vs RxRelay

Для всех кому нравится работать с Rxjava и приходится это делать (Coroutine победят!). Альтернатива Subject - RxRelay. В статье происходит разбор решения и их отличия
источник
Android Broadcast
#Performance

Assets or Resource Raw folder of Android?

В Android есть возможность 2 образами положить произвольные файлы - aasets и raw ресурсы. Что выбрать? Что быстрее? Что займёт меньше места в APK?

В статье найдёте сравнение
источник
Android Broadcast
#Firebase #Analytics

New API for manually tracking screen views in Google Analytics

В Firebase Analytics появилась возможность вручную трекать показы экраны на Android и iOS. Событие screen_view теперь можно отправить самостоятельно и иметь больше контроля за ним

Когда это может пригодиться:
👉 Отправка события когда пользователь провел какое-то время на экране (не было случайного входа на экран)
👉 Экраны в вашем приложении, которые автоматическая статистика понять не могла, например дочерние View или Fragment

Старое API setCurrentScreen стало deprecated и надо с него уходить. В статье есть гайд как это сделать
источник
Android Broadcast
#ConstraintLayout #MotionLayout

Вышел ConstraintLayout 2.0

Наконец-то вышел стабильный релиз долгостроя AndroidX - ConstraintLayout 2.0

Что нового:
👉 Улучшенный Runtime
👉 Новый механизм Flow, нечто подобное Chain, позволяющее управлять позиционированием группой виджетов горизонтально или вертикально
👉 Новый helper Layer
👉 Простой способ строить анимации с помощью MotionLayout
👉 Обновленный Layout Editor в Android Studio 4.1 с поддержкой ConstraintLayout 2.0
👉 MotionEditor - визуальный редактор анимаций, доступный с Android Studio 4.0

Примеры использования можно найти здесь
источник
2020 August 24
Android Broadcast
#Kotlin #DSL #Lint

Kotlin DSL —defining mandatory parameters

Kotlin DSL - удобный способ заменить Builder и позволить описывать создание сложных объектов более явно, в особенности когда они имеют вложенности.

Проблема DSL что нельзя каким-то образом проверить, что разработчик использовал все необходимые поля. Такая проверка могла пройти в коде в рантайме или нужно было требовать заполнение во вне DSL.

В статье автор рассказывает о свое библиотеке DSLint, которая на основе Android Lint делает проверку того что все необходимые поля были заполнены.
источник
Android Broadcast
#MemoryLeak #ViewBinding

Avoiding memory leaks when using Data Binding and View Binding

При использовании View Binding легко попасть в ситуацию, когда у вас в Fragment начнет утекать память. Связано это с тем, что ViewBinding хранит ссылки на View, которые уничтожаются в onDestroyView() и создаются в onCreateView().

Самое интересное, что автор предложил решением мою библиотеку ViewBindingPropertyDelegate, которая изящно решает работу с ViewBinding и DataBinding.
источник
Android Broadcast
#Coroutines #Testing #Flow

Turbine - маленькая библиотека для тестирования kotlinx.coroutines Flow
Автор - Jake Wharton

Библиотека позволяет проверить какие данные были проэмичены в Flow
источник
2020 August 25
Android Broadcast
#Android11 #Animations

Animating your Keyboard (part 1)

В Android 11 появилась возможность создавать плавные анимации UI при открытии/закрытии системной клавиатуры, благодаря множествам улучшений в WindowInsets, которые также доступны в WindowInsetsCompat.

Чтобы поддержать новую возможность вам надо:
1️⃣ Добавить поддержку edge-to-edge в ваше приложение (отрисовка под системными панелями)
2️⃣ Добавить слушателя на изменение отступа при открытии/закрытии клавиатуры
3️⃣ Добавить реакцию на изменения

В первой части рассказывается про то как сделать приложение "edge-to-edge", новые API WindowInsets в Android 11 и рекомендации по использованию.

Помимо всего появилось новое API - WindowInsetsController, позволяющее показать/скрыть клавиатуру и много чего другого. Это API заменило собой работу с показом/скрытием системного UI и настройкой его отображения, например Immersive Mode. WindowInsetsController пока нет в AndroidX, но появится.
источник
Android Broadcast
#Android11 #Animations

Animating your keyboard (part 2): Reacting to WindowInset animations

Во второй части рассказывается про интеграцию со слушателем WindowInsets в Android 11 на основе нового API WindowInsetsAnimation
источник
Android Broadcast
#AndroidBroadcast #Kotlin #Multiplatform

Разбор Kotlin 1.4: быстрее и лучше (Livestream)

Обсуждаем новую версию Kotlin с Developer Advocate из JetBrains Светланой Исаковой и командой Android Dev Podcast! Разбираем всё: синтаксис языка, библиотеки KotlinX, улучшения в IDE и Multiplatform

Помимо прочего во время стрима будет проводиться розыгрыш ценных призов для настоящих Kotlin программистов!

Соведущие:
- Михаил Емельянов, Head of Android Dev в ЦФТ
- Вадим Котов, Android Developer в AdCombo
- Дмитрий Мовчан, Android Software Engineer в Revolut

Подписывайтесь на канал, чтобы не пропустить новые видео и поддержать автора
источник
Android Broadcast
#Lint #CodeQuality

Android Lint Framework — An Introduction

Android Lint - специальная утилита для Android проектов, которая анализирует в нем различные файлы (код, ресурсы, Gradle скрипты и др.). Утилита обнаруживает нарушения правил, которым рекомендуется следовать.

Android Lint можно дополнить своими правилами. В статье разбирается создание правила по обнаружению использованию стандартного ImageView с предложением его замены на собственный.

Исходный код можно найти здесь
источник
2020 August 26
Android Broadcast
#Material #DarkTheme

Dark Theme with Material Design Components

Поддержка темной темы - это важная возможность приложения в современном мире, которая позволяет уменьшить нагрузку на глаза пользователя и экономить заряд батареи.

Material Design Component (MDC) из коробки поддерживают работу с темной темой. Доступна функция для Android 5.0 и выше.

В статье разбирается как вам правильно использовать компоненты и настроить Material Theme, чтобы реализовать темную тему у себя в приложении.
источник
Android Broadcast
#Testing #Espresso #Jetpack

Вышла библиотека AndroidX Test 1.3.0
👉 Core 1.3.0
👉 Espresso 3.3.0
👉 Intents 3.3.0
👉 JUnit 1.1.2
👉 Monitor 1.3.0
👉 Orchestrator 1.3.0
👉 Runner 1.3.0
👉 Rules 1.3.0
👉 Truth 1.3.0
👉 Test Services 1.3.0

Замечание: пытался найти что за изменения произошли в библиотеках, но кроме перечисления обновленных библиотек ничего нет (
источник
Android Broadcast
#Gradle

apkscale

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

Code Coverage Best Practices

Чтобы понять насколько хорошо покрыто тестами ваше приложение, надо это измерить. Google делиться своим опытом по покрытию тестами проектов и как это сделать.
источник
Android Broadcast
#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
источник
Android Broadcast
Будете пробовать альфу Jetpack Compose в production приложениях?
Анонимный опрос
11%
Да
17%
Жду Beta
43%
Жду Stable
14%
Не планирую использовать Compose
15%
Не участвую в опросе
Проголосовало: 1129
источник
2020 August 27
Android Broadcast
#Fragment

Android Fragment Result Listener (RU)

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

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

Smarter apps with Awareness API

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

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

Support for Kotlin SAM in release 1.4

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

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

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