#Coroutines #Flow #LiveData
Refactoring from LiveData to Coroutines & Flow
Помните руководство где Google рекомендовала на всех слоях использовать LiveData для коммуникации между слоями? Так вот - это заблуждение. LiveData нужна только на UI слое, а на других - Coroutines, Reactive подход или что-то еще асинхронное
В статье разбирается как мигрировать с LiveData на Coroutines и Flow
Refactoring from LiveData to Coroutines & Flow
Помните руководство где Google рекомендовала на всех слоях использовать LiveData для коммуникации между слоями? Так вот - это заблуждение. LiveData нужна только на UI слое, а на других - Coroutines, Reactive подход или что-то еще асинхронное
В статье разбирается как мигрировать с LiveData на Coroutines и Flow
Medium
Refactoring from LiveData to Coroutines & Flow
How we refactored lots of LiveData and blocked threads to Coroutines and Flow.
#JetpackCompose
Showkase поможет вам организовать, изучить, найти и визуализировать компоненты Jetpack Compose UI. Фактически это букварь для изучения нового подхода для работы с UI в Android.
Библиотека конфигурирует UI браузер для просмотра все элементов и рендерит их в основных различных режимах.
Showkase поможет вам организовать, изучить, найти и визуализировать компоненты Jetpack Compose UI. Фактически это букварь для изучения нового подхода для работы с UI в Android.
Библиотека конфигурирует UI браузер для просмотра все элементов и рендерит их в основных различных режимах.
#Android11 #ART #AndroidStudio
Structural Class Redefinition
Android Runtime (ART) - виртуальная машина, которая исполняет код Android приложений, обновляется регулярно. Проблема в том, что очень мало информации о том что происходит в ней от релиза к релизу. Поэтому рекомендую остановить внимание на посте.
Structural Class Redefinition - это расширение для JVMTI API, которое позволяет улучшить функцию "Apply Changes" в Android Studio. В первой части описывается работа этого функционала на уровне виртуальной машины.
Structural Class Redefinition
Android Runtime (ART) - виртуальная машина, которая исполняет код Android приложений, обновляется регулярно. Проблема в том, что очень мало информации о том что происходит в ней от релиза к релизу. Поэтому рекомендую остановить внимание на посте.
Structural Class Redefinition - это расширение для JVMTI API, которое позволяет улучшить функцию "Apply Changes" в Android Studio. В первой части описывается работа этого функционала на уровне виртуальной машины.
Medium
Structural Class Redefinition
Allowing tools, such as Apply Changes, to modify the class structure itself, adding new fields to existing classes.
#Android11 #ART #AndroidStudio
Structural Class Redefinition and Apply Changes
Реализация Structural Class Redefinition в Android Studio, которая уже работает в Android Studio 4.1 (вчера вышел RC2). К сожалению, не все заработает полноценно в AS 4.1, часть функционала доступна только в 4.2.
Structural Class Redefinition and Apply Changes
Реализация Structural Class Redefinition в Android Studio, которая уже работает в Android Studio 4.1 (вчера вышел RC2). К сожалению, не все заработает полноценно в AS 4.1, часть функционала доступна только в 4.2.
Medium
Structural Class Redefinition and Apply Changes
Apply Changes is a feature in Android Studio that we introduced in Android Studio 3.5…
#ADB
Supercharge Android dev with Scrcpy and ADB WIFI
Удаленное управление вашим устройство без провода с компьютера вашего устройства с помощью scrcpy
Supercharge Android dev with Scrcpy and ADB WIFI
Удаленное управление вашим устройство без провода с компьютера вашего устройства с помощью scrcpy
Medium
Supercharge Android dev with Scrcpy and ADB WIFI
There are two types of android developers, the ones who are okay developing and testing on an emulator, and the ones who cannot do without…
#Jetpack
Обновление Jetpack 2 сентября 2020
Новое обновление Jetpack. Основная часть обновления - новые альфа библиотек Compose и переход множества других библиотек на новую стадию alpha, beta, rc.
Однако не обошлось без интересного анонса - библиотека DataStore для сохранения данных, разработанная на Kotlin и под капотом построенная на
Обновление Jetpack 2 сентября 2020
Новое обновление Jetpack. Основная часть обновления - новые альфа библиотек Compose и переход множества других библиотек на новую стадию alpha, beta, rc.
Однако не обошлось без интересного анонса - библиотека DataStore для сохранения данных, разработанная на Kotlin и под капотом построенная на
Coroutines
и Flow
. Библиотека приходит на замену SharedPreferences
.Android Developers
Recent Release Notes | Android Developers
#Jetpack #DataStore #SharedPreferences
Prefer Storing Data with Jetpack DataStore
Всему суждено пасть.
Новая библиотека решена всех проблем
👉 Полностью асинхронное
👉 Уведомление об ошибках
👉 Транзакционное выполнение
👉 Поддержка миграции с
👉 Возможность работы как "Key-Value" так и хранилище объектов на основе Protobuf
В статье найдете примеры использования
Важно: DataStore не является заменой Room
Prefer Storing Data with Jetpack DataStore
Всему суждено пасть.
AsyncTask
уже стали deprecated, UI на основе View будет заменен Compose. Вот и SharedPreferences
будет замене новой библиотекой DataStore
, разработанной на Kotlin и работающей на основе Coroutines
.Новая библиотека решена всех проблем
SharedPreferences
:👉 Полностью асинхронное
👉 Уведомление об ошибках
👉 Транзакционное выполнение
👉 Поддержка миграции с
SharedPreferences
в DataStore
👉 Возможность работы как "Key-Value" так и хранилище объектов на основе Protobuf
В статье найдете примеры использования
DataStore
и миграции с SharedPreferences
Важно: DataStore не является заменой Room
Android Developers Blog
Prefer Storing Data with Jetpack DataStore
Posted by Florina Muntenescu , Android Developer Advocate, Rohit Sathyanarayana, Software Engineer Welcome Jetpack DataStore, now in ...
#CI #CD
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Avito делится тем как они заводят процесс релиза мобильного приложения на основе TeamCity и Nupokati.
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Avito делится тем как они заводят процесс релиза мобильного приложения на основе TeamCity и Nupokati.
Хабр
«Ну, покати!» или CI/CD мобильных приложений на основе контракта
Всем привет! Меня зовут Дмитрий, я релиз-инженер в команде CI/CD Speed Авито. Вот уже несколько лет мы с коллегами отвечаем за всё, что связано с релизами наших...
#Tooling #JakeWharton
Dependency Tree Diff
Утилита для вычисления разницы между выводом Gradle таска `dependencies`. Будет полезно, чтобы делать анализ и визуализировать что менялось между коммитами. Также упростит отслеживание транзитивных зависимостей.
Dependency Tree Diff
Утилита для вычисления разницы между выводом Gradle таска `dependencies`. Будет полезно, чтобы делать анализ и визуализировать что менялось между коммитами. Также упростит отслеживание транзитивных зависимостей.
#Tooling #JakeWharton
Diffuse - утилита для определения изменения размера APK, AAB, AAR и JAR файлов, которая по категориям файлов в архивах показывает детали.
Diffuse - утилита для определения изменения размера APK, AAB, AAR и JAR файлов, которая по категориям файлов в архивах показывает детали.
Смотрите ли доклады, связанные с работой, на английском?
Anonymous Poll
53%
Да, главное чтобы интересно
23%
Предпочитаю контент на русском, но могу и на английском
11%
Английский с субтитрами
7%
Только на русском языке
1%
Другой вариант
4%
Не участвую в опросе
#MLKit #MachineLearning
ML Kit Pose Detection Makes Staying Active at Home Easier
Одной из возможностей, которые предоставляются ML Kit SDK, является Pose Detection.
Pose Detection API обеспечивает отслеживание положения всего тела по 33 точкам, включая лицевые ориентиры (уши, глаза, рот и нос), отслеживание рук и ног, а также отслеживание множества сложных спортивных поз, таких как позы йоги.
Особенности решения:
👉 решение кроссплатформенное (Android и iOS)
👉 работает как с изображениями так и с видео
👉 позволяет использовать "Быстрый" и "Точный" режимы
В посте рассматриваются примеры применения для физической активности и обучения танцам.
ML Kit Pose Detection Makes Staying Active at Home Easier
Одной из возможностей, которые предоставляются ML Kit SDK, является Pose Detection.
Pose Detection API обеспечивает отслеживание положения всего тела по 33 точкам, включая лицевые ориентиры (уши, глаза, рот и нос), отслеживание рук и ног, а также отслеживание множества сложных спортивных поз, таких как позы йоги.
Особенности решения:
👉 решение кроссплатформенное (Android и iOS)
👉 работает как с изображениями так и с видео
👉 позволяет использовать "Быстрый" и "Точный" режимы
В посте рассматриваются примеры применения для физической активности и обучения танцам.
Googleblog
ML Kit Pose Detection Makes Staying Active at Home Easier
News and insights on Google platforms, tools, and events.
#Conference #Online
Mobile Z-Days: iOS, Android и Flutter
8-10 сентября вы сможете узнать больше о мобильной разработке от экспертов мира мобильной разработки. Один вечер – одно направление: iOS, Android и Flutter.
Android-темы (9 сентября):
● Protocol Oriented Programming in Kotlin?
● Android apps security – lessons learned
● Fantastic API and where to find them
Также в рамках события пройдёт запись подкаста Mobile People Talks и выступит много моих друзей.
Mobile Z-Days: iOS, Android и Flutter
8-10 сентября вы сможете узнать больше о мобильной разработке от экспертов мира мобильной разработки. Один вечер – одно направление: iOS, Android и Flutter.
Android-темы (9 сентября):
● Protocol Oriented Programming in Kotlin?
● Android apps security – lessons learned
● Fantastic API and where to find them
Также в рамках события пройдёт запись подкаста Mobile People Talks и выступит много моих друзей.
#ViewBinding #Kotlin
📺ViewBinding vs Kotlin Synthetics (16 минут)
Небольшой обзор от Redmadrobot того, почему происходит переход с Kotlin Synthetics на View Binding:
- С чего все начиналось 🦖
- Что не так с synthetics?
- На сайте Kotlin уже нет страницы про синтетики 😎
- Все ли хорошо с View Binding? 🙄 Личный опыт
Хотите упростить работу с View Binding - посмотрите на мою библиотеку ViewBindingPropertyDelegate
📺ViewBinding vs Kotlin Synthetics (16 минут)
Небольшой обзор от Redmadrobot того, почему происходит переход с Kotlin Synthetics на View Binding:
- С чего все начиналось 🦖
- Что не так с synthetics?
- На сайте Kotlin уже нет страницы про синтетики 😎
- Все ли хорошо с View Binding? 🙄 Личный опыт
Хотите упростить работу с View Binding - посмотрите на мою библиотеку ViewBindingPropertyDelegate
YouTube
ViewBinding vs Kotlin Synthetics
Небольшой обзор того, почему происходит переход с Kotlin Synthetics на View Binding:
- С чего все начиналось 🦖
- Что не так с synthetics?
- На сайте Kotlin уже нет страницы про синтетики 😎
- А все ли хорошо с View Binding? 🙄 Личный опыт
PS. В видео случайно…
- С чего все начиналось 🦖
- Что не так с synthetics?
- На сайте Kotlin уже нет страницы про синтетики 😎
- А все ли хорошо с View Binding? 🙄 Личный опыт
PS. В видео случайно…
Что выбираете вы?
Final Results
43%
Kotlin Synthetic
39%
View Binding/Data Binding
7%
Другое
11%
Не участвую в опросе
#Testing
На чем писать Android UI-тесты
Сравнение различных инструментов для тестирования приложения: UiAutomator, Espresso, Robolectric. Также рассматриваются обертки над ними Appium, Kakao, Barista и Kaspresso.
На чем писать Android UI-тесты
Сравнение различных инструментов для тестирования приложения: UiAutomator, Espresso, Robolectric. Также рассматриваются обертки над ними Appium, Kakao, Barista и Kaspresso.
Хабр
На чем писать Android UI-тесты
Всем привет. Мы в Avokado Project продолжаем рассказывать про автотестирование в Android. Эта статья — обзор и сравнение существующих инструментов для написания...
#JetpackCompos
Decompose
Для всех кто использует Jetpack Compose и любит
Каждый Component:
👉 может иметь сколько угодно Router-ов;
👉 является LifecycleOwner, т.е. имеет жизненный цикл;
👉 может сохранять/восстанавливать состояние;
👉 является ViewModelStoreOwner - можно использовать ViewModel для продолжения работы при смене конфигурации;
👉 является
В настоящий момент проект активно развивается, но попробовать его можно уже сейчас.
Decompose
Для всех кто использует Jetpack Compose и любит
Fragment
, пригодится Decompose. Библиотека предоставляет две базовые сущности: Component
и Router
. Router - даёт возможность навигации.Каждый Component:
👉 может иметь сколько угодно Router-ов;
👉 является LifecycleOwner, т.е. имеет жизненный цикл;
👉 может сохранять/восстанавливать состояние;
👉 является ViewModelStoreOwner - можно использовать ViewModel для продолжения работы при смене конфигурации;
👉 является
OnBackPressedDispatcherOwner
, что даёт возможность обрабатывать нажатия кнопки "Назад".В настоящий момент проект активно развивается, но попробовать его можно уже сейчас.
GitHub
GitHub - arkivanov/Decompose: Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing (navigation)…
Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing (navigation) and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.) - GitHub - arkivanov/Decompose: Kotl...
#AndroidBroadcast #Kotlin #Compiler
Новый компилятор Kotlin в 1.4
Когда: Вторник, 8 сентября, 20:00 GMT+3
Команда Kotlin активно занимается переписыванием компилятора языка, чтобы ускорить его; объединить кодовую базу между JVM, Native и JS backend; открыть API плагинов компилятора и др. улучшения. В выпуске копаемся в изменениях под капотом компилятора и будущем.
Гость - Семён Огородник, Kotlin Compiler Frontend-IR (FIR) Tech Lead в JetBrains, Работает в Kotlin уже 4 года. До FIR работал в Kotlin IDE team, там успел позаниматься J2K, Completion и производительностью. Некоторое время поддерживал Dokka
Всем кому интересна тема рекомендую посмотреть выпуск "Kotlin 1.4: быстрее и лучше"
Новый компилятор Kotlin в 1.4
Когда: Вторник, 8 сентября, 20:00 GMT+3
Команда Kotlin активно занимается переписыванием компилятора языка, чтобы ускорить его; объединить кодовую базу между JVM, Native и JS backend; открыть API плагинов компилятора и др. улучшения. В выпуске копаемся в изменениях под капотом компилятора и будущем.
Гость - Семён Огородник, Kotlin Compiler Frontend-IR (FIR) Tech Lead в JetBrains, Работает в Kotlin уже 4 года. До FIR работал в Kotlin IDE team, там успел позаниматься J2K, Completion и производительностью. Некоторое время поддерживал Dokka
Всем кому интересна тема рекомендую посмотреть выпуск "Kotlin 1.4: быстрее и лучше"
#Fragment #DependecyInjection
The defective AndroidX FragmentFactory
Появление FragmentFactory позволяет отказаться от выполнения inject-а зависимостей в поля класса, а в Kotlin еще и отказаться от
По моему опыту граф прекрасно строился с помощью этого API и не было ситуации, чтобы я уперся в ограничения, о которых рассказывает автор. Возможно, мы строим разные графы зависимостей
The defective AndroidX FragmentFactory
Появление FragmentFactory позволяет отказаться от выполнения inject-а зависимостей в поля класса, а в Kotlin еще и отказаться от
lateinit
. Но это работает не для всех случаев, о которых автор статьи рассказывает.По моему опыту граф прекрасно строился с помощью этого API и не было ситуации, чтобы я уперся в ограничения, о которых рассказывает автор. Возможно, мы строим разные графы зависимостей
Medium
The defective AndroidX FragmentFactory
In this blog post I would like to express my disappointment in the AndroidX FragmentFactory. I will briefly describe what the…