Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#Dagger #DependencyInjection

Dagger dependencies beyond the basics

Dagger - очень популярное решения для организации DI в Android проектах. Одна печаль - инструмент мощный, но в нем легко запутаться, так как точных рекомендаций по использованию от авторов нет.

В статье разбирается как лучше доставлять зависимости с помощью Dagger в Android из всех возможных вариантов.
#DependencyInjection #ArchitectureComponents #ViewModel

Injecting ViewModel — hard to easy

В современной Android разработке очень популярна архитектура MVVM на основе Arch Components. И куда же современное приложение без Dependency Injection (DI).

Создание ViewModel и доставка зависимостей в ее конструктор с помощью DI - нетривиальная задача, так как создать ViewModel просто через конструктор неправильно, нужно делать это через ViewModelProvider.Factory.

В статье разбирается как решить эту задачу с помощью Dagger и Koin.
#Dagger #Hilt #DependencyInjection

Scoping in Android and Hilt

В Dagger мы привыкли работать с Subcomponent и делать разные Scope, для того чтобы управлять жизнью отдельных объектов графа. В Hilt нас ждут перемены работы с графом и это задело Scope тоже

В статье происходит разбор того как создать Scope для ViewModel при использовании Hilt
#AndroidBroadcast #DependencyInjection #Dagger

Dagger Hilt Deep Dive (Livestream EN)

В четверг, 3 сентября, в 19:30 обсуждаем Dagger Hilt с Manuel Vivo, Android Developer Relations Engineer в Google

Dagger Hilt - это надстройка над Dagger под Android, призванная убрать множество boileplate кода, который приходится писать для модулей и компонентов.

Manuel занимается архитектурой приложений, Kotlin, Coroutines, Dependency Injection, а также Jetpack Compose. Ранее работал в Capital One.
#Dagger #DependencyInjection

Вышел Dagger 2.29

Новая версия Dagger в которой появились
👉 артефакты Hilt для Android и чистых Java/Kotlin проектов
👉 Новая опция dagger.validateTransitiveComponentDependencies, которая отключает транзитивную проверку зависимостей компонентов
👉 Новая опция dagger.strictMultibindingValidation, позволяющая проверять multibinding в графе
👉 Исправление багов
#Koin #DependencyInjection

What’s next with Koin? — 2.2 & 3.0 releases

Koin - одно из популярных решений для DI для проектов на Kotlin. По сравнению с Dagger он убрал долгую компиляцию, упростил объявление зависимостей, но потерял проверку графа во время компиляции.

Совсем скоро выйдет релиз 2.2 этой библиотеки в которой будет:
👉 stateViewModel() и viewModel() буду заменены на viewModel()
👉 Поддержка WorkManager
👉 Поддержка Jetpack Compose
👉 Более простой способ описания Android Scope-ов
👉 Проведены работы под капотом: создать объект Koin Context становится проще
👉 Возможность положить параметр, который inject-ится в зависимость, в граф. По аналогии с StateHandleBundle
👉 Поддержка JUnit 5

В Koin 3.0 нас ждет поддержка Kotlin Multiplatform
#DependencyInjection #SOLID #Architecture

DIP vs IoC vs DI в мире Android

Разбор разницы между Dependency inversion principle (DIP), Inversion of control (IoC) и Dependency injection (DI). Помимо прочего рассматриваются пограничные случаи, когда легко спутать эти термины
#DependencyInjection

Вышел Dagger 2.30
👉 Hilt депрекейтнул ApplicationComponent и вскоре его удалят и заменят SingletonComponent
👉 Hilt стал поддерживать @BindValue val
👉 Dagger по умолчанию теперь использует experimentalDaggerErrorMessages. Подробности о новом формате вывода ошибок здесь
👉 Исправление багов
#DependencyInjection

Migrating from Dagger to Hilt — Is it worth it?

Hilt предназначен упростить работу с Dagger в Android, но почему-то не все спешат переходить на него, а именно:
👉 Упростить Inject в конструкторы ViewModel и различные Worker из WorkManager
👉 Упростить тестирование, с помощью более легкой замены Dagger модулей и прокалывания зависимостей в граф
👉 Стандартные Dagger компоненты для основных компонентов приложения

Мне лично очень не хватает поддержки Inject в конструкторы Fragment
#Dagger #DependencyInjection

Вышел Dagger 2.31

Новая версия Dagger радует новыми фичами:
🔥 Поддержка Assisted Injection - возможность передать параметры во время создания объекта, а не из DI графа. Подробности здесь

Hilt:
👉 @TestInstallIn - позволяет описывать глобально подмену тестовых модулей вместо @UninstallModules на отдельных тестах
👉 @HiltViewModel - замена @ViewModelInject. Отличается тем что делает inject из ViewModelComponent с @ViewModelScope. Подробнее здесь
👉 Удалили ApplicationComponent. Мигрируемся на SingletonComponent
👉 Небольшие улучшения в настройке Gradle плагина и поддержке многомодульных проектов