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

  • @AndroidBroadcast
    @AndroidBroadcast2 жыл бұрын

    📺 Курс по Dagger 2 clck.ru/VtY7d 💰 Поддержать проект на Boosty bit.ly/3sratqQ или Patreon patreon.com/android_broadcast 🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast

  • @RomanTokarenko
    @RomanTokarenko2 жыл бұрын

    Спасибо за проделанную работу. Очень хорошее объяснение.

  • @TerebeninEP
    @TerebeninEP2 жыл бұрын

    Крайне полезный урок! Спасибо!

  • @user-hl2zw8ln8r
    @user-hl2zw8ln8r2 жыл бұрын

    Спасибо автору, классное видео)

  • @denisdanilchuk9256
    @denisdanilchuk92562 жыл бұрын

    Лайк за аннотации! Не знал про такую фичу.

  • @alextel69
    @alextel69 Жыл бұрын

    Золото. Очень полезно.

  • @codedevil6524
    @codedevil65242 жыл бұрын

    Вижу видео от Android Broadcast про Dagger - ставлю лайк! И смотрю 😎👍

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Спасибо, очень приятно 😊

  • @dmytrokuiko8855
    @dmytrokuiko88552 жыл бұрын

    Спасибо за отличную работу Кирилл! 🙌🏼 Подчерпнул для себя новое с перечислениями аннотаций в массиве! 🙏🏼

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    А видео то про Dagger было )

  • @user-fg3wl4xu9d

    @user-fg3wl4xu9d

    Ай бұрын

    мы на это смотрели вот такими О_o глазами

  • @d.mertsalov
    @d.mertsalov2 жыл бұрын

    Спасибо!

  • @yuriyderkach9215
    @yuriyderkach92152 жыл бұрын

    Уроки супер, спасибо!!!) Жду урок про Dagger в многомодульном проекте! Жаль что выходят так долго(

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Да, совсем плохо что так вышло. В ближайшее время наверстаю

  • @thunderdoge
    @thunderdoge2 жыл бұрын

    Про объявление связанных аннотаций вместе не знал, спасибо )

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Любые аннотации так можно объявить вместе. Я пишу вместе только те которые имеют отношения друг к другу

  • @user-kk1yi2sz1d
    @user-kk1yi2sz1d2 жыл бұрын

    Спасибо! Этот урок пока сложно понять, так как не совсем понятно где и как я лично могу это применить. Но будет полезно помнить, что такое есть.

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Где я применял - Фабрики Fragment - Фабрики уведомлений где ключом был тип объекта - Фабрики ViewModel

  • @user-ed6ps4ol9n
    @user-ed6ps4ol9n2 жыл бұрын

    Хух.. Досмотрел! Для эфективности всё переписал в свою репу руками. Такое рабоатет лучше всего. Готов к следующему уроку!!!

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Придется подождать - ушел а отпуск до сентября

  • @evgeniybutov2792
    @evgeniybutov27922 жыл бұрын

    Пасибо. Гоу дальше ;)

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Не всё сразу. не успеваю тянуть так быстро

  • @evgeniybutov2792

    @evgeniybutov2792

    2 жыл бұрын

    @@AndroidBroadcast Кирилл, правильно я понял тебя на 11:30 минуте видео. Что этот способ подходит для viewModel которая не просит на вход параметры (типа newsId который брали из аргументов).

  • @user-ed6ps4ol9n
    @user-ed6ps4ol9n2 жыл бұрын

    Вот зашёл проверить, есть ли новое видео, и оказалось, что есть!

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Плейлисты KZread ничего не умеют прятать (

  • @user-ed6ps4ol9n

    @user-ed6ps4ol9n

    2 жыл бұрын

    Тоесть ещё небыло официальной премьеры?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    нет, только ранний доступ

  • @MxMayers
    @MxMayers Жыл бұрын

    0:36 Подскажите, тут фура с лайками подъехала куда разгружать 🚚👍👍👍

  • @aliakseisudas5290
    @aliakseisudas52902 жыл бұрын

    Привет . Спасибо за серию видео. Мне как только начавшему карьеру очень помогает. П.С. Хотел озвучить идею по поводу развития канала, поскольку аудитория в РФ и РБ не такая значительная по количеству, можешь попробовать сделать пару выпусков на английском ( как индусы делают) , охват аудитории в разы больше

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Супер что помогает

  • @dmitrytimofeev4826
    @dmitrytimofeev48262 жыл бұрын

    Когда же самое интересное будет? Многомодульность! Вот чего мало освещено. В Касперском как я знаю хитрая архитектура через dependecy реализованная.Очен интересно было бы посмотреть на свежий вариант ее. PS: Про многомодульность в целом много чего рассказать можно. Чего стоит навигация или взаимодействие между модулями. А уж про оптимизацию gradle файлов можно отдельные трактаты писать)

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Следующий выпуск будет с примером организации Dagger в многомодульном проекте

  • @kamilchulakov
    @kamilchulakov2 жыл бұрын

    Вопрос всё таки есть :) Есть ли штука, где можно уйти от негибкости Dagger(2)? Очень хочется получать сгенерированную фабрику элементов, унаследованных от класса с какой-то аннотацией (например, Command). В какую сторону можно посмотреть?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Нет, только если самому дописывать генератор кода

  • @KudashovDev
    @KudashovDev2 жыл бұрын

    Скорее бы уже урок про многомодульный проект)

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Буду стараться, но все никак не могу прийти в норму

  • @KudashovDev

    @KudashovDev

    2 жыл бұрын

    @@AndroidBroadcast После перелета? Кстати, хочу сказать спасибо за доклад, было круто) А ещё значки и наклейки топ))

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Заболел еще в субботу, а после перелета все усугубилось. Рад что понравилось, боялся за сырой доклад

  • @KudashovDev

    @KudashovDev

    2 жыл бұрын

    @@AndroidBroadcast Давай, выздоравливай) Ты нам очень нужен)

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Спасибо

  • @PandaTop.
    @PandaTop.2 жыл бұрын

    будут ли видео о Clean Architecture?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Пока в планах не было

  • @user-kn3ce4ir4q
    @user-kn3ce4ir4q2 жыл бұрын

    За следующий урок душу готов продать!

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Он будет дешевле - бесплатно!

  • @user-fc9gt6dl2i
    @user-fc9gt6dl2i2 жыл бұрын

    Если некоторые вьюмодели используют динамические параметры через AssistedInject, то для каждой все равно нужно создавать фабрики как во втором уроке?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    К сожалению, да. Механизм VireModel и Dagger не могут знать про всё, соответственно это приводит к тому что необходимо каждый раз делать это самостоятельно через собственные фабрики. Как вариант сделать механизм подобный аргументам Fragment через Bundle, но он не такой строгий

  • @vitaliy2020
    @vitaliy20202 жыл бұрын

    Должен ли джун без опыта работы в реальных проектах знать Dagger 2 хорошо, или достаточно общее понимание , а детали со временем подтянутся(при приеме на работу как на это смотрят)?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Я ожидаю умения работать и понимать базисы

  • @Alex-eu1os
    @Alex-eu1os2 жыл бұрын

    А чем плохо создать просто метод providesMyViewModel в модуле и там объявить фабрику вьюмодели? Вообще имеет такой подход право на жизнь?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    ViewModel должны поставляться через фабрику , чтобы кэшироваться и переживать изменение конфигурации. Так что просто делать inject viewmodel неправильно. Я показывал пример с inject одной ViewModel во втором уроке kzread.info/dash/bejne/qp2aj5OcnrauqNY.html

  • @Alex-eu1os

    @Alex-eu1os

    2 жыл бұрын

    А если провайдить вьюмодел фактори? Типа provideViewModelFactory. Так делать не хорошо?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    @@Alex-eu1os Можно, но я то же самое показал во втором уроке

  • @user-qp9wu5my5b
    @user-qp9wu5my5b2 жыл бұрын

    а продолжение будет?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Конечно, немного выпал из колеи

  • @user-qp9wu5my5b

    @user-qp9wu5my5b

    2 жыл бұрын

    @@AndroidBroadcast уря, спасибо тебе огромное за твой вклад в android сообщество

  • @alex_in_dev
    @alex_in_dev Жыл бұрын

    Обновите пожалуйста гит, на ветке этого урока 404 ошибка

  • @AndroidBroadcast

    @AndroidBroadcast

    Жыл бұрын

    Ссылка рабочая. В вашей сети блокируют укоротитель ( Обновил на другую

  • @user-py1dy2yy4u
    @user-py1dy2yy4u2 жыл бұрын

    а что там с пятым уроком?

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Я заболел и сел голос, как вернусь в строй, тогда сяду за продолжение

  • @ardovich
    @ardovich2 жыл бұрын

    13:40 Аннотации @ElementsIntoMap не существует.

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    Да, проверил. Спасибо за замечание

  • @deadchannal
    @deadchannal2 жыл бұрын

    Спасибо!

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    👍

  • @GriNAME
    @GriNAME2 жыл бұрын

    Спасибо!

  • @AndroidBroadcast

    @AndroidBroadcast

    2 жыл бұрын

    💪

Келесі