Иду в гости на канал "Mobile Developer. Поговорим о развитии карьеры разработчика после Senior. Всем будет в прямом эфире. Стрим пройдет завтра, 8 января 2021 в 15:00 по Москве!
#Архитектура #Модуляризация
Ленивая склейка модулей Android-приложения
Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.
Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
Ленивая склейка модулей Android-приложения
Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.
Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
#WorkManager #Jetpack #Kotlin
WorkManager — Kotlin APIs
Разбор Kotlin расширений и поддержки Coroutine в WorkManager
WorkManager — Kotlin APIs
Разбор Kotlin расширений и поддержки Coroutine в WorkManager
#AndroidStudio #DataBinding
Вышла Android Studio Arctic Fox Canary 4
Вышла новая канарейка Android Studio Arctic Fox. Главное новинкой является поддержка StateFlow в Data Binding
Вышла Android Studio Arctic Fox Canary 4
Вышла новая канарейка Android Studio Arctic Fox. Главное новинкой является поддержка StateFlow в Data Binding
#Производительность #UI #RecyclerView
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
#Архитектура
Separating Features in Android Fragment
Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.
Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.
В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
Separating Features in Android Fragment
Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.
Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.
В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
Forwarded from Kotlin Multiplatform Broadcast
#Coroutines
7 Gotchas When Explore Kotlin Coroutine
Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
7 Gotchas When Explore Kotlin Coroutine
Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
#AndroidBroadcast
📺 Планы Android Broadcast 2021 (21 мин)
Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
📺 Планы Android Broadcast 2021 (21 мин)
Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
#OpenGL
Resources for Learning OpenGL - An Android Developers Guide
Набор полезный книг, ресурсов, курсов и др материал для изучения OpenGL ES и использование его в Android.
Resources for Learning OpenGL - An Android Developers Guide
Набор полезный книг, ресурсов, курсов и др материал для изучения OpenGL ES и использование его в Android.
#AndroidOS
Evolution of Android Update System
Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.
В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
Evolution of Android Update System
Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.
В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
#Coroutines #Performance
Android App Startup Tip: Don’t Use Kotlin Coroutines
2 минут чтения
Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения:
👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти
👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard
👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу
Android App Startup Tip: Don’t Use Kotlin Coroutines
2 минут чтения
Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения:
👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти
👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard
👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу
#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 в прямом эфире (запись)