Size: a a a

Android Broadcast

2019 October 12
Android Broadcast
#AndroidLint

Enforcing Best Practices on Android with Lint

Android Lint - мощный инструмент для проверки качества кода в Android проектах С помощью нее вы можете проверить Java/Kotlin код, Android ресурсы и любые другие файлы в вашем проекте.

В статье рассматривается как создать свое собственное правило на примере предупреждения о том, что не рекомендуется задавать configChanges для Activity в AndroidManifest.xml.
источник
Android Broadcast
#MaterialDesign

2019 Material Design Award Winners

Представлены победители премии Material Design Awards - это лучшие приложения, которые воплотили Material в жизнь!

Победители:
🏆Ruff - лучшее приложение в категории Theming
🏆Reflectly - лучшее приложение в категории Innovation
🏆Scripts - лучшее приложение в категории Experience
🏆Trip.com - лучшее приложение в категории Universality
источник
Android Broadcast
#AndroidX #JetpackWeekly #JetpackCompose #Room

Android Jetpack Weekly #9

🔥Первая порция артефактов Jetpack Compose
🔥Jetpack Compose и Android Studio 3.5 работают вместе
👉 Room 2.2.0
👉 AndroidX Concurrent Futures
👉 Множество новых beta и RC версий
источник
2019 October 14
Android Broadcast
#Coverage #Test #JaCoCo

Вышел JaCoCo 0.8.5

Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения:
👉 Поддержка Java 13 (Android разработчики только этого и ждали 😁)
👉 Улучшение отчетов для Kotlin
‼️ Изменилась лицензия на Eclipse Public License Version 2.0
👉 Исправление багов
источник
Android Broadcast
#CodeQuality #Kotlin

Вышел Ktlint 0.35.0 - утилита для проверки стиля Kotlin кода. В новой версии произошли незначительные изменения, обновление до Kotlin 1.3.50 и правки багов
источник
Android Broadcast
#RecyclerView #Animation #HowTo

How to Make RecyclerView Items That Expand With Animation

Руководство как сделать RecyclerView с раскрывающимися элементами в списке
источник
Android Broadcast
#Firebase #MLKit #AutoML #CameraX #MachineLearning

Firebase ML Kit: AutoML Vision Edge

Компьютерное зрение и машинное обучение. Слышали об этом? Думаю что да. Ребята из Firebase работают чтобы упростить нам задачу по интеграции этих технологий в свои мобильные приложения.

В статье разбирается AutoML Vision Edge - функция Firebase ML Kit, которая позволяет тренировать модели на массиве фотографий:
👉 Как начать работу
👉 Сколько стоит и что можно сделать за бесплатно
👉 Интеграция работы с полученной моделью в Android приложении на основе CameraX
источник
Android Broadcast
#ScopedStorage #Android11

Android 11 еще не успел выйти но уже известно что в нем будет - Scoped Storage. Новая система больше изолирует доступ приложений к данным на внешнем диске и вся коммуникация сводится только к доступу к файлам, которое само же приложение создало, либо использую Media провайдер или Storage Access Framework(SAF). SAF появился в Android 4.4 KitKat (API Level 19).

Функция не попала в релиз Android 10 (отключена по умолчанию для всех приложений) из-за необходимости значительного объема времени для адаптации сторонних приложений (комментарий разработчиков из Google). Может перенос связан с багами в новой системе 😁. Google правду нам не скажет

В любом случае эти изменения нас ждут в следующем мажорном релизе Android и пора к ним готовиться! Чтобы сделать это было проще. Google активно занимается улучшением документации а также представили примеры:
Android Media Store Sample и Storage Samples Repository. Ждем больше новостей на Android Dev Summit 2019
источник
2019 October 15
Android Broadcast
#JetpackCompose

Playing with Jetpack Compose dev preview — Part 1: Sample

Jetpack Compose показал свою первую dev версию в maven.google.com и теперь его можно попробовать без сборки специальной версии Android Studio. В статье рассматривается какие артефакты показали и как завести Jetpack Compose в Android Studio 3.5.
источник
Android Broadcast
#MachineLearning #Facebook

Facebook представила PyTorch Mobile

PyTorch - это Фреймворк для машинного обучения с открытым исходным кодом. не так давно была представлена версия 1.3 в которой появилась мобильная версия - PyTorch Mobile.
источник
Android Broadcast
#Debug

Beagle — A smart and reliable companion library for debugging your Android apps

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

Библиотека имеет плагинную архитектуру и из коробки имеет следующие модули:
👉 Логи (не системные, а те которые вы будете логировать с помощью Beagle)
👉 Просмотр информации о приложении
👉 Сделать скриншот
👉 Информация о сетевых операциях
👉 Добавление различных виджетов: кнопок, селекторов и пр.
источник
Android Broadcast
#Новости

