#Coroutines #RxJava
Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow
Сравнение подходов RxJava и Flow для обработки реактивных стримов и как происходит миграция
Как безболезненно мигрировать с RxJava на Kotlin Coroutines+Flow
Сравнение подходов RxJava и Flow для обработки реактивных стримов и как происходит миграция
#LiveData #Kotlin
Avoid backing properties for LiveData and StateFlow
Использование
Я жду в языке фичи о которой рассказал Роман Елизаров, решающую проблему (подробнее здесь).
Avoid backing properties for LiveData and StateFlow
Использование
LiveData
, StateFlow
и SharedFlow
в ViewModel
имеет свою неприятную особенность - создание приватного модифицируемого property и публичного только для чтения. Автор предлагает решение в лоб - абстракция в виде интерфейса или абстрактного класса и разведёт модифицируемый и немодифицируемые поля. Встают вопросы интеграции этого с ViewModelFactory, DI и др.Я жду в языке фичи о которой рассказал Роман Елизаров, решающую проблему (подробнее здесь).
#AndroidStudio
When your Android Studio breakpoint doesn’t stop
Пункты, которые стоит проверить когда дебаггер не останавливается на break point. Часть из них совсем банальная, но есть и интересные, например особенности приложения со множеством процессов или запуск deep link.
When your Android Studio breakpoint doesn’t stop
Пункты, которые стоит проверить когда дебаггер не останавливается на break point. Часть из них совсем банальная, но есть и интересные, например особенности приложения со множеством процессов или запуск deep link.
Помимо канала Android Broadcast множество всего интересного можно найти в группе @android_broadcast_talks
👉 Задать вопрос сообществу Android разработчиков
👉 Помочь найти аргументы и практики, чтобы разрешить холивар
👉 Получить помощь в выборе ноутбука для разработки под Android
Кучу всего мы обсуждаем там ежедневно. Присоединяйся и ты @android_broadcast_talks
👉 Задать вопрос сообществу Android разработчиков
👉 Помочь найти аргументы и практики, чтобы разрешить холивар
👉 Получить помощь в выборе ноутбука для разработки под Android
Кучу всего мы обсуждаем там ежедневно. Присоединяйся и ты @android_broadcast_talks
#AndroidBroadcast #Kotlin #ViewBinding
Android ViewBinding KTX (20 мин)
Новое видео на канале Android Broadcast в котором рассказываю о:
👉 История ViewBinding
👉 ViewBinding под капотом
👉 Как упростить работу с помощью ViewBindingPropertyDelegate
Жду ваши лайки и подписки на канал. В следующем видео буду рассказывать о миграции с LiveData на Flow
Android ViewBinding KTX (20 мин)
Новое видео на канале Android Broadcast в котором рассказываю о:
👉 История ViewBinding
👉 ViewBinding под капотом
👉 Как упростить работу с помощью ViewBindingPropertyDelegate
Жду ваши лайки и подписки на канал. В следующем видео буду рассказывать о миграции с LiveData на Flow
#Dagger #DependencyInjection
Вышел Dagger 2.31
Новая версия Dagger радует новыми фичами:
🔥 Поддержка Assisted Injection - возможность передать параметры во время создания объекта, а не из DI графа. Подробности здесь
Hilt:
👉
👉
👉 Удалили
👉 Небольшие улучшения в настройке Gradle плагина и поддержке многомодульных проектов
Вышел Dagger 2.31
Новая версия Dagger радует новыми фичами:
🔥 Поддержка Assisted Injection - возможность передать параметры во время создания объекта, а не из DI графа. Подробности здесь
Hilt:
👉
@TestInstallIn
- позволяет описывать глобально подмену тестовых модулей вместо @UninstallModules
на отдельных тестах👉
@HiltViewModel
- замена @ViewModelInject
. Отличается тем что делает inject из ViewModelComponent с @ViewModelScope
. Подробнее здесь 👉 Удалили
ApplicationComponent
. Мигрируемся на SingletonComponent
👉 Небольшие улучшения в настройке Gradle плагина и поддержке многомодульных проектов
#Coroutines #Lifecycle
Deep Dive Into Android Lifecycle Coroutines
Разбор как работают CoroutineScope, которые являются частью библиотеки lifecycle-ktx, и какие особенности есть в их поведении.
Deep Dive Into Android Lifecycle Coroutines
Разбор как работают CoroutineScope, которые являются частью библиотеки lifecycle-ktx, и какие особенности есть в их поведении.
#Jetpack
Обновление библиотек Jetpack 13.01.2021
Annotation 1.2.0-beta01
👉 Аннотация
AppCompat 1.3.0-beta01
👉 Часть стандартных иконок была замена на векторные
👉 Изменения в API
Core 1.5.0-beta01
👉 Добавлено Insets Animation API
👉 Улучшения API OnReceiveContentListener
👉 Уведомления могут быть помечены как пропущенный звонок
👉 Впервые увидел раздел "External Contribution"
Кажется, после 1.3.X будет сразу релиз 1.5.0
DataStore 1.0.0-alpha06
👉 Поддержка RxJava 2/3
👉 Изменения в API
Также вышли
👉 Work 2.5.0-rc01
👉 Slice 1.1.0-alpha02 (кто их использует просьба написать @krlrozov)
👉 ShareTarget 1.1.0
👉 Enterprise 1.1.0
👉 MediaRouter 1.2.1
Обновление библиотек Jetpack 13.01.2021
Annotation 1.2.0-beta01
👉 Аннотация
@DoNotInline
чтобы отключить inline метода в R8AppCompat 1.3.0-beta01
👉 Часть стандартных иконок была замена на векторные
👉 Изменения в API
Core 1.5.0-beta01
👉 Добавлено Insets Animation API
👉 Улучшения API OnReceiveContentListener
👉 Уведомления могут быть помечены как пропущенный звонок
👉 Впервые увидел раздел "External Contribution"
Кажется, после 1.3.X будет сразу релиз 1.5.0
DataStore 1.0.0-alpha06
👉 Поддержка RxJava 2/3
👉 Изменения в API
Также вышли
👉 Work 2.5.0-rc01
👉 Slice 1.1.0-alpha02 (кто их использует просьба написать @krlrozov)
👉 ShareTarget 1.1.0
👉 Enterprise 1.1.0
👉 MediaRouter 1.2.1
#MADSkills #Jetpack #Kotlin
MAD Skills Kotlin and Jetpack: wrap-up
Подведение итогов серии MAD Skills о Kotlin и Jetpack. Что было:
👉 Использование KTX библиотек
👉 Как упростить API с помощью Coroutines и Flow
👉 Room KTX
👉 WorkManager KTX
👉 Советы от сообщества
👉 Q&A в прямом эфире (запись)
MAD Skills Kotlin and Jetpack: wrap-up
Подведение итогов серии MAD Skills о Kotlin и Jetpack. Что было:
👉 Использование KTX библиотек
👉 Как упростить API с помощью Coroutines и Flow
👉 Room KTX
👉 WorkManager KTX
👉 Советы от сообщества
👉 Q&A в прямом эфире (запись)
#AndroidBroadcast #LiveStream
🔴 За 2 зайцами: нужно ли уметь разрабатывать под Android и iOS (прямой эфир)
Сегодня в 19.00 (GMT+3) соберёмся, чтобы обсудить стоит ли разрабатывать под две мобильные платформы или сконцентрироваться на одной. Не обойдем стороной и трансформацию нативных разработчиков в кроссплатформенные
Гость - Алексей Гладков, автор канала Mobile Developer, технический архитектор Леруа Мерлен, барабанщик, прогеймер
🔴 За 2 зайцами: нужно ли уметь разрабатывать под Android и iOS (прямой эфир)
Сегодня в 19.00 (GMT+3) соберёмся, чтобы обсудить стоит ли разрабатывать под две мобильные платформы или сконцентрироваться на одной. Не обойдем стороной и трансформацию нативных разработчиков в кроссплатформенные
Гость - Алексей Гладков, автор канала Mobile Developer, технический архитектор Леруа Мерлен, барабанщик, прогеймер
#Android11 #ScopedStorage
Scoped Storage: Не надо бояться (33 мин)
С августа 2021 все новые приложения и с ноября 2021 все обновления существующих приложений должны использовать targetSdk 30.
К изменениям лучше готовиться заранее и одно из самых крупных изменений, пришедшее с Android 11 - Scoped Storage. Начиная с targetSdk=30 флаг android:requestLegacyExternalStorage будет игнорироваться и вопрос миграции становится более актуальным. По данной теме Redmadrobot выложили запись со своего внутреннего митапа:
Таймкоды:
01:15 Disclaimer
02:10 Почему не нужно бояться
04:10 App-specific files
06:35 Cпособы обращения к Storage
08:05 Моменты из практики
16:03 Чек-лист для проверки
18:35 Permissions
21:35 Миграция
24:10 Вопросы
Ссылки из доклада:
📄Scoped Storage
📄Storage updates in Android 11
📄App data and files
Scoped Storage: Не надо бояться (33 мин)
С августа 2021 все новые приложения и с ноября 2021 все обновления существующих приложений должны использовать targetSdk 30.
К изменениям лучше готовиться заранее и одно из самых крупных изменений, пришедшее с Android 11 - Scoped Storage. Начиная с targetSdk=30 флаг android:requestLegacyExternalStorage будет игнорироваться и вопрос миграции становится более актуальным. По данной теме Redmadrobot выложили запись со своего внутреннего митапа:
Таймкоды:
01:15 Disclaimer
02:10 Почему не нужно бояться
04:10 App-specific files
06:35 Cпособы обращения к Storage
08:05 Моменты из практики
16:03 Чек-лист для проверки
18:35 Permissions
21:35 Миграция
24:10 Вопросы
Ссылки из доклада:
📄Scoped Storage
📄Storage updates in Android 11
📄App data and files
👍1
#AndroidBroadcast #Новости
📺 Пилотный выпуск новостей от Android Broadcast (14 мин)
Обсуждаем новости, статьи и самые интересные события в мире мобильной разработки и около неё.
Оставляйте ваши отзывы в комментариях на YouTube. Это очень помогает улучшать качество контента.
P.S. Качество звука получилось не очень. В ближайшее время будет исправлено с помощью нового микрофона.
📺 Пилотный выпуск новостей от Android Broadcast (14 мин)
Обсуждаем новости, статьи и самые интересные события в мире мобильной разработки и около неё.
Оставляйте ваши отзывы в комментариях на YouTube. Это очень помогает улучшать качество контента.
P.S. Качество звука получилось не очень. В ближайшее время будет исправлено с помощью нового микрофона.
#GooglePlay
Google Play начал показывать рост или падение в рейтингах
Google Play в списках самых популярных приложений начал показывать, растет ли приложение в чартах или падает. Это стрелка вверх или вниз.
Повлияет ли такой индикатор на ваше решение установить приложение? Голосуем 👍 или 👎
Google Play начал показывать рост или падение в рейтингах
Google Play в списках самых популярных приложений начал показывать, растет ли приложение в чартах или падает. Это стрелка вверх или вниз.
Повлияет ли такой индикатор на ваше решение установить приложение? Голосуем 👍 или 👎
#AndroidOS
The legend about AIDL
Разбор механизма для коммуникации между процессами в Android
Статья из трёх частей:
1️⃣ Основы
2️⃣ AIDL в действии
3️⃣ Где используется AIDL в Android
The legend about AIDL
Разбор механизма для коммуникации между процессами в Android
Статья из трёх частей:
1️⃣ Основы
2️⃣ AIDL в действии
3️⃣ Где используется AIDL в Android
#Безопасность #Networking
📺 Android Guards "Как прикрутить и отломать SSL pinning. CetificatePinner & NSC vs Reverse Engineer" (36 мин)
Автоматическое откручивание SSL pinning-а не всегда хорошо работает и порой приходится выпиливать его руками, чтобы посмотреть трафик приложения.
Автор пишет приложение с двумя видами пиннинга сертификатов и обфусцирует его. Также продемонстрировал работу взломщика с таким приложением.
📺 Android Guards "Как прикрутить и отломать SSL pinning. CetificatePinner & NSC vs Reverse Engineer" (36 мин)
Автоматическое откручивание SSL pinning-а не всегда хорошо работает и порой приходится выпиливать его руками, чтобы посмотреть трафик приложения.
Автор пишет приложение с двумя видами пиннинга сертификатов и обфусцирует его. Также продемонстрировал работу взломщика с таким приложением.
#Jetpack #AppStartup
A Warning Regarding Android App Startup with Multiprocess Apps
Библиотека Jetpack App Startup, должна ускорить запуск приложения, но не тут так все было. Есть проблемы при работе с приложениями, которые используют несколько процессов, потому что чтоб App Startup работает только на процессе по умолчанию. В статье найдете рецепт как изменить процесс на котором работает библиотека
A Warning Regarding Android App Startup with Multiprocess Apps
Библиотека Jetpack App Startup, должна ускорить запуск приложения, но не тут так все было. Есть проблемы при работе с приложениями, которые используют несколько процессов, потому что чтоб App Startup работает только на процессе по умолчанию. В статье найдете рецепт как изменить процесс на котором работает библиотека
#AndroidStudio
StudioFlags.java - файл, содержащий все флаги Android Studio. Вы сможете узнать пару секретов и включить/выключить то что вам нужно/не нужно.
StudioFlags.java - файл, содержащий все флаги Android Studio. Вы сможете узнать пару секретов и включить/выключить то что вам нужно/не нужно.
#LiveData #Coroutines #Flow
Migrate from LiveData to StateFlow and SharedFlow
Руководство по миграции с LiveData на Flow и его вариации. Также рассматривается почему это надо делать и какие преимущества даёт Flow.
Migrate from LiveData to StateFlow and SharedFlow
Руководство по миграции с LiveData на Flow и его вариации. Также рассматривается почему это надо делать и какие преимущества даёт Flow.
#AndroidStudio #Performance
Can you trust time measurements in Profiler?
6 минут 📺 Видео версия
Если нужно проанализировать производительность, то в первую очередь надо взять замеры. В этом нам поможет Profiler, который встроен в Androdi Studio.
В статье/видео приводятся доказательства, что не всегда он показывает верные результаты. Решением служит использование Systrace или Jetpack Benchmark Library.
Can you trust time measurements in Profiler?
6 минут 📺 Видео версия
Если нужно проанализировать производительность, то в первую очередь надо взять замеры. В этом нам поможет Profiler, который встроен в Androdi Studio.
В статье/видео приводятся доказательства, что не всегда он показывает верные результаты. Решением служит использование Systrace или Jetpack Benchmark Library.
#Gradle #Kotlin
Вышел Gradle 6.8
Новый релиз Gradle сосредоточился на скорости, а именно:
🚀 Ускорение компиляции build скриптов на Kotlin DSL
👉 Добавлена поддержка пропуска компиляции для Gradle Kotlin DSL скриптов
👉 Больше совпадений кэша
👉 Улучшение конфигурационного кэша
👉 Улучшение composite builds
👉 Улучшение управления зависимостями: консистентность между runtime и compile зависимостями
👉 В
👉 Исправление багов
Вышел Gradle 6.8
Новый релиз Gradle сосредоточился на скорости, а именно:
🚀 Ускорение компиляции build скриптов на Kotlin DSL
👉 Добавлена поддержка пропуска компиляции для Gradle Kotlin DSL скриптов
👉 Больше совпадений кэша
👉 Улучшение конфигурационного кэша
👉 Улучшение composite builds
👉 Улучшение управления зависимостями: консистентность между runtime и compile зависимостями
👉 В
settings.gradle(.kts)
теперь можно объявить репозитории для всех зависимостей проектов, component metadata rules и блокировку динамического версионирования (1.+)👉 Исправление багов