Size: a a a

Android Broadcast

2020 July 22
Android Broadcast
#R8

Для тех кто обновился до AGP 4.0 то могли столкнуться с новыми багами в R8, инструментом для минификации и обфускации кода.

Версия R8 2.0.88, которая используется по умолчанию в AGP 4.0.1, генерирует байткод с проблемама при процессинге suspend функций

Ошибка исправлена в R8 2.1.52. Ниже пример кода как обновить R8 ⬇️
источник
Android Broadcast
В корневом build.gradle вашего проекта надо добавить следующие строчки.
источник
2020 July 23
Android Broadcast
#UML

UML для самых маленьких: диаграмма классов

Автор статьи даёт новичкам теоретическую базу по UML-диаграммам для структуризации дерева классов в проекте. Диаграммы, благодаря общепринятым правилам, помогают более наглядно увидеть взаимоотношения и зависимости между моделями и абстракциями, а так же отображают структуру самого класса. Автор рекомендует составить подобную диаграмму прежде чем начинать любой новый проект, дабы предотвратить разногласия и непонимание структуры моделей всего проекта.
источник
Android Broadcast
#AnroidX

Релиз AndroidX от 22.07.2020

Новые релиз обновлений нам принес:
👉 Стабильный WorkManager 2.4.0 (о них ниже)
👉 AndroidX Core 1.3.1 с исправлением бага c Typeface на Android 10
👉 Lifecycle 2.3.0-alpha06 получил пачку интересных изменений (о них ниже)
👉 Room 2.3.0-alpha02 получил поддержку RxJava 3 и включил инкрементальный процессинг по умолчанию
👉 Множество новых альфа-версий других библиотек
источник
Android Broadcast
#WorkManager

WorkManager 2.4.0

👉 Больше возможностей для планировщика WorkManager, что запускает WorkRequest
👉 Поддержка RxJava3
👉 Возможность получить WorkInfo, используя WorkQuery.
👉 Возможность получить диагностическую информацию о работе WorkManager
👉 Новая политика ExistingWorkPolicy.APPEND_OR_REPLACE
👉 Возможность задать свой собственный RunnableScheduler для отслеживания WorkRequest, который будет выполнен позже
👉 Возможность динамического добавления фабрик в DelegatingWorkerFactory
👉 Новые правила Android Lint
👉 Улучшения в отслеживании BATTERY_NOT_LOW
👉 Улучшения в работе и исправления багов
источник
Android Broadcast
#Lifecycle

Lifecycle 2.3.0-alpha06

Изменение поведения
👉 DESTROYED теперь терминальное состояние, что означает отсутствие каких-либо дальнейших событий
👉 LifecycleRegistry теперь будет проверять, что метод вызываются на главном потоке

👉 Новые вспомогательные методы downFrom(State)downTo(State)upFrom(State)upTo(State), которые генерирует Event для заданного State и направление перехода для его осуществления.
👉 Новый метод Lifecycle.withStateAtLeast, который дожидается когда Lifecycle, достигнет заданного состояния
источник
Android Broadcast
#Resourses

How to name a color in Android

Есть мнение, что одной из основных проблем в программировании является именование. Как часто вы сталкивались с тем что не можете придумать название функции или ресурса? Для нас, как Android разработчиков беспорядок в xml с цветами является весьма привычным делом, хотя студия часто спасет, отображая цвет в колонке с нумерацией строк.

Автор статьи предлагает систему для именования цветов в xml, дабы в будущем избежать путаницы.
источник
2020 July 24
Android Broadcast
Используете ли вы в production проектах Navigation из Arch Components ?
Окончательные результаты
44%
Да
41%
Нет
6%
Что это?
9%
Не участвую в опросе
Проголосовало: 946
источник
Android Broadcast
#Activity

Improving inter-activity communication with Jetpack ActivityResult

В ближайшем релизе androidx.activity нас ждёт замена onActivityResult() на новое API - Activity Result API. Вместо хранения requestCode, понимание правильно resultCode вы теперь просто делаете запрос и получаете результата.

Самое важное еще - все гайды с получением результата уже переписаны на новое API, а onActivityResult() будет deprecated
источник
Android Broadcast
#BestPractices

40 советов, которые навсегда изменят ваше программирование

Статья, которая содержит 40 достаточно полезных рекомендаций для разработчика, будет полезна как новичкам, так и опытным программистам. Заголовок немного кликбейтный, потому что каждому разработчику присущ свой стиль написания кода, но советы действительно помогут пересмотреть свои взгляды на определённые вещи в разработке.
источник
Android Broadcast
#ArchitectureComponents #Navigation

