Все про Dagger Hilt в Android Studio + Kotlin

Sdílet
Vložit
  • čas přidán 5. 07. 2024
  • На этом уроке изучаем подробно Dagger Hilt который нам упростит жизнь как разработчикам Android. Узнаем как настраивать Hilt как добавить в проект, и как им пользоватся. Я подробно расскажу с примерами в Android Studion на языке программирования Kotlin.
    ✅Dagger Hilt Документация: dagger.dev/hilt/
    ✅Dagger Hilt гайд: developer.android.com/trainin...
    ✅ Все уроки по Kotlin тут: neco-desarrollo.es/exyg
    ✅ Курс "Gps Tracker": neco-desarrollo.es/2022/11/gp...
    ★ ★ ★ ★ ★ ★ ▼ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ▼★ ★ ★ ★ ★ ★ ★
    ✅ Платные курсы: neco-desarrollo.es/home_ru
    ✅ЮMoney: 4100117811702825
    ✅PayPal: necodesarrollo@gmail.com
    ✅ Стать спонсором канала и получить доступ к курсам: / @necoruchannel
    ★ ★ ★ ★ ★ ★ ▼ПО ВОПРОСАМ ПРИОБРЕТЕНИЯ КУРСОВ ПИШИТЕ СЮДА▼★ ★ ★ ★ ★ ★ ★
    ✅Моя почта: necodesarrollo@gmail.com
    ✅Телеграм: @neco_desarrollo
    ✅ Платные курсы: neco-desarrollo.es/home_ru
    ★ ★ ★ ★ ★ ★ ▼МОИ КУРСЫ НА UDEMY▼★ ★ ★ ★ ★ ★ ★
    ✅ Курс Gps Tracker на Udemy: www.udemy.com/course/gps-trac...
    ✅ Курс Shopping List на Udemy: www.udemy.com/course/room-per...
    ✅ Курс Fitness app на Udemy: www.udemy.com/course/android-...
    ✅ Курс Доска объявлений на Udemy часть 1: www.udemy.com/course/android-...
    ✅ Курс Доска объявлений на Udemy часть 2: www.udemy.com/course/android-...
    ✅ Курс Доска объявлений на Udemy часть 3: www.udemy.com/course/android-...
    ✅ Курс Доска объявлений на Udemy часть 4: www.udemy.com/course/android-...
    ★ ★ ★ ★ ★ ★ ▼Соц.сети и WEB▼★ ★ ★ ★ ★ ★ ★
    ✅Яндекс Дзен: zen.yandex.ru/id/62ac3bb6e692...
    ✅Моя веб страница: neco-desarrollo.es
    ✅Instagram: @20neco20
    ✅Instagram: @neco_android_dev
    ✅VK: public189519480
    ✅Телеграм: t.me/androidstudioneco
    ✅Моя почта: necodesarrollo@gmail.com
    0:00 Вступление.
    2:40 Создание проекта.
    3:11 Пример зачем нужен Hilt.
    9:01 Добавляем Hilt в проект.
    20:41 Как создаются инстанции классов по умолчанию.
    33:43 Module
    44:19 ViewModel
    #AndroidStudio #Kotlin #Android

