#AndroidLint
Enforcing Best Practices on Android with Lint
Android Lint - мощный инструмент для проверки качества кода в Android проектах С помощью нее вы можете проверить Java/Kotlin код, Android ресурсы и любые другие файлы в вашем проекте.
В статье рассматривается как создать свое собственное правило на примере предупреждения о том, что не рекомендуется задавать
Enforcing Best Practices on Android with Lint
Android Lint - мощный инструмент для проверки качества кода в Android проектах С помощью нее вы можете проверить Java/Kotlin код, Android ресурсы и любые другие файлы в вашем проекте.
В статье рассматривается как создать свое собственное правило на примере предупреждения о том, что не рекомендуется задавать
configChanges
для Activity
в AndroidManifest.xml
.Medium
Enforcing Best Practices on Android with Lint
Driving Developers Towards Better Code with Build-Time Enforcement
#MaterialDesign
2019 Material Design Award Winners
Представлены победители премии Material Design Awards - это лучшие приложения, которые воплотили Material в жизнь!
Победители:
🏆Ruff - лучшее приложение в категории Theming
🏆Reflectly - лучшее приложение в категории Innovation
🏆Scripts - лучшее приложение в категории Experience
🏆Trip.com - лучшее приложение в категории Universality
2019 Material Design Award Winners
Представлены победители премии Material Design Awards - это лучшие приложения, которые воплотили Material в жизнь!
Победители:
🏆Ruff - лучшее приложение в категории Theming
🏆Reflectly - лучшее приложение в категории Innovation
🏆Scripts - лучшее приложение в категории Experience
🏆Trip.com - лучшее приложение в категории Universality
#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 версий
Android Jetpack Weekly #9
🔥Первая порция артефактов Jetpack Compose
🔥Jetpack Compose и Android Studio 3.5 работают вместе
👉 Room 2.2.0
👉 AndroidX Concurrent Futures
👉 Множество новых beta и RC версий
Medium
Android Jetpack Weekly #9
Review of most interesting changes in Android Jetpack releases for the last week
#Coverage #Test #JaCoCo
Вышел JaCoCo 0.8.5
Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения:
👉 Поддержка Java 13 (Android разработчики только этого и ждали 😁)
👉 Улучшение отчетов для Kotlin
‼️ Изменилась лицензия на Eclipse Public License Version 2.0
👉 Исправление багов
Вышел JaCoCo 0.8.5
Вышла новая версия самой популярной библиотеки для Java Code Coverage. Новая версия получила следующие улучшения:
👉 Поддержка Java 13 (Android разработчики только этого и ждали 😁)
👉 Улучшение отчетов для Kotlin
‼️ Изменилась лицензия на Eclipse Public License Version 2.0
👉 Исправление багов
#CodeQuality #Kotlin
Вышел Ktlint 0.35.0 - утилита для проверки стиля Kotlin кода. В новой версии произошли незначительные изменения, обновление до Kotlin 1.3.50 и правки багов
Вышел Ktlint 0.35.0 - утилита для проверки стиля Kotlin кода. В новой версии произошли незначительные изменения, обновление до Kotlin 1.3.50 и правки багов
#RecyclerView #Animation #HowTo
How to Make RecyclerView Items That Expand With Animation
Руководство как сделать RecyclerView с раскрывающимися элементами в списке
How to Make RecyclerView Items That Expand With Animation
Руководство как сделать RecyclerView с раскрывающимися элементами в списке
Medium
How to Make RecyclerView Items That Expand With Animation
Build simple, beautiful transitions to show users more data in your app
#Firebase #MLKit #AutoML #CameraX #MachineLearning
Firebase ML Kit: AutoML Vision Edge
Компьютерное зрение и машинное обучение. Слышали об этом? Думаю что да. Ребята из Firebase работают чтобы упростить нам задачу по интеграции этих технологий в свои мобильные приложения.
В статье разбирается AutoML Vision Edge - функция Firebase ML Kit, которая позволяет тренировать модели на массиве фотографий:
👉 Как начать работу
👉 Сколько стоит и что можно сделать за бесплатно
👉 Интеграция работы с полученной моделью в Android приложении на основе CameraX
Firebase ML Kit: AutoML Vision Edge
Компьютерное зрение и машинное обучение. Слышали об этом? Думаю что да. Ребята из Firebase работают чтобы упростить нам задачу по интеграции этих технологий в свои мобильные приложения.
В статье разбирается AutoML Vision Edge - функция Firebase ML Kit, которая позволяет тренировать модели на массиве фотографий:
👉 Как начать работу
👉 Сколько стоит и что можно сделать за бесплатно
👉 Интеграция работы с полученной моделью в Android приложении на основе CameraX
Medium
Firebase ML Kit: AutoML Vision Edge
With AutoML Vision Edge, you can create custom image classification models for your mobile app by uploading your own training data.
#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
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
Android Developers
Data and file storage overview | Android Developers
#JetpackCompose
Playing with Jetpack Compose dev preview — Part 1: Sample
Jetpack Compose показал свою первую dev версию в maven.google.com и теперь его можно попробовать без сборки специальной версии Android Studio. В статье рассматривается какие артефакты показали и как завести Jetpack Compose в Android Studio 3.5.
Playing with Jetpack Compose dev preview — Part 1: Sample
Jetpack Compose показал свою первую dev версию в maven.google.com и теперь его можно попробовать без сборки специальной версии Android Studio. В статье рассматривается какие артефакты показали и как завести Jetpack Compose в Android Studio 3.5.
Medium
Playing with Jetpack Compose dev preview — Part 1: Sample
No more quest to try it! Only dependencies and Android Studio 3.5
#MachineLearning #Facebook
Facebook представила PyTorch Mobile
PyTorch - это Фреймворк для машинного обучения с открытым исходным кодом. не так давно была представлена версия 1.3 в которой появилась мобильная версия - PyTorch Mobile.
Facebook представила PyTorch Mobile
PyTorch - это Фреймворк для машинного обучения с открытым исходным кодом. не так давно была представлена версия 1.3 в которой появилась мобильная версия - PyTorch Mobile.
pytorch.org
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
#Debug
Beagle — A smart and reliable companion library for debugging your Android apps
Beagle - это библиотека, которая позволяет вам встраивать панель для просмотра информации о работе приложения или для того чтобы менять его настройки.
Библиотека имеет плагинную архитектуру и из коробки имеет следующие модули:
👉 Логи (не системные, а те которые вы будете логировать с помощью Beagle)
👉 Просмотр информации о приложении
👉 Сделать скриншот
👉 Информация о сетевых операциях
👉 Добавление различных виджетов: кнопок, селекторов и пр.
Beagle — A smart and reliable companion library for debugging your Android apps
Beagle - это библиотека, которая позволяет вам встраивать панель для просмотра информации о работе приложения или для того чтобы менять его настройки.
Библиотека имеет плагинную архитектуру и из коробки имеет следующие модули:
👉 Логи (не системные, а те которые вы будете логировать с помощью Beagle)
👉 Просмотр информации о приложении
👉 Сделать скриншот
👉 Информация о сетевых операциях
👉 Добавление различных виджетов: кнопок, селекторов и пр.
This media is not supported in your browser
VIEW IN TELEGRAM
#Новости
Канал собрал свою первую тысячу пользователей 🎉🎉🎉
Спасибо всем вам кто поддержал идею и читает новости. Вас становится все больше и я надеюсь что эта тенденция сохранится.
Хочу сказать отдельное спасибо @Shahini_Mohsen. С его подачи появилась идея сделать этот канала, в начале я и не мог подумать, что соберется так много Android разработчиков из разных стран.
Канал собрал свою первую тысячу пользователей 🎉🎉🎉
Спасибо всем вам кто поддержал идею и читает новости. Вас становится все больше и я надеюсь что эта тенденция сохранится.
Хочу сказать отдельное спасибо @Shahini_Mohsen. С его подачи появилась идея сделать этот канала, в начале я и не мог подумать, что соберется так много Android разработчиков из разных стран.
#Android #Resources #Attributes
Dependency Inversion on Android Theming
В последнее время все активнее стало обсуждаться такая тема как интеграция темной темы в приложение. Как это сделать?
Надо изменить свой взгляд на работу с ресурсами. Вам нужно обращаться не к конкретным ресурсам: цветам, стилям, картинкам, а делать это через переменные. Вы знаете их как атрибуты. Больше подробностей в статье.
Dependency Inversion on Android Theming
В последнее время все активнее стало обсуждаться такая тема как интеграция темной темы в приложение. Как это сделать?
Надо изменить свой взгляд на работу с ресурсами. Вам нужно обращаться не к конкретным ресурсам: цветам, стилям, картинкам, а делать это через переменные. Вы знаете их как атрибуты. Больше подробностей в статье.
#AndroidX #Security
Обзор библиотеки AndroidX Security
На последнем Google I/O много времени уделялось безопасности во всех продуктах. Очень логичным стала новинка - библиотека
В рамках библиотеки предоставляются удобные средства для шифрования данных на диске. На текущий момент (версия библиотеки 1.0.0-alpha02):
👉 EncryptedSharedPreferences - зашифрованные SharedPreference
👉 EncryptedFile - шифрование файлов и работа с ними
В статье происходит разбор новой библиотеки и как с ней работать.
Интересно, а что будет с официальной поддержкой шифрования SQLIte? Интегрирует ли что-то официальное в Room?
Обзор библиотеки AndroidX Security
На последнем Google I/O много времени уделялось безопасности во всех продуктах. Очень логичным стала новинка - библиотека
androidx.security
. В рамках библиотеки предоставляются удобные средства для шифрования данных на диске. На текущий момент (версия библиотеки 1.0.0-alpha02):
👉 EncryptedSharedPreferences - зашифрованные SharedPreference
👉 EncryptedFile - шифрование файлов и работа с ними
В статье происходит разбор новой библиотеки и как с ней работать.
Интересно, а что будет с официальной поддержкой шифрования SQLIte? Интегрирует ли что-то официальное в Room?
#Animation
Вышла Lottie 3.1.0
В новой версии произошли небольшие изменения API, улучшение производительности и багфикс.
Вышла Lottie 3.1.0
В новой версии произошли небольшие изменения API, улучшение производительности и багфикс.
#Immersive
Gesture Navigation: Immersive Modes (IV)
Продолжение серии статей о адаптации приложений под новую систему навигации жестами в Android 10. В новой части речь зайдет о Immersive Mode
Gesture Navigation: Immersive Modes (IV)
Продолжение серии статей о адаптации приложений под новую систему навигации жестами в Android 10. В новой части речь зайдет о Immersive Mode
Medium
Gesture Navigation: Immersive Modes (IV)
In the third post in this blog post series on Gesture Navigation, we covered how to handle any gesture conflicts which can occur with your…
#JetpackCompose
Пробуем Jetpack Compose в бою?
Первая dev версия развязала руки разработчикам и как бы Google не стала останавливать людей от интеграции Jetpack Compose в production приложения, найдутся те кто это станет сделать.
В статье описаны впечатления разработчика от интеграции Jetpack Compose для простого "About" экрана в приложении.
Танцев с бубном было много и диагноз следующий "Абсолютно понятно, что Compose не готов к применению даже в маленьких боевых приложениях"
Пробуем Jetpack Compose в бою?
Первая dev версия развязала руки разработчикам и как бы Google не стала останавливать людей от интеграции Jetpack Compose в production приложения, найдутся те кто это станет сделать.
В статье описаны впечатления разработчика от интеграции Jetpack Compose для простого "About" экрана в приложении.
Танцев с бубном было много и диагноз следующий "Абсолютно понятно, что Compose не готов к применению даже в маленьких боевых приложениях"
Хабр
Пробуем Jetpack Compose в бою?
Наконец, настал момент, когда не нужно собирать самостоятельно Android Studio, чтобы попробовать новый декларативный UI framework для Android. Jetpack Compose ст...
#Coroutines #LiveData #Test
Testing two consecutive LiveData emissions in Coroutines
В статье рассматривается проблема тестирования эмита 2 последовательных значений
Автор рассказывает о нескольких решениях:
1️⃣ TestCoroutineDispatcher из библиотеки
2️⃣ Использование
Хорошие практики использования
👉 Не используйте стандартный класс Dispatchers, а доставляйте зависимости сами с помощью DI. Это позволит вам подменять их в тестах и иметь больший контроль
👉Используйте TestCoroutineDispatcher вместо Dispatchers.Unconfined для тестов.
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 синхронно.Medium
Testing two consecutive LiveData emissions in Coroutines
This article is about how we unit tested two consecutive LiveData emissions by pausing and resuming the CoroutineDispatcher of a Coroutine
#Arhitecture #CleanArhitecture
Why you need Use Cases/Interactors
Разбор роли
👉 Слои Clean Arhitecture
👉 Почему
👉 Бесполезный
👉 Когда использовать
Why you need Use Cases/Interactors
Разбор роли
Use Case
/Interactor
в Clean Architecture:👉 Слои Clean Arhitecture
👉 Почему
Presenter
/ViewModel
не должны общаться с источниками данных напрямую👉 Бесполезный
Use Case
👉 Когда использовать
Use Case
Medium
Why you need use-cases/interactors
Since Clean Architecture became the new hot topic in the Android world there have been loads of code samples and articles that tried to…
👍1
#Kotlin #Coroutines
How can we use CoroutineScopes in Kotlin?
Structured Concurrency - это хороший подход, который был применён в Coroutine. Также он очень хорошо лег на Android, где есть компоненты с жизненным циклом, например
В статье подробно разбирается CoroutineScope:
👉 Создание
👉 Принцип работы Coroutine в рамках
👉
👉
👉 Переключение
How can we use CoroutineScopes in Kotlin?
Structured Concurrency - это хороший подход, который был применён в Coroutine. Также он очень хорошо лег на Android, где есть компоненты с жизненным циклом, например
Activity
или Fragment
.В статье подробно разбирается CoroutineScope:
👉 Создание
CoroutineScope
👉 Принцип работы Coroutine в рамках
CoroutineScope
👉
CoroutineScope
+ Flow
👉
CoroutineScope
+ Channel
👉 Переключение
CoroutineScope
Medium
How can we use CoroutineScopes in Kotlin?
Let’s examine how we can manage the lifecycles of our components with CoroutineScopes and Structured Concurrency in Kotlin.
#NDK
Introducing NDK r21
Вышла новая версия Android NDK - 21. Пока только в Beta, но новая версия привнесла важные новости:
👉 Первая версия с длительной поддержкой (LTS)
👉 LTS релизы будут выходить каждый год
👉 Отказ от поддержки Windows x32
👉 Обновление GNU Make до 4.2
👉 Обновление GDB до 8.3
👉 Обновление LLVM до r365631 (master 10 Июля 2019)
👉 Обновление libc++ до r369764
👉 Fortify включается по умолчанию при использование ndk-build или CMake toolchain
👉 ARM код теперь по умолчанию собирается с Neon по умолчанию. Это позволяют коду работать эффективнее
Хотите узнать что будет дальше, то смотрите Roadmap
Introducing NDK r21
Вышла новая версия Android NDK - 21. Пока только в Beta, но новая версия привнесла важные новости:
👉 Первая версия с длительной поддержкой (LTS)
👉 LTS релизы будут выходить каждый год
👉 Отказ от поддержки Windows x32
👉 Обновление GNU Make до 4.2
👉 Обновление GDB до 8.3
👉 Обновление LLVM до r365631 (master 10 Июля 2019)
👉 Обновление libc++ до r369764
👉 Fortify включается по умолчанию при использование ndk-build или CMake toolchain
👉 ARM код теперь по умолчанию собирается с Neon по умолчанию. Это позволяют коду работать эффективнее
Хотите узнать что будет дальше, то смотрите Roadmap
Android Developers Blog
Introducing NDK r21: our first Long Term Support release
Android NDK r21 is now in beta! It’s been a longer than usual development cycle (three months since NDK r20), so there’s quite a lot to discuss for this release. We have the usual toolchain updates, improved defaults for better security and performance, and…