#Architecture #MVI
Архитектурный шаблон MVI в Kotlin Multiplatform, часть 1
Kotlin Multiplatfrom набирает обороты и Android разработчики уже могут применять библиотеки, адаптированные для этой технологии у себя, чтобы в будущем легко использовать общую кодовую базу с iOS.
Автор библиотеки Reaktive делится виденьем архитектуры MVI, почему она лучше подходит чем MVVM
Архитектурный шаблон MVI в Kotlin Multiplatform, часть 1
Kotlin Multiplatfrom набирает обороты и Android разработчики уже могут применять библиотеки, адаптированные для этой технологии у себя, чтобы в будущем легко использовать общую кодовую базу с iOS.
Автор библиотеки Reaktive делится виденьем архитектуры MVI, почему она лучше подходит чем MVVM
Хабр
Архитектурный шаблон MVI в Kotlin Multiplatform, часть 1
Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при эт...
#RecyclerView
Playing with the new MergeAdapter on Android
В следующей версии RecyclerView (1.2.0) появится новый вид адаптеров - MergeAdapter, цель которого упростить объединение нескольких типов элементов в один адаптер.
В статье рассматривается пример использования, а также то чего не стоит допуска:
👉 Каждый адаптер внутри в MergeAdapter использует собственный пул для ViewHolder
👉 Не используйте notifyDataSetChanged()
👉 Используйте ViewHolder.getBindingAdapterPosition() вместо ViewHolder.getAdapterPosition(), который теперь deprecated
Playing with the new MergeAdapter on Android
В следующей версии RecyclerView (1.2.0) появится новый вид адаптеров - MergeAdapter, цель которого упростить объединение нескольких типов элементов в один адаптер.
В статье рассматривается пример использования, а также то чего не стоит допуска:
👉 Каждый адаптер внутри в MergeAdapter использует собственный пул для ViewHolder
👉 Не используйте notifyDataSetChanged()
👉 Используйте ViewHolder.getBindingAdapterPosition() вместо ViewHolder.getAdapterPosition(), который теперь deprecated
Medium
Playing with the new MergeAdapter on Android
Mobile apps have come a long way in terms of offering a rich user experience and have found new ways of structuring and surfacing…
Вступил в силу новый ГОСТ для цифровых ресурсов: все платформы должны быть доступны для инвалидов
Теперь в РФ есть ГОСТ в который включены требования для мобильных приложений по их доступности для людей из различных групп: людей и ограниченными возможностями, пожилых людей. ГОСТ разработан на основе рекомендаций международной World Wide Web Consortium
Требования изложены в 4 принципах: цифровой контент должен быть воспринимаемым, управляемым, понятным и надежным. Выполнение ГОСТа необязательно и является лишь рекомендуемым для достижения высокого уровня доступности.
Теперь в РФ есть ГОСТ в который включены требования для мобильных приложений по их доступности для людей из различных групп: людей и ограниченными возможностями, пожилых людей. ГОСТ разработан на основе рекомендаций международной World Wide Web Consortium
Требования изложены в 4 принципах: цифровой контент должен быть воспринимаемым, управляемым, понятным и надежным. Выполнение ГОСТа необязательно и является лишь рекомендуемым для достижения высокого уровня доступности.
Хабр
Вступил в силу новый ГОСТ для цифровых ресурсов: все платформы должны быть доступны для инвалидов
С апреля 2020 года в России начал действовать новый государственный стандарт, определяющий требования доступности для Интернет-ресурсов, мобильных приложений,...
Заботитесь ли вы у себя в выполнении принципов доступности приложения для различных групп людей?
Anonymous Poll
15%
Да, все должны иметь полноценный доступ
59%
Нет, нет времени на заботы обо всём и всех
26%
Не участвую в опросе
#Networking #OkHttp
Вышел OkHttp 4.7.0
👉 Более простой способ отключить проверку безопасности во время разработки с помощью
👉 Добавлены события
👉 Добавлена константа с версией текущего используемого OkHttp клиента
👉 Исправлены баги с Android Studio 4.1 и другие
Вышел OkHttp 4.7.0
👉 Более простой способ отключить проверку безопасности во время разработки с помощью
HandshakeCertificates.Builder.addInsecureHost()
👉 Добавлены события
cacheHit
, cacheMiss
и cacheConditionalHit()
в EventListener
👉 Добавлена константа с версией текущего используемого OkHttp клиента
👉 Исправлены баги с Android Studio 4.1 и другие
GitHub
okhttp/CHANGELOG.md at master · square/okhttp
Square’s meticulous HTTP client for the JVM, Android, and GraalVM. - square/okhttp
#Android11 #Online
Анонс Android 11 Beta - Смотрим вместе
Когда: 3 июня, 17.40 GMT+3
Где: YouTube канал Android Broadcast
3 июня пройдет важное событие - запуск первой Beta Android 11. Для Android разработчиков это событие фактически Android Keynote с Google I/O, которого в этом году не состоялось.
Android Broadcast совместно с Android Dev Podcast объединились для организации стрима с комментариями от опытных разработчиков.
На трансляции будут опытнейшие Android разработчики, суммарный опыт которых порядка 50 лет: Кирилл Розов, Александр Блинов, Михаил Емельянов, Сергей Боиштян, Вадим Котов, Антон Дудаков
Анонс Android 11 Beta - Смотрим вместе
Когда: 3 июня, 17.40 GMT+3
Где: YouTube канал Android Broadcast
3 июня пройдет важное событие - запуск первой Beta Android 11. Для Android разработчиков это событие фактически Android Keynote с Google I/O, которого в этом году не состоялось.
Android Broadcast совместно с Android Dev Podcast объединились для организации стрима с комментариями от опытных разработчиков.
На трансляции будут опытнейшие Android разработчики, суммарный опыт которых порядка 50 лет: Кирилл Розов, Александр Блинов, Михаил Емельянов, Сергей Боиштян, Вадим Котов, Антон Дудаков
#UI #Testing
Snapshot tests or how to stop layouts from breaking (again)
Подход к тестированию UI не с помощью скриншотов (что требует запуска таких тестов на Android устройстве), а с помощью запуска тестов на основе Robolectric.
Библиотека Layout Verifier снимает дампы значений аттрибутов и сохраняет их файлы, последующие тесты проверяют их совпадение.
Snapshot tests or how to stop layouts from breaking (again)
Подход к тестированию UI не с помощью скриншотов (что требует запуска таких тестов на Android устройстве), а с помощью запуска тестов на основе Robolectric.
Библиотека Layout Verifier снимает дампы значений аттрибутов и сохраняет их файлы, последующие тесты проверяют их совпадение.
Medium
Snapshot tests or how to stop layouts from breaking (again)
Scenario: a designer asks you to update padding on one of the screens (let’s call it Screen A). Simple enough task (maybe even too simple)…
#Testing
Accelerate your Android Espresso testing by grouping relevant tests
Статья о различных видах группировки тестов для их точечного запуска. Все это реализовано с помощью аннотаций в JUnit4. Какие варианты групп есть:
👉 По размеру тестов
👉 Группировка нескольких тестов в Suite
👉 Произвольная группировка
Accelerate your Android Espresso testing by grouping relevant tests
Статья о различных видах группировки тестов для их точечного запуска. Все это реализовано с помощью аннотаций в JUnit4. Какие варианты групп есть:
👉 По размеру тестов
👉 Группировка нескольких тестов в Suite
👉 Произвольная группировка
Medium
Accelerate your Android Espresso testing by grouping relevant tests
Running your entire set of tests is slowing down your development. Speed it up by grouping tests,then executing only the ones that matter.
#Coroutines #RxJava
The Real Kotlin Flow benefits over RxJava
«Я использую RxJava. Зачем мне Coroutines Flow?» - такой вопрос я зачастую слышал, когда делал доклады по Flow или топил за этот подход в офисе на кухне.
В статье автор сравнивает эти 2 подхода и показывает, как Flow хорошо себя зарекомендовали и позволяют делать, а где пока есть проблемы
The Real Kotlin Flow benefits over RxJava
«Я использую RxJava. Зачем мне Coroutines Flow?» - такой вопрос я зачастую слышал, когда делал доклады по Flow или топил за этот подход в офисе на кухне.
В статье автор сравнивает эти 2 подхода и показывает, как Flow хорошо себя зарекомендовали и позволяют делать, а где пока есть проблемы
Medium
The Real Kotlin Flow benefits over RxJava
Attempt to analyze the benefits of Kotlin Flow over RxJava.
#Tooling #Library
Android Ecosystem Cheat Sheet 2020
Визуализация наиболее популярных частей Android экосистемы в виде схемы. С какими-то вы знакомы и регулярно пользуетесь, какие-то будут в новинку
Android Ecosystem Cheat Sheet 2020
Визуализация наиболее популярных частей Android экосистемы в виде схемы. С какими-то вы знакомы и регулярно пользуетесь, какие-то будут в новинку
GitHub
GitHub - igorwojda/android-ecosystem-cheat-sheet: 🤖Android Ecosystem Cheatsheet 2020
🤖Android Ecosystem Cheatsheet 2020. Contribute to igorwojda/android-ecosystem-cheat-sheet development by creating an account on GitHub.
#Kotlin #Coroutines
Вышла kotlinx.coroutines 1.3.7
В новой версии библиотеке нас ждёт:
👉 Новый оператор
👉 При эмите из
👉 Возможность получения текущего
👉 Поддержка Kotlin Contract
👉 Проблемы в работе Android Lint (#2004)
👉 Улучшение документации
Вышла kotlinx.coroutines 1.3.7
В новой версии библиотеке нас ждёт:
👉 Новый оператор
Flow.cancellable()
(#2026)👉 При эмите из
flow
теперь проверяет статус cancellation и подлежит отмене (#2026)👉 Возможность получения текущего
CoroutineContext
с помощью функции currentCoroutineContext
(#2026)👉 Поддержка Kotlin Contract
EXACTLY_ONCE
в coroutine builder-ах👉 Проблемы в работе Android Lint (#2004)
👉 Улучшение документации
GitHub
kotlinx.coroutines/CHANGES.md at master · Kotlin/kotlinx.coroutines
Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub.
#Service
Android Foreground Service Restrictions
Разбор особенностей работы Foreground Service (которые с Android 8 являются единственным способом работы приложения в фоне). Вендоры нас все также "радуют" и блокируют service, даже если он foreground.
В статье рассказывает про проблемы и как ее решали (нужно запрашивать добавлять приложение в исключение для работы в фоне)
Android Foreground Service Restrictions
Разбор особенностей работы Foreground Service (которые с Android 8 являются единственным способом работы приложения в фоне). Вендоры нас все также "радуют" и блокируют service, даже если он foreground.
В статье рассказывает про проблемы и как ее решали (нужно запрашивать добавлять приложение в исключение для работы в фоне)
Medium
Android Foreground Service Restrictions
It would seem that everything should work, but there are also limitations in foreground services
#Coroutines
Understanding Kotlin Coroutines with this mental model
Самое сложное, чтобы было для меня при погружении в Kotlin Coroutine - это отвыкнуть от подходов Java Multithreading и начать мыслить в стиле Coroutine и использовать их подходы для решения операций.
В статье автор раскрывает разницу и в чем отличие Coroutine от Java Multithreading
Understanding Kotlin Coroutines with this mental model
Самое сложное, чтобы было для меня при погружении в Kotlin Coroutine - это отвыкнуть от подходов Java Multithreading и начать мыслить в стиле Coroutine и использовать их подходы для решения операций.
В статье автор раскрывает разницу и в чем отличие Coroutine от Java Multithreading
Lukas Lechner | ✏️ Blogger | 🎓 Course Creator | 📢 Speaker | 👨💻 Freelance Android Developer
Understanding Kotlin Coroutines with this mental model | Lukas Lechner
This blog post will help you to form a solid mental model about this new emerging concept for modern software development.
#Network #REST #Retrofit #RxJava
Вышел Retrofit 2.9.0
Новая версии популярной библиотеки сможет порадовать поклонников RxJava - добавлена поддержка RxJava3. Подключайте
Вышел Retrofit 2.9.0
Новая версии популярной библиотеки сможет порадовать поклонников RxJava - добавлена поддержка RxJava3. Подключайте
com.squareup.retrofit2:rxjava3-adapter
GitHub
retrofit/CHANGELOG.md at trunk · square/retrofit
A type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.
#Jetpack
Обновление Android Jetpack 20.05.2020
👉 Приведения в порядок Acitivty Result API
👉 Получение ViewModel для View
👉 Новая версия WorkManager
👉 Новая версия Navigation
Обновление Android Jetpack 20.05.2020
👉 Приведения в порядок Acitivty Result API
👉 Получение ViewModel для View
👉 Новая версия WorkManager
👉 Новая версия Navigation
Telegraph
Обновление Android Jetpack от 20 мая 2020
Полный список изменений здесь WorkManager 2.4.0-beta01
#ArchitectureComponents #ViewModel
Should I use Jetpack ViewModel?
Архитектура MVVM на основе Jetpack на сегодня довольно популярна в Android разработке. Вы задумывались так ли много проблем решает ViewModel из Jetpack?
Автор в своей статье приводит доводы, которые заставят вас задуматься так ли все просто и помогут найти проблемы
Should I use Jetpack ViewModel?
Архитектура MVVM на основе Jetpack на сегодня довольно популярна в Android разработке. Вы задумывались так ли много проблем решает ViewModel из Jetpack?
Автор в своей статье приводит доводы, которые заставят вас задуматься так ли все просто и помогут найти проблемы
Glureau
Should I use Jetpack ViewModel? - Grégory Lureau
Adding a new library to a production project should always be done with extra care.
#Codelab #Camera #CameraX
Getting Started with CameraX
Продолжительность - 17 минут
Интро в новую библиотеку из Jetpack - CameraX, которая решим проблему с работой с камерой на разных устройствах и упростит наиболее популярные операции, выполняемые в приложениях.
Getting Started with CameraX
Продолжительность - 17 минут
Интро в новую библиотеку из Jetpack - CameraX, которая решим проблему с работой с камерой на разных устройствах и упростит наиболее популярные операции, выполняемые в приложениях.
#Codelab #Android10 #GestureNavigation
Gesture Navigation and the edge-to-edge experience
Продолжительность - 18 минут
В Android 10 была представлена навигация жестами и началась пропаганда концепции «Edge-to-Edge» для дизайна приложений, тем самым используя все возможности современных безрамочных устройств.
Чему вы научитесь из codelab:
👉 Работа с Windows Insets
👉 Разрешение конфликтов между системными жестами и жестами в вашем приложении
👉 Immersive mode и навигация жестами
Gesture Navigation and the edge-to-edge experience
Продолжительность - 18 минут
В Android 10 была представлена навигация жестами и началась пропаганда концепции «Edge-to-Edge» для дизайна приложений, тем самым используя все возможности современных безрамочных устройств.
Чему вы научитесь из codelab:
👉 Работа с Windows Insets
👉 Разрешение конфликтов между системными жестами и жестами в вашем приложении
👉 Immersive mode и навигация жестами
Google Codelabs
Gesture Navigation and the edge-to-edge experience | Google Codelabs
In this codelab, you’ll work on an existing app to make its app controls work with Gesture Navigation. You’ll also offer a full edge-to-edge screen experience.
#Architecture
The S.O.L.I.D Principles in Pictures
Рассказ о принципах S.O.L.I.D. не только словами, но и визуализацией, которая позволит понять правила, скрывающиеся за аббревиатурой
The S.O.L.I.D Principles in Pictures
Рассказ о принципах S.O.L.I.D. не только словами, но и визуализацией, которая позволит понять правила, скрывающиеся за аббревиатурой
Medium
The S.O.L.I.D Principles in Pictures
If you are familiar with Object-Oriented Programming, then you’ve probably heard about the SOLID principles.
#Firebase
Say hello to the helpful Firebase Emulator - a local first UI to boost your productivity
Разработка с Firebase в качестве бэкенда без реального проекта не так просто. Еще вчера управлять локальной сервером было непросто, а вот уже сегодня можно использовать Firebase Emulator UI - локальное web приложение, которое позволяет управлять Firebase Local Emulator Suite.
Say hello to the helpful Firebase Emulator - a local first UI to boost your productivity
Разработка с Firebase в качестве бэкенда без реального проекта не так просто. Еще вчера управлять локальной сервером было непросто, а вот уже сегодня можно использовать Firebase Emulator UI - локальное web приложение, которое позволяет управлять Firebase Local Emulator Suite.
The Firebase Blog
Say hello to the helpful Firebase Emulator - a local first UI to boost your productivity
Today we are extremely excited to introduce the Emulator UI to the Firebase community. The Emulator UI is a local web app that allows you to manage local emulators that make up the Firebase Local Emulator Suite.