Komentáře • 97

  • @Prol93
    @Prol93 Před rokem +14

    Очень жду про Koin урок! Прям с нетерпением. Очень доступно объясняете. Спасибо Вам большое за Ваш труд.

  • @BigAwl14
    @BigAwl14 Před 11 měsíci +7

    Блин как все просто оказалось, я пытался найти объяснения из раздела для чайников и только больше запутывался в горе много мудрых объяснений, а ларчик просто открывался. Кто-то сказал - ты понимаешь тему если можешь ее объяснить так что бы поняла твоя бабушка. Воистину! Спасибо

    • @sovaz1997
      @sovaz1997 Před 7 měsíci

      Именно! Для быстрого старта самое то, как по мне
      Начинаешь понимать, как пользоваться. А уже технические нюансы, как оно изнутри работает и так далее, уже на практике придет

  • @friday7510
    @friday7510 Před rokem +7

    Пушка, бомба. Обнял поднял сенсей

  • @herrmannelig3325
    @herrmannelig3325 Před 11 měsíci +16

    Сергей, можно Вас попросить сделать уроки по темам Broadcast Receiver, Content Provider и по сервисам? Думаю многим начинающим и джуниор разработчикам это было бы интересно.

    • @NecoRuChannel
      @NecoRuChannel  Před 11 měsíci

      Да, хорошие темы!

    • @Polite_person_
      @Polite_person_ Před 11 měsíci

      @@NecoRuChannel Я тоже жду, у вас отличная подача.

  • @scheissed
    @scheissed Před rokem +5

    Только нашел этот канал. Это кладезь знаний для Андроид разработчика! Уважение автору!

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +1

      Большое спасибо!

    • @spam397
      @spam397 Před 11 měsíci

      Для начинающих разрабов андроид, это самый ТОП канал

  • @herrmannelig3325
    @herrmannelig3325 Před rokem +7

    Прямо шикарные темы пошли. Огромное спасибо Сергей!

  • @Lucky_Mirror
    @Lucky_Mirror Před rokem +1

    Очень интересно!
    Спасибо, Сергей 👍

  • @pavelgera72
    @pavelgera72 Před rokem +3

    Благодарю за урок

  • @user-ws2sm8el1d
    @user-ws2sm8el1d Před rokem +1

    Спасибо за урок! Рассказано все доступно.

  • @kinohometv1985
    @kinohometv1985 Před rokem +4

    Наконец то🎉, спасибо!!!

  • @user-wo6bq7qc7m
    @user-wo6bq7qc7m Před rokem +4

    Оо, то что надо! Отличный урок, спасибо, Сергей, все понятно)

  • @user-nb8op7ir4i
    @user-nb8op7ir4i Před rokem

    Спасибо, хороший урок. Понятно и интересно.😊

  • @cheguevara6002
    @cheguevara6002 Před 11 měsíci +2

    Спасибо за очередной хороший разбор новой темы) Ждем еще новых тем)

  • @InvincibleXXX
    @InvincibleXXX Před 9 měsíci +1

    Огромное спасибо, Сергей. Очень полезно!

  • @user-gj5rj2ig6i
    @user-gj5rj2ig6i Před 5 měsíci +1

    боже, лучший! супер понятно. Я слышал, существует правило: "Если ты можешь объяснить любую тему 6-летнему ребенку, чтобы он ее понял, значит, ты понимаешь эту тему". И Вы точно понимаете всё, ибо даже 6-летний поймет
    ))

  • @spam397
    @spam397 Před 11 měsíci +2

    Вышло, Очень, Очень, КРУТО, долго ждал такой материал !!!

  • @user-we6si4mi3x
    @user-we6si4mi3x Před 3 měsíci +1

    Большое спасибо за урок!!! Все подробно и понятно!

  • @mousewhite245
    @mousewhite245 Před rokem +4

    Лайк сейчас, а смотреть уже вечером буду

    • @spam397
      @spam397 Před 11 měsíci

      тоже так делаю =)

  • @ramilkaming8864
    @ramilkaming8864 Před rokem +1

    Сергей, спасибо за ликбез!
    Вы как всегда прекрасно объясняете!

  • @valenka68
    @valenka68 Před rokem +1

    Спасибо огромное за Вашу подачу материала. Безумно полезное видео.

  • @NikNewNik
    @NikNewNik Před 5 měsíci +1

    Спасибо большое! Вроде понятно.. Теперь нужно попробовать на практике🙂

  • @Relax-4-Relax
    @Relax-4-Relax Před 11 měsíci +1

    Спасибо дядька все суппер. всегда доходчово

  • @user-sr7iz9yk6p
    @user-sr7iz9yk6p Před 10 měsíci

    Спасибо за урок! Замечательное объяснение темы! Материал разложен по полочкам, теперь мне все стало понятно)

  • @rozoomcool
    @rozoomcool Před 4 měsíci

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

  • @koneri85
    @koneri85 Před 11 měsíci +1

    как же вы просто и доступно объясняете, автор - красавчик просто!

  • @ruzibekov
    @ruzibekov Před 11 měsíci +7

    Дорогой автор видео,
    Хочу выразить вам огромную благодарность за замечательный урок, посвященный изучению Dagger Hilt. Ваше видео действительно помогло мне упростить мою жизнь как разработчику Android.
    Благодаря вашей подробной информации, я теперь полностью понимаю, как настраивать и добавлять Hilt в свои проекты, а также эффективно использовать его в своей работе. Примеры, которые вы привели в Android Studio на языке программирования Kotlin, были очень понятными и информативными.
    Ваш ясный и структурированный подход к объяснению концепций и использованию Hilt действительно помогли мне лучше понять эту тему. Теперь я чувствую себя увереннее в своих навыках разработки Android благодаря вашему видео.
    Еще раз хочу выразить вам искреннюю благодарность за ваше время и усилия, вложенные в создание этого урока. Ваше видео стало для меня ценным ресурсом и помощником в изучении Dagger Hilt.
    С наилучшими пожеланиями,
    Shavkatbek.

  • @user-pt1dp3bk9w
    @user-pt1dp3bk9w Před 7 měsíci

    Спасибо большое за ваши уроки!!!!!

  • @user-xo7uo6qr8y
    @user-xo7uo6qr8y Před 4 měsíci +1

    огонь, огнище. Спасибо за ролик

  • @ohjelmistokehittaja4446
    @ohjelmistokehittaja4446 Před 8 měsíci +2

    Не касался темы уже больше года и двух, и вот выдало видео в рекомендациях. Ну что ж, посмотрел. По моему это лучшее видео по теме на русском языке! Не знаю конечно, может вышли уже другие видео, но то что я видел раньше про DI в ведройде от различных "экспертов", оставляло впечатление, что люди сами не понимают о чем рассказывают, и\или же просто, скорей всего, не умеют это делать. Отличное видео! Спасибо.

  • @nikitapobeda9273
    @nikitapobeda9273 Před rokem +4

    Ура, наконец-то

  • @alextroy605
    @alextroy605 Před 10 měsíci

    Шик объяснение!

  • @landfathich
    @landfathich Před 11 měsíci +1

    Спасибо большое! наконец понял зачем нужен DI, и понял, что это не так страшно и сложно как думал до этого!)

  • @user-xx6nl3ym1h
    @user-xx6nl3ym1h Před 5 měsíci

    Большое спасибо!

  • @pavelgera72
    @pavelgera72 Před rokem +5

    Расскажи про work manager

  • @user-vm4ed4hw5s
    @user-vm4ed4hw5s Před rokem +3

    Супер.

  • @meiram1223
    @meiram1223 Před rokem +1

    смотрим все всю рекламу на канале, чтобы поддержать канал!!!

  • @sfsd9507
    @sfsd9507 Před 11 měsíci +2

    мнеб этот урок месяцев 8 назад) спасибо за труды для будущих поколений) начинающим твоя подача - идеальна.

    • @NecoRuChannel
      @NecoRuChannel  Před 11 měsíci +1

      В тебе спасибо за добрые слова!!

  • @OxidanteRed
    @OxidanteRed Před rokem +3

    Тоже интересно посмотреть про Koin

  • @sahibaliyev2445
    @sahibaliyev2445 Před rokem +3

    Nakonecto pro HILT!!!

  • @user-ui5un2fp2s
    @user-ui5un2fp2s Před 2 měsíci +1

    Класс!

  • @user-nc9ts2eg8g
    @user-nc9ts2eg8g Před rokem +2

    Еее годнота подъехала

  • @dmitry_ruden
    @dmitry_ruden Před rokem +2

    Отличное видео. А по применению аннотации @Binds расскажите в следующих видео? Очень ждем продолжения тем по DI. Все доступно и понятно.

  • @tikhon2185
    @tikhon2185 Před 10 měsíci +1

    топ видео !!!

  • @user-wo6bq7qc7m
    @user-wo6bq7qc7m Před 4 měsíci +1

    Сергей, огромнейшее спасибо, уже несколько лет смотрю твои ролики и постоянно радуюсь твоей подаче материала - всё сразу становится понятно!

    • @NecoRuChannel
      @NecoRuChannel  Před 4 měsíci

      Большое спасибо! Я очень рад!

    • @user-wo6bq7qc7m
      @user-wo6bq7qc7m Před 14 dny

      @AntonLeonka-o4l привет! Да, работаю до сих пор) В целом если изучить соответствующий роадмап по андроид разработке и написать несколько пет проектов с учётом современного стэка (корутины + flow, dagger2 (или hilt), компоуз и т.д.), ну и базу хорошо подтянуть, то в принципе шансы неплохие пройти как минимум на стажировку думаю, единственное вопрос сколько займет поиск - чисто фактор удачи

    • @user-wo6bq7qc7m
      @user-wo6bq7qc7m Před 14 dny

      @AntonLeonka-o4l по поводу курсов - мне очень сильно помогли курсы от Андрея Сумина, по сути они мне и обеспечили попадание на стажировку

  • @aistepan
    @aistepan Před 11 měsíci +1

    большое спасибо

  • @santa6791
    @santa6791 Před rokem +1

    Супер

  • @VladPetrischev
    @VladPetrischev Před rokem +1

    Благодарю

  • @user-rb8ib3vc2h
    @user-rb8ib3vc2h Před měsícem

    спасибо!

  • @nikitapobeda9273
    @nikitapobeda9273 Před rokem +2

    Сергей, расскажите пожалуйста, на практике про пагинацию, цены Вам не будет, точно войдёте в историю программирования на Котлин в русскоязычном сегменте!

  • @andreiantipov6943
    @andreiantipov6943 Před 7 měsíci

    Спасибо большое за разъясненя. Вы очень доступно объяснили. На практике, наверное, есть нюанся? Например, если классы содержат асинхронную логику. Хорошо было бы еще рассмотреть зависимости для случаев когда выполнение тех или иных функций может быть очень долго. Как в этом случае строить зависимости?

  • @user-vx9fn4es6c
    @user-vx9fn4es6c Před 10 měsíci +2

    Со второго раза понял все😁

  • @ikakSlohno
    @ikakSlohno Před 11 měsíci

    Запиши видос о том как проектировать приложение по модели MVVM и подробнее об viewmodel думаю видос будем бомбовый

  • @user-vx9fn4es6c
    @user-vx9fn4es6c Před 11 měsíci

    💥💥💥💥

  • @justspectator9963
    @justspectator9963 Před 11 měsíci +1

    Можно ещё помимо Koin и Dagger (без Hilt) рассмотреть

  • @hashstalker
    @hashstalker Před 7 měsíci

    Круто, но лучше всё сразу делать для Compose.

  • @ultraviolenc3
    @ultraviolenc3 Před 11 měsíci

    На 11:50 вы сделали фикс. Есть ли получше способ с этой ошибкой справиться?

  • @Hayabusa17
    @Hayabusa17 Před 4 měsíci

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

  • @vladimir8892
    @vladimir8892 Před 11 měsíci

    При повторении урока появилось предупреждение компилятора:
    > Task :app:hiltJavaCompileDebug
    Note: D:\Source\Android\DaggerHiltLesson\app\build\generated\hilt\component_sources\debug
    u\com\bulat\daggerhiltlesson\Hilt_App.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Что означает это предупреждение , и можно ли от него избавиться?

  • @programming_amo
    @programming_amo Před rokem +5

    Но я все-таки не понял зачем мне это может пригодится, только для того чтобы не объявлять часть кода? Ну тогда даже не знаю стоит ли оно того, потому что dagger тяжёлая библиотека и у новичков она просто будет лежать боластом чем приносить реальную пользу.

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +2

      Например если захочешь делать «Чистую архитектуру» то без этого ни как. Когда приложение будет расти начнется реальная польза а ты если ее не будешь использовать то когда проект разрастется придется много чего переделывать. Для простых проектов конечно она не обязательно, но знать это нужно, так как придет время когда поймешь что в проекте все так запутано из за зависимостей что будет много ошибок и тяжело будет понять что от чего зависит, с Hilt таких проблем не будет так как ты не будешь беспокоится о зависимостях и как из передать в то или иное Активити или фрагмент, это за тебя сделает Hilt.

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +1

      Ну и при устройстве на работу, везде будут просить знание DI

    • @spam397
      @spam397 Před 11 měsíci +1

      Как начнешь делать свой проект где у тебя будет минимум 7-10 фрагментов и каждый фрагмент будет зависеть от 1-3 классов только тогда поймешь как это удобно

  • @anonimno
    @anonimno Před rokem +1

    Донат ушел! Большое спасибо за видео! У меня вопрос, как быть если надо пересоздать синглтон объект? Ну допустим есть у нас сессия, которая одна везде используется, но иногда бывают моменты, когда её надо пересоздать. Плохой пример, но думаю понятно.

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +1

      Большое спасибо!! Если используешь инстанцию из @Singletone и ее нужно пересоздать то значит сама логика приложения не верна, любую проблему можно решить разными способами. Если нужны разные инстанции то нужно использовать не @Singletone. Возможно сам класс который хочешь пересоздать в нем нужна функция для очистки переменных или еще чего но не пересоздавать всю инстанцию. Тут зависит от конкретного случая.

    • @anonimno
      @anonimno Před 11 měsíci +1

      @@NecoRuChannel понял, спасибо!

  • @CTPEKO3ABPO
    @CTPEKO3ABPO Před 5 měsíci

    Классно, объяснение понятное, спасибо!
    Но я новичок и никак не могу понять, в чём смысл фреймворков для Dependency injection :)) Почему нельзя напрямую передавать везде экземпляры классов, необходимые для других классов? Будет всё наглядно, понятно и даже меньше кода. А фреймворки DI на первый взгляд выглядит как ненужное усложнение.

    • @user-wo6bq7qc7m
      @user-wo6bq7qc7m Před 4 měsíci +1

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

  • @xsufu
    @xsufu Před 11 měsíci

    Вот во многих вакансиях на Android разработчика требуют знание Hilt. А недавно наткнулся на одну вакансию в немаленькой компании, где написано "мы не используем бесполезные библиотеки, как например, Dagger Hilt". Как так получается, что у одних это безусловное требование, а другие считают её бесполезной?

    • @NecoRuChannel
      @NecoRuChannel  Před 11 měsíci +1

      Ну это как и во всем, это у них нужно спросить почему они так говорят. У многих свой стиль написания. Есть и такие что говорят что Котлин им не нужен нужно знание Джава и это в 2023 году для Андроид разработки?? Вобщем у всех свой подход но Hilt это отличная библиотека и ее Google рекомендует для Android.

  • @dothings6646
    @dothings6646 Před 3 měsíci

    Есть ссылка на гитхаб?

  • @asp424
    @asp424 Před 11 měsíci +1

    Нафига хилт, если есть Даггер?

    • @NecoRuChannel
      @NecoRuChannel  Před 11 měsíci

      Dagger он сложный и тяжелый и в небольших проектах только хуже сделаешь. Hilt это Упрощенная версия написанная по верх Dagger

    • @asp424
      @asp424 Před 11 měsíci

      @@NecoRuChannel за то универсальное и не так уж сложножнее

  • @kdnlinker
    @kdnlinker Před rokem +1

    Когда программирование переходит в извращения типа написания кода в аннотациях/комментариях, то значит либо беда в выбранном языке, либо скорее всего кривая архитектура приложения. Сначала придумают паттерн Singletone, потому называют его антиаптерном, потом этот же Singletone переназывают через кучу какой-то ненужной магии, которую можно опустить и просто с умом пользоваться базовыми возможностями без геммороя, всего лишь просто наняв грамотного архитектора.

    • @NecoRuChannel
      @NecoRuChannel  Před rokem

      Если не используешь аннотации в андроид то на работу тебя точно ни где не возьмут. Знание аннотаций для того же Room или Hilt это не кривая архитектура, а твоя обязанность как разработчика андроид. Сейчас везде используется Hilt, Room, Retrofit а в них все на аннотациях

    • @NecoRuChannel
      @NecoRuChannel  Před rokem

      А вот комментарии это верно. Если нужны комментарии для кода значит плохая структура кода или названия классов или функций, так как хороший код должен читаться как книга без комментариев, это слова “Дяди Боба” ))

    • @kdnlinker
      @kdnlinker Před rokem +1

      @@NecoRuChannel Да, я прекрасно понимаю что все эти аннотации на самом деле растут из того, что сообщество плохо продумало общую архитектуру. Сначала придумали синглтон, потом объявили его антипаттерном, но когда поняли что без него никак начали рождаться какие-то монстры, которые по сути синглтон, но чтобы общество не шибко разочаровалось в том, что антипаттерн не совсем антипаттер, поэтому обозвали его registry и т.д. и т.п. потом придумали SPA (single page app) потом когда прилетело от маркетинга начали придумывать всякие history state. Потом из этого рождаются всякие React монстры, которые в итоге перерождаются в чудища, которые пытаются сожрать и переродить в себе всё от js до html/css и вот эти вот все архитектурные грабли, которые придумывают и наворачивают на этот снежный ком из *овна, палок и пылесосных шлангов, очередные кривые костыли. Конечно в конечном итоге когда потрачено столько бабла на маркетинг всего этого добра, то конечно приходится как-то это всё отбивать. Нельзя просто так сказать сообществу: "Стоп парни, мы идём в какую-то *опу, давайте подумаем, возможно вернёмся назад и ещё раз подумаем, а что верной ли дорогой мы пошли", за всем этим стоит бабло и поэтому "фарш не провернуть назад", что печально.

    • @kdnlinker
      @kdnlinker Před rokem +1

      @@NecoRuChannel По мне со стороны разработчика аннотации это тоже самое что комментарии, но с точки зрения маркетинга аннотации выглядят более презентабельно для скрытия проблем с архитектурой приложения. Но это моё субъективное мнение.

  • @oleksandrpohorielov4069
    @oleksandrpohorielov4069 Před 9 měsíci +1

    Возможно у кого будет ошибка
    "When I run app, have this error:
    8 issues were found when checking AAR metadata:..."
    Нужно build.gradle поставить compileSdk 34

  • @chriswaytt6009
    @chriswaytt6009 Před rokem +3

    Спасибо. Хорошее, доступное объяснение, лайк ) единственно пока не понятно почему просто не использовать @Singletone для всего приложения ? не понятно когда и в каких случаях нужно применять @ActivityScoped, @FragmentScoped и тд ? почему не использовать @Singletone и всё ?

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +3

      Если используешь @Singletone то все инстанции занимают память пока не закроешь приложение, вот у тебя допустим письменный стол, если на нем будешь хранить все что когда нибудь возможно используешь то он будет завален , верно? Думаю на письменный стол поможешь то что будешь использовать сейчас и то что используешь часто. Вот тут примерно так же. Зачем захламлять память если тебе нужна инстанция класса только в одном Активити или фрагменте?

    • @NecoRuChannel
      @NecoRuChannel  Před rokem +1

      Допустим у тебя сотня или тысяча классов, все это займет память, много памяти но ты это используешь только в некоторых фрагментах например. Естественно ты захочешь оптимизировать и освобождать память, вот тогда все это и применяешь. Ну а если класс используешь везде, то тогда конечно @Singletone

    • @chriswaytt6009
      @chriswaytt6009 Před 11 měsíci

      @@NecoRuChannel понял спасибо. А это действительно значительно экономит ресурс ? к примеру можно как то посчитать 100 классов Singletone и 100 FragmentScoped ? и понять как то разницу экономии

    • @Polite_person_
      @Polite_person_ Před 11 měsíci +1

      @@NecoRuChannel А в случае с jetapck compose как? Там же всего одно активити, получается мы всегда будем захламлять стол?

    • @spam397
      @spam397 Před 8 měsíci

      @@Polite_person_ Я и с xml делаю приложения всегда с одним активити и остальное только фрагменты, фрагменты весят меньше и работает приложение гораздо быстрее и необходимые init делаю в активити, а фрагменты подтягивают это.