What’s New in Navigation 2020

Navigation Arch Component в первой своей версии много чего не умел, чего не хватало разработчикам. За последнее время все это наверстали:
👉 Доступ к NavBackStackEntry: расширение навигации за рамки NavDestination
👉 Шаринг данных между элементами NavGraph с помощью NavBackStackEntry, которая является ViewModelProvider
👉 Поддержка Activity Result
👉 Поддержка Dynamic Features
👉 Тестирование навигации
👉 Получение параметров из Deep Link
👉 Kotlin DSL для описания графа
👉 Улучшения API

В статье найдете более подробный обзор этих возможностей
источник
Android Broadcast
#Jetpack #GItHub

Jetpack вернулся на GitHub!

Легендарное возвращение Jetpack на GitHub и возможность контрибьютить туда. Сейчас принимаются pull request-ы в Room и WorkManager
источник
2020 July 25
Android Broadcast
#WorkManager

Use WorkManager for immediate background execution

В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.

В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
источник
Android Broadcast
Вы уже пробовали библиотеку CameraX ?
Окончательные результаты
20%
Да
63%
Нет
10%
Что это?
7%
Не участвую в опросе
Проголосовало: 940
источник
Android Broadcast
#Jetpack #CameraX

CameraX: a glimpse into the past, present, and future

CameraX все еще пока находится в Beta, но уже множество разработчиков высказываются о позитивных моментах ее использования: уменьшение размера кодовой базы, связанной с камерой, и что теперь не надо отлаживать камеру на устройствах от различных производителей.

Чтобы все это еще работало точно и без проблем в Google создали специальную тестовую лабораторию с более чем 90 устройствами (полный список здесь) для проверки работы CameraX.

Возможности использования ночного режима, HDR и др функций, которые раньше были только доступны в стоковой камеры теперь доступны всем через CameraX.
источник
2020 July 27
Android Broadcast
#Arhitecture #LIveData

Don’t use LiveData in Repositories

Появление Arch Component показало и видение архитектуры от Google на основе этих компонентов (схема тут). Видение это подразумевало, что начиная от источников данных в Storage и Repostiory у вас возвращаются LiveData, для обеспечения реактивного получения обновления данных.

Вы задумывались о том, почему компонент LiveData, который имеет связь с жизненным циклом (ЖЦ), используется в слое с данными. Данные должны быть абстрагированы от особенностей платформы, в особенности таких как ЖЦ.

Также LiveData имеет особенности по работе, например обновление данных происходит через главный поток, для обеспечения синхронизации обновлений

Хорошей заменой для этого будет использование LiveData только для коммуникации между ViewModel и UI, а на всех остальных слоях другие реактивные подходы:
👉 Coroutines Flow
👉 Reaktive
👉 RxJava
источник
Android Broadcast
#AndroidBroadcast #Security

Безопасность мобильных приложений (Livestream)

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

Какие дыры есть в Android? Как ими могут воспользоваться злоумышленники? Куда развивается Android ОС в рамках безопасности? Как обеспечить защиту пользователя и сервиса от злоумышленников? На все эти вопросы будем искать ответы вместе в ходе выпуска.

Гость выпуска - Ольга Шкряба, Senior Mobile Security Engineer. Занимается исследованием и разработкой решений в сфере безопасности, а также поиском уязвимостей. Автор Telegram канала о безопасности мобильных приложений paradiSEcurity
источник
Android Broadcast
#UnderTheHood

Android Vitals - Diving into cold start waters

В статье разбирается как происходит холодный (когда процесса приложения не существует) запуск приложения Android. Хардкорненько и на любителя. Ставьте свои лайки и дизлайки чтобы понять интересно вам или нет
источник
2020 July 28
Android Broadcast
#Kotlin

Kotlin 1.4.0-RC Released

Kotlin 1.4 уже совсем близко. В RC версии добавились следующие улучшения:
👉 Улучшена поддержка Gradle Kotlin Script
👉 Больше не нужно явно добавлять зависимость на stdlib, она будет подключаться вместе с плагином kotlin
👉 Управление CocoaPods зависимостями стало проще
👉 Различные улучшения в Koitlin/JS
👉 Часть API в stdlib перешло из состояния experimental в stable.
источник
Android Broadcast
#Battery

Энергопотребление Android-приложений

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

Мы как разработчики должны знать какие они есть, как с ними работать, а главное как протестировать их эффект на приложение.
источник