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 синхронно.
Первая dev версия развязала руки разработчикам и как бы Google не стала останавливать людей от интеграции Jetpack Compose в production приложения, найдутся те кто это станет сделать.
В статье описаны впечатления разработчика от интеграции Jetpack Compose для простого "About" экрана в приложении.
Танцев с бубном было много и диагноз следующий "Абсолютно понятно, что Compose не готов к применению даже в маленьких боевых приложениях"
На последнем Google I/O много времени уделялось безопасности во всех продуктах. Очень логичным стала новинка - библиотека androidx.security.
В рамках библиотеки предоставляются удобные средства для шифрования данных на диске. На текущий момент (версия библиотеки 1.0.0-alpha02): 👉EncryptedSharedPreferences - зашифрованные SharedPreference 👉EncryptedFile - шифрование файлов и работа с ними
В статье происходит разбор новой библиотеки и как с ней работать.
Интересно, а что будет с официальной поддержкой шифрования SQLIte? Интегрирует ли что-то официальное в Room?
В последнее время все активнее стало обсуждаться такая тема как интеграция темной темы в приложение. Как это сделать?
Надо изменить свой взгляд на работу с ресурсами. Вам нужно обращаться не к конкретным ресурсам: цветам, стилям, картинкам, а делать это через переменные. Вы знаете их как атрибуты. Больше подробностей в статье.
Спасибо всем вам кто поддержал идею и читает новости. Вас становится все больше и я надеюсь что эта тенденция сохранится.
Хочу сказать отдельное спасибо @Shahini_Mohsen. С его подачи появилась идея сделать этот канала, в начале я и не мог подумать, что соберется так много Android разработчиков из разных стран.
Beagle - это библиотека, которая позволяет вам встраивать панель для просмотра информации о работе приложения или для того чтобы менять его настройки.
Библиотека имеет плагинную архитектуру и из коробки имеет следующие модули: 👉 Логи (не системные, а те которые вы будете логировать с помощью Beagle) 👉 Просмотр информации о приложении 👉 Сделать скриншот 👉 Информация о сетевых операциях 👉 Добавление различных виджетов: кнопок, селекторов и пр.
PyTorch - это Фреймворк для машинного обучения с открытым исходным кодом. не так давно была представлена версия 1.3 в которой появилась мобильная версия - PyTorch Mobile.
Jetpack Compose показал свою первую dev версию в maven.google.com и теперь его можно попробовать без сборки специальной версии Android Studio. В статье рассматривается какие артефакты показали и как завести Jetpack Compose в Android Studio 3.5.
Android 11 еще не успел выйти но уже известно что в нем будет - Scoped Storage. Новая система больше изолирует доступ приложений к данным на внешнем диске и вся коммуникация сводится только к доступу к файлам, которое само же приложение создало, либо использую Media провайдер или Storage Access Framework(SAF). SAF появился в Android 4.4 KitKat (API Level 19).
Функция не попала в релиз Android 10 (отключена по умолчанию для всех приложений) из-за необходимости значительного объема времени для адаптации сторонних приложений (комментарий разработчиков из Google). Может перенос связан с багами в новой системе 😁. Google правду нам не скажет
Компьютерное зрение и машинное обучение. Слышали об этом? Думаю что да. Ребята из Firebase работают чтобы упростить нам задачу по интеграции этих технологий в свои мобильные приложения.
В статье разбирается AutoML Vision Edge - функция Firebase ML Kit, которая позволяет тренировать модели на массиве фотографий: 👉 Как начать работу 👉 Сколько стоит и что можно сделать за бесплатно 👉 Интеграция работы с полученной моделью в Android приложении на основе CameraX
Вышел Ktlint 0.35.0 - утилита для проверки стиля Kotlin кода. В новой версии произошли незначительные изменения, обновление до Kotlin 1.3.50 и правки багов
Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения: 👉Поддержка Java 13 (Android разработчики только этого и ждали 😁) 👉Улучшение отчетов для Kotlin ‼️Изменилась лицензия на Eclipse Public License Version 2.0 👉Исправление багов
🔥Первая порция артефактовJetpack Compose 🔥Jetpack Compose и Android Studio 3.5 работают вместе 👉 Room 2.2.0 👉 AndroidX Concurrent Futures 👉 Множество новых beta и RC версий
Представлены победители премии Material Design Awards - это лучшие приложения, которые воплотили Material в жизнь!
Победители: 🏆Ruff - лучшее приложение в категории Theming 🏆Reflectly - лучшее приложение в категории Innovation 🏆Scripts - лучшее приложение в категории Experience 🏆Trip.com - лучшее приложение в категории Universality
Android Lint - мощный инструмент для проверки качества кода в Android проектах С помощью нее вы можете проверить Java/Kotlin код, Android ресурсы и любые другие файлы в вашем проекте.
В статье рассматривается как создать свое собственное правило на примере предупреждения о том, что не рекомендуется задавать configChanges для Activity в AndroidManifest.xml.