Тёмный

Hilt - лёгкий старт в Dagger 

Android Broadcast. Все об Андроид разработке
Просмотров 15 тыс.
50% 1

Опубликовано:

 

26 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 46   
@AndroidBroadcast
@AndroidBroadcast 2 года назад
📺 Курс по Dagger 2 clck.ru/VtY7d 🔗 Документация по Dagger Hilt dagger.dev/dev-guide 🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast 💰 Поддержать проект на Boosty bit.ly/3sratqQ или Patreon patreon.com/android_broadcast
@andreyliashuk2516
@andreyliashuk2516 2 года назад
Будьте очень осторожны с контекстом, так как хилт обворачивает контекст в свой врапер. При миграции нарвался на несколько багов из-за этого врапера. End-to-end тесты были отдельной головной болью. Пришлось переделывать инжект в апликейшин классе и создавать свои рулы для тестов.
@serhiihulenko9699
@serhiihulenko9699 2 года назад
Еще не посмотрел, но ставлю лайк) Длинное видео в конце могу забыть)
@mishaeliseev
@mishaeliseev 2 года назад
Спасибо, очень ждал !
@everythingInBits
@everythingInBits 2 года назад
Версия хилта должна совпадать с версией даггера* оговорочка
@qavan
@qavan 2 года назад
При использования навкомпонента можно аргумент во вьюмодели напрямую из SavedStateHandle дергать
@vladislav415
@vladislav415 2 года назад
навкомпонент не обязательно. и так можно
@MxMayers
@MxMayers 2 года назад
Так как в дагере одно и тоже можно реализовать кучей разных способов, то отсюда следует вывод, даггер это путь самурая, у самурая нет цели, у самурая есть только путь.
@GriNAME
@GriNAME 2 года назад
Сразу лайк, спасибо!)
@anatoly-ly
@anatoly-ly Год назад
Это ловушка. Начните многомодульной проект с Dagger, это будет самый легкий старт
@kafychannel
@kafychannel 2 года назад
Thank you ! Very useful!
@illyaevseev312
@illyaevseev312 2 года назад
Что касается передачи параметра во ViewModel @HiltViewModel class MainViewModel @Inject constructor(private val savedStateHandle: SavedStateHandle) : ViewModel { init { val param = savedStateHandle.get("param_key") } } Ну и, конечно, нужно запихнуть param_key с типом Long нравящимся способом.
@mironoff2007
@mironoff2007 2 года назад
Приходилось ли пользоваться Scabbard? Он рисует графы для дагера картианками
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Спасибо! Видел когда-то его давно, но потерял ссылку.
@АнтонЛосев-б2ш
@АнтонЛосев-б2ш 2 года назад
супер, спасибо
@heroachilles
@heroachilles 2 года назад
Спасибо
@quverr
@quverr 2 года назад
Сними плиз видео про тестирование даггер.
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Dagger тестировать не надо. Что именно надо осветить в вопросе использования его в тестах?
@BelokonRoman
@BelokonRoman 2 года назад
14:50 - делается это очень легко. Я бы показал как это сделать, но вот только всратый ютуб удаляет все ссылки на gist. И не только ссылки, а даже часть пути ссылки, в которой даже слэши я заменил на слова
@voicetv9048
@voicetv9048 Год назад
А что плохого в том что, создавать функция внутри viewModel с параметром newsId:Long, и всю логику перенести с блока инициализация в функция, и вызвать её при необходимости ?
@AndroidBroadcast
@AndroidBroadcast Год назад
Лучше чтобы все обязательные параметры были известны заранее и были в конструкторе. Это лишь рекомендация. Вы можете следовать своему пути.
@voicetv9048
@voicetv9048 Год назад
@@AndroidBroadcast я с вами согласен, но не вижу смысла создавать модуль для таких задач, тем более, когда этот объект часто меняется например передается с editext и.т.п
@slartus
@slartus 2 года назад
а что за делегат by stringArgs?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Его исходники можно найти в коде на Github (ссылка в описании к ролику). Просто обернул получение строки из аргументов Fragment-a
@agp1444
@agp1444 2 года назад
только у меня ссылка "Курс по Dagger 2" не открывается?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Проверю
@VolodymyrBabenko-w7j
@VolodymyrBabenko-w7j 2 года назад
Хотелость бы узнать, а Hilt потдерживает мультибиндинг? На офф сайте нет упоминания про этот механизвм для Hilt
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Насколько я знаю да и никаких причин чтобы это было не так я не знаю
@VolodymyrBabenko-w7j
@VolodymyrBabenko-w7j 2 года назад
Значит недостаточно продебажили...
@GriNAME
@GriNAME 2 года назад
14:29 Кирилл, на какие горячие клавиши ты показал вертикальные панели вкладкок?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Это было наведение курсора в область
@GriNAME
@GriNAME 2 года назад
@@AndroidBroadcast блин, не заметил) понятно
@lordraiden_do
@lordraiden_do 2 года назад
Спасибо! Как раз актуально для меня. Так а в целом что с не так с Koin?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Вернулся на Dagger я и рассказал почему ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-lo8SypkHBJk.html
@lordraiden_do
@lordraiden_do 2 года назад
@@AndroidBroadcast сча посмотрим, спс!
@unpub2
@unpub2 2 года назад
koin в разы лучше, если проект на котлин.
@ilyabobrov8260
@ilyabobrov8260 2 года назад
У меня имеется старое монолитное приложение (все в одном модуле) полностью на Dagger2, моя задача обновить чат и вынести его как модуль. Но этот модуль должен работать как в старом приложении на Dagger2, так и в новом на Hilt. В модуле будет Dagger2. Но я нигде не могу найти подсказки, как внедрить library module на dagger в hilt app. Может у вас имеются полезные статьи?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Вы сможете только переиспользовать модули в таком случае, так как компоненты отличаются. Hilt не такой гибкий и лучше везде использовать Dagger, особенно в таком shared коде.
@user-fc9gt6dl2i
@user-fc9gt6dl2i 2 года назад
Коммент для продвижения
@coffemilk652
@coffemilk652 2 года назад
Хилт для каждой активити создает отдельный саб компонент или один на все активити?
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Один на все
@coffemilk652
@coffemilk652 2 года назад
@@AndroidBroadcast Правильно ли я понимаю: получается я смогу в одном активити запросить зависимости предназначенные для другого активити, при том что обе активности находятся в разных гредл модулях. Это же обход инкапсуляции ради чего и создаются модули.
@AndroidBroadcast
@AndroidBroadcast 2 года назад
Нет, компонент это лишь API. Вам ещё его нужно создать и если вы будете использовать один и тот же инстанс то вы сможете доставить. Точно также как и с Dagger. Создавать компонент под каждую Activity не надо было никогда, только если вам надо делать разные Scope
@zaur4094
@zaur4094 2 года назад
А нужен ли вообще DI фреймворк если тестов не будет никогда в андроид проекте? Ведь DI фреймворк предполагает определенную архитектуру и даже логику приложения, что затрудняет разработку и поддержку
@AndroidBroadcast
@AndroidBroadcast 2 года назад
DI позволяет снизить связность между собой компонентов и легко подменять зависимости. Фактически это влияет на масшатибруемость и гибкость решения
@dmitriymitroshin7525
@dmitriymitroshin7525 2 года назад
Комментарий
Далее
Как ускорить Dagger в Android
7:50
Просмотров 4,4 тыс.
Dagger Component, Subcomponent, Scope, Reusable
22:38
Brilliant Budget-Friendly Tips for Car Painting!
00:28
БЕЛКА СЬЕЛА КОТЕНКА?#cat
00:13
Просмотров 1,6 млн
Как я мою двигатель на KIA RIO
9:45
Dagger Multibindings. Plugin architecture [RU]
17:24
Просмотров 15 тыс.
Hilt and dependency injection - MAD Skills
13:06
Просмотров 47 тыс.
Dagger в Android на практике с MVVM
32:41
Hilt Modules, Binds and Provides (Dagger2)
18:02
Просмотров 22 тыс.
Brilliant Budget-Friendly Tips for Car Painting!
00:28