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

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 46

  • @AndroidBroadcast
    @AndroidBroadcast  3 года назад +3

    📺 Курс по 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 3 года назад +9

    Будьте очень осторожны с контекстом, так как хилт обворачивает контекст в свой врапер. При миграции нарвался на несколько багов из-за этого врапера.
    End-to-end тесты были отдельной головной болью. Пришлось переделывать инжект в апликейшин классе и создавать свои рулы для тестов.

  • @serhiihulenko9699
    @serhiihulenko9699 3 года назад

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

  • @mishaeliseev
    @mishaeliseev 3 года назад

    Спасибо, очень ждал !

  • @qavan
    @qavan 3 года назад +3

    При использования навкомпонента можно аргумент во вьюмодели напрямую из SavedStateHandle дергать

    • @vladislav415
      @vladislav415 2 года назад +2

      навкомпонент не обязательно. и так можно

  • @anatoly-ly
    @anatoly-ly Год назад

    Это ловушка. Начните многомодульной проект с Dagger, это будет самый легкий старт

  • @illyaevseev312
    @illyaevseev312 2 года назад

    Что касается передачи параметра во ViewModel
    @HiltViewModel
    class MainViewModel @Inject constructor(private val savedStateHandle: SavedStateHandle) : ViewModel {
    init {
    val param = savedStateHandle.get("param_key")
    }
    }
    Ну и, конечно, нужно запихнуть param_key с типом Long нравящимся способом.

  • @MxMayers
    @MxMayers 2 года назад +1

    Так как в дагере одно и тоже можно реализовать кучей разных способов, то отсюда следует вывод, даггер это путь самурая, у самурая нет цели, у самурая есть только путь.

  • @GriNAME
    @GriNAME 3 года назад

    Сразу лайк, спасибо!)

  • @everythingInBits
    @everythingInBits 3 года назад +5

    Версия хилта должна совпадать с версией даггера* оговорочка

  • @АнтонЛосев-б2ш
    @АнтонЛосев-б2ш 2 года назад

    супер, спасибо

  • @kafychannel
    @kafychannel 2 года назад

    Thank you ! Very useful!

  • @mironoff2007
    @mironoff2007 2 года назад +2

    Приходилось ли пользоваться Scabbard? Он рисует графы для дагера картианками

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      Спасибо! Видел когда-то его давно, но потерял ссылку.

  • @heroachilles
    @heroachilles 3 года назад

    Спасибо

  • @voicetv9048
    @voicetv9048 Год назад

    А что плохого в том что, создавать функция внутри viewModel с параметром newsId:Long, и всю логику перенести с блока инициализация в функция, и вызвать её при необходимости ?

    • @AndroidBroadcast
      @AndroidBroadcast  Год назад

      Лучше чтобы все обязательные параметры были известны заранее и были в конструкторе. Это лишь рекомендация. Вы можете следовать своему пути.

    • @voicetv9048
      @voicetv9048 Год назад

      @@AndroidBroadcast я с вами согласен, но не вижу смысла создавать модуль для таких задач, тем более, когда этот объект часто меняется например передается с editext и.т.п

  • @lordraiden_do
    @lordraiden_do 3 года назад

    Спасибо! Как раз актуально для меня. Так а в целом что с не так с Koin?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      Вернулся на Dagger я и рассказал почему ruclips.net/video/lo8SypkHBJk/видео.html

    • @lordraiden_do
      @lordraiden_do 3 года назад

      @@AndroidBroadcast сча посмотрим, спс!

    • @unpub2
      @unpub2 2 года назад

      koin в разы лучше, если проект на котлин.

  • @quverr
    @quverr 3 года назад +2

    Сними плиз видео про тестирование даггер.

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Dagger тестировать не надо. Что именно надо осветить в вопросе использования его в тестах?

  • @BelokonRoman
    @BelokonRoman 2 года назад

    14:50 - делается это очень легко. Я бы показал как это сделать, но вот только всратый ютуб удаляет все ссылки на gist. И не только ссылки, а даже часть пути ссылки, в которой даже слэши я заменил на слова

  • @VolodymyrBabenko-w7j
    @VolodymyrBabenko-w7j 3 года назад

    Хотелость бы узнать, а Hilt потдерживает мультибиндинг? На офф сайте нет упоминания про этот механизвм для Hilt

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      Насколько я знаю да и никаких причин чтобы это было не так я не знаю

    • @VolodymyrBabenko-w7j
      @VolodymyrBabenko-w7j 3 года назад

      Значит недостаточно продебажили...

  • @ilyabobrov8260
    @ilyabobrov8260 2 года назад

    У меня имеется старое монолитное приложение (все в одном модуле) полностью на Dagger2, моя задача обновить чат и вынести его как модуль. Но этот модуль должен работать как в старом приложении на Dagger2, так и в новом на Hilt. В модуле будет Dagger2. Но я нигде не могу найти подсказки, как внедрить library module на dagger в hilt app. Может у вас имеются полезные статьи?

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      Вы сможете только переиспользовать модули в таком случае, так как компоненты отличаются. Hilt не такой гибкий и лучше везде использовать Dagger, особенно в таком shared коде.

  • @slartus
    @slartus 3 года назад +1

    а что за делегат by stringArgs?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад

      Его исходники можно найти в коде на Github (ссылка в описании к ролику). Просто обернул получение строки из аргументов Fragment-a

  • @agp1444
    @agp1444 2 года назад

    только у меня ссылка "Курс по Dagger 2" не открывается?

  • @coffemilk652
    @coffemilk652 2 года назад

    Хилт для каждой активити создает отдельный саб компонент или один на все активити?

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      Один на все

    • @coffemilk652
      @coffemilk652 2 года назад

      @@AndroidBroadcast Правильно ли я понимаю: получается я смогу в одном активити запросить зависимости предназначенные для другого активити, при том что обе активности находятся в разных гредл модулях. Это же обход инкапсуляции ради чего и создаются модули.

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      Нет, компонент это лишь API. Вам ещё его нужно создать и если вы будете использовать один и тот же инстанс то вы сможете доставить. Точно также как и с Dagger. Создавать компонент под каждую Activity не надо было никогда, только если вам надо делать разные Scope

  • @GriNAME
    @GriNAME 3 года назад

    14:29 Кирилл, на какие горячие клавиши ты показал вертикальные панели вкладкок?

    • @AndroidBroadcast
      @AndroidBroadcast  3 года назад +1

      Это было наведение курсора в область

    • @GriNAME
      @GriNAME 3 года назад

      @@AndroidBroadcast блин, не заметил) понятно

  • @user-fc9gt6dl2i
    @user-fc9gt6dl2i 3 года назад

    Коммент для продвижения

  • @zaur4094
    @zaur4094 2 года назад

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

    • @AndroidBroadcast
      @AndroidBroadcast  2 года назад

      DI позволяет снизить связность между собой компонентов и легко подменять зависимости. Фактически это влияет на масшатибруемость и гибкость решения

  • @dmitriymitroshin7525
    @dmitriymitroshin7525 3 года назад

    Комментарий