Dagger Multibindings. Plugin architecture [RU]
In the lesson, you will learn how Dagger helps to organize the architecture based on plugins and how to collect dependencies of the same type in a Set or Map.
💰 Support the project on Boosty bit.ly/3sratqQ or Patreon / android_broadcast
🔗 Telegram channel "Android Broadcast" ttttt.me/android_broadcast
🔗 Dagger Documentation dagger.dev/dev-guide/
🔗 Dagger Multibindings dagger.dev/dev-guide/multibin...
📺 Course on Dagger 2 clck.ru/VtY7d
🔗 Code from the video clck.ru/WaiXj
🔗 Combining the creation of Fragment through one factory clck.ru/WahLM
Video made with the support of Kaspersky Lab
#AndroidBroadcast # DaggerCourse # Dagger2 #DI #DependncyInjection #Hilt #DaggerHilt #KirillRozov #RozovKirill #mutibinding #component #subcomponent
0:00 Intro
1:05 Set Multibinding sample
5:46 ElementsIntoSet
6:49 Annotation Multibinds
8:00 Map Multibinding
8:45 Map Multibinding sample
12:58 Annotations array
13:28 ElementsIntoMap
13:57 Inherited Subcomponent multibindings
16:00 Accessing multibinding from Components
16:25 Outro
Пікірлер: 79
📺 Курс по Dagger 2 clck.ru/VtY7d 💰 Поддержать проект на Boosty bit.ly/3sratqQ или Patreon patreon.com/android_broadcast 🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
Спасибо за проделанную работу. Очень хорошее объяснение.
Крайне полезный урок! Спасибо!
Спасибо автору, классное видео)
Лайк за аннотации! Не знал про такую фичу.
Золото. Очень полезно.
Вижу видео от Android Broadcast про Dagger - ставлю лайк! И смотрю 😎👍
@AndroidBroadcast
2 жыл бұрын
Спасибо, очень приятно 😊
Спасибо за отличную работу Кирилл! 🙌🏼 Подчерпнул для себя новое с перечислениями аннотаций в массиве! 🙏🏼
@AndroidBroadcast
2 жыл бұрын
А видео то про Dagger было )
@user-fg3wl4xu9d
Ай бұрын
мы на это смотрели вот такими О_o глазами
Спасибо!
Уроки супер, спасибо!!!) Жду урок про Dagger в многомодульном проекте! Жаль что выходят так долго(
@AndroidBroadcast
2 жыл бұрын
Да, совсем плохо что так вышло. В ближайшее время наверстаю
Про объявление связанных аннотаций вместе не знал, спасибо )
@AndroidBroadcast
2 жыл бұрын
Любые аннотации так можно объявить вместе. Я пишу вместе только те которые имеют отношения друг к другу
Спасибо! Этот урок пока сложно понять, так как не совсем понятно где и как я лично могу это применить. Но будет полезно помнить, что такое есть.
@AndroidBroadcast
2 жыл бұрын
Где я применял - Фабрики Fragment - Фабрики уведомлений где ключом был тип объекта - Фабрики ViewModel
Хух.. Досмотрел! Для эфективности всё переписал в свою репу руками. Такое рабоатет лучше всего. Готов к следующему уроку!!!
@AndroidBroadcast
2 жыл бұрын
Придется подождать - ушел а отпуск до сентября
Пасибо. Гоу дальше ;)
@AndroidBroadcast
2 жыл бұрын
Не всё сразу. не успеваю тянуть так быстро
@evgeniybutov2792
2 жыл бұрын
@@AndroidBroadcast Кирилл, правильно я понял тебя на 11:30 минуте видео. Что этот способ подходит для viewModel которая не просит на вход параметры (типа newsId который брали из аргументов).
Вот зашёл проверить, есть ли новое видео, и оказалось, что есть!
@AndroidBroadcast
2 жыл бұрын
Плейлисты KZread ничего не умеют прятать (
@user-ed6ps4ol9n
2 жыл бұрын
Тоесть ещё небыло официальной премьеры?
@AndroidBroadcast
2 жыл бұрын
нет, только ранний доступ
0:36 Подскажите, тут фура с лайками подъехала куда разгружать 🚚👍👍👍
Привет . Спасибо за серию видео. Мне как только начавшему карьеру очень помогает. П.С. Хотел озвучить идею по поводу развития канала, поскольку аудитория в РФ и РБ не такая значительная по количеству, можешь попробовать сделать пару выпусков на английском ( как индусы делают) , охват аудитории в разы больше
@AndroidBroadcast
2 жыл бұрын
Супер что помогает
Когда же самое интересное будет? Многомодульность! Вот чего мало освещено. В Касперском как я знаю хитрая архитектура через dependecy реализованная.Очен интересно было бы посмотреть на свежий вариант ее. PS: Про многомодульность в целом много чего рассказать можно. Чего стоит навигация или взаимодействие между модулями. А уж про оптимизацию gradle файлов можно отдельные трактаты писать)
@AndroidBroadcast
2 жыл бұрын
Следующий выпуск будет с примером организации Dagger в многомодульном проекте
Вопрос всё таки есть :) Есть ли штука, где можно уйти от негибкости Dagger(2)? Очень хочется получать сгенерированную фабрику элементов, унаследованных от класса с какой-то аннотацией (например, Command). В какую сторону можно посмотреть?
@AndroidBroadcast
2 жыл бұрын
Нет, только если самому дописывать генератор кода
Скорее бы уже урок про многомодульный проект)
@AndroidBroadcast
2 жыл бұрын
Буду стараться, но все никак не могу прийти в норму
@KudashovDev
2 жыл бұрын
@@AndroidBroadcast После перелета? Кстати, хочу сказать спасибо за доклад, было круто) А ещё значки и наклейки топ))
@AndroidBroadcast
2 жыл бұрын
Заболел еще в субботу, а после перелета все усугубилось. Рад что понравилось, боялся за сырой доклад
@KudashovDev
2 жыл бұрын
@@AndroidBroadcast Давай, выздоравливай) Ты нам очень нужен)
@AndroidBroadcast
2 жыл бұрын
Спасибо
будут ли видео о Clean Architecture?
@AndroidBroadcast
2 жыл бұрын
Пока в планах не было
За следующий урок душу готов продать!
@AndroidBroadcast
2 жыл бұрын
Он будет дешевле - бесплатно!
Если некоторые вьюмодели используют динамические параметры через AssistedInject, то для каждой все равно нужно создавать фабрики как во втором уроке?
@AndroidBroadcast
2 жыл бұрын
К сожалению, да. Механизм VireModel и Dagger не могут знать про всё, соответственно это приводит к тому что необходимо каждый раз делать это самостоятельно через собственные фабрики. Как вариант сделать механизм подобный аргументам Fragment через Bundle, но он не такой строгий
Должен ли джун без опыта работы в реальных проектах знать Dagger 2 хорошо, или достаточно общее понимание , а детали со временем подтянутся(при приеме на работу как на это смотрят)?
@AndroidBroadcast
2 жыл бұрын
Я ожидаю умения работать и понимать базисы
А чем плохо создать просто метод providesMyViewModel в модуле и там объявить фабрику вьюмодели? Вообще имеет такой подход право на жизнь?
@AndroidBroadcast
2 жыл бұрын
ViewModel должны поставляться через фабрику , чтобы кэшироваться и переживать изменение конфигурации. Так что просто делать inject viewmodel неправильно. Я показывал пример с inject одной ViewModel во втором уроке kzread.info/dash/bejne/qp2aj5OcnrauqNY.html
@Alex-eu1os
2 жыл бұрын
А если провайдить вьюмодел фактори? Типа provideViewModelFactory. Так делать не хорошо?
@AndroidBroadcast
2 жыл бұрын
@@Alex-eu1os Можно, но я то же самое показал во втором уроке
а продолжение будет?
@AndroidBroadcast
2 жыл бұрын
Конечно, немного выпал из колеи
@user-qp9wu5my5b
2 жыл бұрын
@@AndroidBroadcast уря, спасибо тебе огромное за твой вклад в android сообщество
Обновите пожалуйста гит, на ветке этого урока 404 ошибка
@AndroidBroadcast
Жыл бұрын
Ссылка рабочая. В вашей сети блокируют укоротитель ( Обновил на другую
а что там с пятым уроком?
@AndroidBroadcast
2 жыл бұрын
Я заболел и сел голос, как вернусь в строй, тогда сяду за продолжение
13:40 Аннотации @ElementsIntoMap не существует.
@AndroidBroadcast
2 жыл бұрын
Да, проверил. Спасибо за замечание
Спасибо!
@AndroidBroadcast
2 жыл бұрын
👍
Спасибо!
@AndroidBroadcast
2 жыл бұрын
💪