Android Broadcast
13.6K subscribers
2.92K photos
170 videos
9 files
5.05K links
Подборка новостей и статей для Android разработчиков.

Обсуждение @android_broadcast_talks
Наши медиа https://taplink.cc/android_broadcast
Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#AndroidBroadcast #Dagger

🔴 Dagger Q&A

Стартуем эфир с ответами на вопросы про Dagger 2 и лучшими практиками.

Запись будет доступна после эфира
#dagger #модуляризация

Многомодульность в Android и Dagger: пошаговый пример

Руководство по организации Dagger в многомодульном Android. проекте
#ksp #dagger

Слежу за поддержкой Assisted Inejct в Hilt для Dagger и в треде проскачила классная инфа - команда Dagger сейчас сосредоточена на поддержке KSP и все остальное в низком приоритете! Ждем ускорения Dagger и меньше Java кода в Android проектах.
This media is not supported in your browser
VIEW IN TELEGRAM
#tooling #dagger

Scabbard - утилита для визуализации Dagger 2 графа. Есть плагин для Android Studio/IDEA
#dagger

Вышел Dagger 2.42

В новой версии нет фичей, а вся работа проводится под капотом. Например, теперь сгенерированный класс для Component не реализует интерфейс компонент. Это может сломать ваш код, но исправить будет не проблемой
Вышел Dagger 2.43
👉 Багфикс

Hilt
👉 Потенциальный breaking change
👉 Миграция на Android SDK 31 (Android 12) и AGP 7.0+

#dagger #library
Injecting SavedStateHandle into ViewModel using Dagger 2 and Jetpack Compose (5 мин)

Инструкция как сделать inject SavedStateHandle (позволяет сохранять состояние при пересоздании процесса) в ViewModel c использование Dagger 2.

#dagger
Вышел Dagger 2.45 с багфиксом. Фичей нет уже несколько релизов, видно что-то готовится серьезное. Может KSP?

#dagger
Руководство как при помощи Kotlin и делегатов может писать кода не больше чем при использовании Dagger, но зато не будет кодогенерации и долгих сборок. Называется Manual DI

#dagger
В Циан попробовали перейти с Dagger на Yatagan (аля Dagger Lite) и оценить эффект на скорость сборки проекта.

Характеристики проекта: 479 Gradle модулей, 813K строк Kotlin, 53K строк Java и 136K строк XML, 528 Dagger компонентов

Важно - при тестах проекта перейти на ksp и полностью избавиться от kapt не получилось из-за других библиотек (Moxy), но автор просто сделал тест с отключением генерации кода через kapt.

Результаты - сокращение времени сборки на 17-25%. Очень не хватило показателей сколько будет строк кода сгенерировано Yatagan по сравнению с Dagger, а также размер финальной сборки

#dagger #performance
Dagger 2.47 вышел. Мало что нового, трудятся над поддержкой KSP. Сейчас добавили флаг dagger.ignoreProvisionKeyWildcards для запрета предоставления нескольких зависимостей одного типа, но с разными generic типами.

Фича нужна для KSP и по умолчанию отключена. Рекомендуется включить этот флаг чтобы не получить проблем с вашим текущим Dagger графом

Также Hilt теперь требует использовать Android Gradle Plugin версии 7.0 и выше

#dagger
Руководство (EN, 4 мин) как использовать Jetpack Compose Navigation и Dagger 2 с отложенной (ленивой) инициализацией модулей

#compose #dagger #navigation
❗️ Вышел Dagger 2.48 с поддержкой KSP. Пока в Альфа статусе

Подробности в новой странице документации

#dagger @android_broadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел Dagger 2.49 в котором продолжают работу над поддержкой KSP. Теперь dagger.android научили работать с KSP, хоть он и deprecated, но какие-то проекты его могут использовать и для миграции на KSP надо чтоб все части Dagger поддерживали новый инструмент для генерации кода.

#dagger
Улучшения Hilt в Dagger 2.49
👉 сделали поддержку @AssitedInject в @HiltViewModel
👉 С помощью аннотации @ActivityRetainedSavedState можно получить SavedStateHandle из ActivityRetainedComponent

#dagger #hilt #jetpack
Вышел Dagger 2.50
👉 Готовятся к поддержке jakarta.inject.Provider 
👉 Значение флага -Adagger.explicitBindingConflictsWithInject теперь выступленое в enabled по умолчанию

#dagger
Обновление Android Jetpack:
🎉 Hilt 1.2.0 - добавлена поддержка Assited Inject в hiltViewModel() and hiltNavGraphViewModels()
🎉 Test Uiautomator 2.3.0 - поддержка множества дисплеев, новые селекторы, кастомные Condition позволят реализовать собственные условия ожидания
👉 Benchmark 1.3.0-alpha01 - множество улучшений и исправления багов
👉 Lifecycle 2.8.0-alpha02 - ViewModel переписалин на Kotlin, Lifecycle API стало мультиплатформенным, новые API dropUnlessResumed() и dropUnlessStarted()
👉 Lint 1.0.0-alpha01 - Lint проверки для авторов Gradle плагинов

Больше подробностей тут

#jetpack #jetpackupdate #dagger #hilt
В Hilt 1.2.0 теперь можно делать такое c ViewModel

Для тех кто не знаком с Assisted Injection читайте документацию Dagger

#hilt #di #dagger
Вышел Dagger 2.51:
👉 @LazyClassKey - аннотация с поддержкой использования классов в Map Key, но в отличие от @ClassKey класс будет загружаться отложено
👉 Новая фича позволит корректно делать обфускацию ViewModel с аннотацией @HiltViewModel
👉 Аннотация @SkipTestInjection для пропуска инжекта в Hilt Android тестах
🛠 Исправление багов

#dagger
Статья (3м) с описанием как упростить inject параметров с помощью библиотеки автора Anvil Utils

#anvil #dagger #di