Канал собрал свою первую тысячу пользователей 🎉🎉🎉

Спасибо всем вам кто поддержал идею и читает новости. Вас становится все больше и я надеюсь что эта тенденция сохранится.

Хочу сказать отдельное спасибо @Shahini_Mohsen. С его подачи появилась идея сделать этот канала, в начале я и не мог подумать, что соберется так много Android разработчиков из разных стран.
источник
2019 October 16
Android Broadcast
#Android #Resources #Attributes

Dependency Inversion on Android Theming

В последнее время все активнее стало обсуждаться такая тема как интеграция темной темы в приложение. Как это сделать?

Надо изменить свой взгляд на работу с ресурсами. Вам нужно обращаться не к конкретным ресурсам: цветам, стилям, картинкам, а делать это через переменные. Вы знаете их как атрибуты. Больше подробностей в статье.
источник
Android Broadcast
#AndroidX #Security

Обзор библиотеки AndroidX Security

На последнем Google I/O много времени уделялось безопасности во всех продуктах. Очень логичным стала новинка - библиотека androidx.security.

В рамках библиотеки предоставляются удобные средства для шифрования данных на диске. На текущий момент (версия библиотеки 1.0.0-alpha02):
👉 EncryptedSharedPreferences - зашифрованные SharedPreference
👉 EncryptedFile - шифрование файлов и работа с ними

В статье происходит разбор новой библиотеки и как с ней работать.

Интересно, а что будет с официальной поддержкой шифрования SQLIte? Интегрирует ли что-то официальное в Room?
источник
Android Broadcast
#Animation

Вышла Lottie 3.1.0

В новой версии произошли небольшие изменения API, улучшение производительности и багфикс.
источник
2019 October 17
Android Broadcast
#Immersive

Gesture Navigation: Immersive Modes (IV)

Продолжение серии статей о адаптации приложений под новую систему навигации жестами в Android 10. В новой части речь зайдет о Immersive Mode
источник
Android Broadcast
#JetpackCompose

Пробуем Jetpack Compose в бою?

Первая dev версия развязала руки разработчикам и как бы Google не стала останавливать людей от интеграции Jetpack Compose в production приложения, найдутся те кто это станет сделать.

В статье описаны впечатления разработчика от интеграции Jetpack Compose для простого "About" экрана в приложении.

Танцев с бубном было много и диагноз следующий "Абсолютно понятно, что Compose не готов к применению даже в маленьких боевых приложениях"
источник
Android Broadcast
#Coroutines #LiveData #Test

Testing two consecutive LiveData emissions in Coroutines

Kotlin Coroutines получают все большую популярность и активнее интегрируются в последние решения от Google, поэтому стоит рассматривать подходы, которые рекомендуется использовать.

В статье рассматривается проблема тестирования эмита 2 последовательных значений LiveData, одно из которых приходит из Coroutine.  

Автор рассказывает о нескольких решениях:
1️⃣ TestCoroutineDispatcher из библиотеки kotlinx.coroutines.test, который позволяет приостанавливать и возобновлять CoroutineDispatcher
2️⃣ Использование LiveData.asFlow(). Пример можно найти в Pull Request

Хорошие практики использования Dispatcher-ов в тестах:
👉 Не используйте стандартный класс Dispatchers, а доставляйте зависимости сами с помощью DI. Это позволит вам подменять их в тестах и иметь больший контроль
👉Используйте TestCoroutineDispatcher вместо Dispatchers.Unconfined для тестов. TestCoroutineDispatcher дает больше гибкости для тестирования, чем Dispatchers.Unconfined, но последний все также может успешно выполнять Coroutine синхронно.
источник
Android Broadcast
#Arhitecture #CleanArhitecture

Why you need Use Cases/Interactors

Разбор роли Use Case/Interactor в Clean Architecture:
👉 Слои Clean Arhitecture
👉 Почему Presenter/ViewModel не должны общаться с источниками данных напрямую
👉 Бесполезный Use Case
👉 Когда использовать Use Case
источник
2019 October 18
Android Broadcast
#Kotlin #Coroutines

How can we use CoroutineScopes in Kotlin?

Structured Concurrency - это хороший подход, который был применён в Coroutine. Также он очень хорошо лег на Android, где есть компоненты с жизненным циклом, например Activity или Fragment.

В статье подробно разбирается CoroutineScope:
👉 Создание CoroutineScope
👉 Принцип работы Coroutine в рамках CoroutineScope
👉 CoroutineScope + Flow
👉 CoroutineScope + Channel
👉 Переключение CoroutineScope
источник