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

  Переглядів 9,799

Neco Ru

Neco Ru

День тому

На этом уроке изучаем подробно 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

КОМЕНТАРІ: 94
@Prol93
@Prol93 10 місяців тому
Очень жду про Koin урок! Прям с нетерпением. Очень доступно объясняете. Спасибо Вам большое за Ваш труд.
@herrmannelig3325
@herrmannelig3325 9 місяців тому
Сергей, можно Вас попросить сделать уроки по темам Broadcast Receiver, Content Provider и по сервисам? Думаю многим начинающим и джуниор разработчикам это было бы интересно.
@NecoRuChannel
@NecoRuChannel 9 місяців тому
Да, хорошие темы!
@Polite_person_
@Polite_person_ 9 місяців тому
@@NecoRuChannel Я тоже жду, у вас отличная подача.
@BigAwl14
@BigAwl14 9 місяців тому
Блин как все просто оказалось, я пытался найти объяснения из раздела для чайников и только больше запутывался в горе много мудрых объяснений, а ларчик просто открывался. Кто-то сказал - ты понимаешь тему если можешь ее объяснить так что бы поняла твоя бабушка. Воистину! Спасибо
@sovaz1997
@sovaz1997 5 місяців тому
Именно! Для быстрого старта самое то, как по мне Начинаешь понимать, как пользоваться. А уже технические нюансы, как оно изнутри работает и так далее, уже на практике придет
@scheissed
@scheissed 10 місяців тому
Только нашел этот канал. Это кладезь знаний для Андроид разработчика! Уважение автору!
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Большое спасибо!
@spam397
@spam397 9 місяців тому
Для начинающих разрабов андроид, это самый ТОП канал
@alextroy605
@alextroy605 8 місяців тому
Шик объяснение!
@pavelgera72
@pavelgera72 10 місяців тому
Благодарю за урок
@Lucky_Mirror
@Lucky_Mirror 10 місяців тому
Очень интересно! Спасибо, Сергей 👍
@herrmannelig3325
@herrmannelig3325 10 місяців тому
Прямо шикарные темы пошли. Огромное спасибо Сергей!
@cheguevara6002
@cheguevara6002 9 місяців тому
Спасибо за очередной хороший разбор новой темы) Ждем еще новых тем)
@friday7510
@friday7510 10 місяців тому
Пушка, бомба. Обнял поднял сенсей
@user-wo6bq7qc7m
@user-wo6bq7qc7m 10 місяців тому
Оо, то что надо! Отличный урок, спасибо, Сергей, все понятно)
@kinohometv1985
@kinohometv1985 10 місяців тому
Наконец то🎉, спасибо!!!
@InvincibleXXX
@InvincibleXXX 7 місяців тому
Огромное спасибо, Сергей. Очень полезно!
@koneri85
@koneri85 9 місяців тому
как же вы просто и доступно объясняете, автор - красавчик просто!
@user-pt1dp3bk9w
@user-pt1dp3bk9w 5 місяців тому
Спасибо большое за ваши уроки!!!!!
@user-ws2sm8el1d
@user-ws2sm8el1d 9 місяців тому
Спасибо за урок! Рассказано все доступно.
@NikNewNik
@NikNewNik 3 місяці тому
Спасибо большое! Вроде понятно.. Теперь нужно попробовать на практике🙂
@user-xo7uo6qr8y
@user-xo7uo6qr8y 2 місяці тому
огонь, огнище. Спасибо за ролик
@spam397
@spam397 9 місяців тому
Вышло, Очень, Очень, КРУТО, долго ждал такой материал !!!
@ramilkaming8864
@ramilkaming8864 9 місяців тому
Сергей, спасибо за ликбез! Вы как всегда прекрасно объясняете!
@rozoomcool
@rozoomcool 2 місяці тому
Спасибо, полезный урок
@user-we6si4mi3x
@user-we6si4mi3x Місяць тому
Большое спасибо за урок!!! Все подробно и понятно!
@user-xx6nl3ym1h
@user-xx6nl3ym1h 3 місяці тому
Большое спасибо!
@user-nb8op7ir4i
@user-nb8op7ir4i 10 місяців тому
Спасибо, хороший урок. Понятно и интересно.😊
@mousewhite245
@mousewhite245 10 місяців тому
Лайк сейчас, а смотреть уже вечером буду
@spam397
@spam397 9 місяців тому
тоже так делаю =)
@nikitapobeda9273
@nikitapobeda9273 10 місяців тому
Ура, наконец-то
@aistepan
@aistepan 9 місяців тому
большое спасибо
@valenka68
@valenka68 9 місяців тому
Спасибо огромное за Вашу подачу материала. Безумно полезное видео.
@ruzibekov
@ruzibekov 9 місяців тому
Дорогой автор видео, Хочу выразить вам огромную благодарность за замечательный урок, посвященный изучению Dagger Hilt. Ваше видео действительно помогло мне упростить мою жизнь как разработчику Android. Благодаря вашей подробной информации, я теперь полностью понимаю, как настраивать и добавлять Hilt в свои проекты, а также эффективно использовать его в своей работе. Примеры, которые вы привели в Android Studio на языке программирования Kotlin, были очень понятными и информативными. Ваш ясный и структурированный подход к объяснению концепций и использованию Hilt действительно помогли мне лучше понять эту тему. Теперь я чувствую себя увереннее в своих навыках разработки Android благодаря вашему видео. Еще раз хочу выразить вам искреннюю благодарность за ваше время и усилия, вложенные в создание этого урока. Ваше видео стало для меня ценным ресурсом и помощником в изучении Dagger Hilt. С наилучшими пожеланиями, Shavkatbek.
@NecoRuChannel
@NecoRuChannel 9 місяців тому
Большое спасибо!
@Relax-4-Relax
@Relax-4-Relax 9 місяців тому
Спасибо дядька все суппер. всегда доходчово
@user-vm4ed4hw5s
@user-vm4ed4hw5s 10 місяців тому
Супер.
@tikhon2185
@tikhon2185 8 місяців тому
топ видео !!!
@pavelgera72
@pavelgera72 10 місяців тому
Расскажи про work manager
@user-sr7iz9yk6p
@user-sr7iz9yk6p 7 місяців тому
Спасибо за урок! Замечательное объяснение темы! Материал разложен по полочкам, теперь мне все стало понятно)
@OxidanteRed
@OxidanteRed 10 місяців тому
Тоже интересно посмотреть про Koin
@user-wo6bq7qc7m
@user-wo6bq7qc7m 2 місяці тому
Сергей, огромнейшее спасибо, уже несколько лет смотрю твои ролики и постоянно радуюсь твоей подаче материала - всё сразу становится понятно!
@NecoRuChannel
@NecoRuChannel 2 місяці тому
Большое спасибо! Я очень рад!
@sahibaliyev2445
@sahibaliyev2445 10 місяців тому
Nakonecto pro HILT!!!
@landfathich
@landfathich 9 місяців тому
Спасибо большое! наконец понял зачем нужен DI, и понял, что это не так страшно и сложно как думал до этого!)
@user-nc9ts2eg8g
@user-nc9ts2eg8g 10 місяців тому
Еее годнота подъехала
@user-ui5un2fp2s
@user-ui5un2fp2s 5 днів тому
Класс!
@user-gj5rj2ig6i
@user-gj5rj2ig6i 3 місяці тому
боже, лучший! супер понятно. Я слышал, существует правило: "Если ты можешь объяснить любую тему 6-летнему ребенку, чтобы он ее понял, значит, ты понимаешь эту тему". И Вы точно понимаете всё, ибо даже 6-летний поймет ))
@VladPetrischev
@VladPetrischev 10 місяців тому
Благодарю
@santa6791
@santa6791 10 місяців тому
Супер
@ohjelmistokehittaja4446
@ohjelmistokehittaja4446 6 місяців тому
Не касался темы уже больше года и двух, и вот выдало видео в рекомендациях. Ну что ж, посмотрел. По моему это лучшее видео по теме на русском языке! Не знаю конечно, может вышли уже другие видео, но то что я видел раньше про DI в ведройде от различных "экспертов", оставляло впечатление, что люди сами не понимают о чем рассказывают, и\или же просто, скорей всего, не умеют это делать. Отличное видео! Спасибо.
@NecoRuChannel
@NecoRuChannel 6 місяців тому
Большое спасибо!
@dmitry_ruden
@dmitry_ruden 9 місяців тому
Отличное видео. А по применению аннотации @Binds расскажите в следующих видео? Очень ждем продолжения тем по DI. Все доступно и понятно.
@sfsd9507
@sfsd9507 9 місяців тому
мнеб этот урок месяцев 8 назад) спасибо за труды для будущих поколений) начинающим твоя подача - идеальна.
@NecoRuChannel
@NecoRuChannel 9 місяців тому
В тебе спасибо за добрые слова!!
@user-vx9fn4es6c
@user-vx9fn4es6c 8 місяців тому
Со второго раза понял все😁
@meiram1223
@meiram1223 10 місяців тому
смотрим все всю рекламу на канале, чтобы поддержать канал!!!
@user-vx9fn4es6c
@user-vx9fn4es6c 9 місяців тому
💥💥💥💥
@nikitapobeda9273
@nikitapobeda9273 10 місяців тому
Сергей, расскажите пожалуйста, на практике про пагинацию, цены Вам не будет, точно войдёте в историю программирования на Котлин в русскоязычном сегменте!
@andreiantipov6943
@andreiantipov6943 5 місяців тому
Спасибо большое за разъясненя. Вы очень доступно объяснили. На практике, наверное, есть нюанся? Например, если классы содержат асинхронную логику. Хорошо было бы еще рассмотреть зависимости для случаев когда выполнение тех или иных функций может быть очень долго. Как в этом случае строить зависимости?
@ikakSlohno
@ikakSlohno 9 місяців тому
Запиши видос о том как проектировать приложение по модели MVVM и подробнее об viewmodel думаю видос будем бомбовый
@justspectator9963
@justspectator9963 9 місяців тому
Можно ещё помимо Koin и Dagger (без Hilt) рассмотреть
@hashstalker
@hashstalker 5 місяців тому
Круто, но лучше всё сразу делать для Compose.
@ultraviolenc3
@ultraviolenc3 9 місяців тому
На 11:50 вы сделали фикс. Есть ли получше способ с этой ошибкой справиться?
@vladimir8892
@vladimir8892 9 місяців тому
При повторении урока появилось предупреждение компилятора: > 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. Что означает это предупреждение , и можно ли от него избавиться?
@Hayabusa17
@Hayabusa17 2 місяці тому
можно ли всю логику писать сразу в функциях модуля? чтоб не переписывать код, и держать все в одном месте
@dothings6646
@dothings6646 Місяць тому
Есть ссылка на гитхаб?
@anonimno
@anonimno 10 місяців тому
Донат ушел! Большое спасибо за видео! У меня вопрос, как быть если надо пересоздать синглтон объект? Ну допустим есть у нас сессия, которая одна везде используется, но иногда бывают моменты, когда её надо пересоздать. Плохой пример, но думаю понятно.
@NecoRuChannel
@NecoRuChannel 9 місяців тому
Большое спасибо!! Если используешь инстанцию из @Singletone и ее нужно пересоздать то значит сама логика приложения не верна, любую проблему можно решить разными способами. Если нужны разные инстанции то нужно использовать не @Singletone. Возможно сам класс который хочешь пересоздать в нем нужна функция для очистки переменных или еще чего но не пересоздавать всю инстанцию. Тут зависит от конкретного случая.
@anonimno
@anonimno 9 місяців тому
@@NecoRuChannel понял, спасибо!
@CTPEKO3ABPO
@CTPEKO3ABPO 3 місяці тому
Классно, объяснение понятное, спасибо! Но я новичок и никак не могу понять, в чём смысл фреймворков для Dependency injection :)) Почему нельзя напрямую передавать везде экземпляры классов, необходимые для других классов? Будет всё наглядно, понятно и даже меньше кода. А фреймворки DI на первый взгляд выглядит как ненужное усложнение.
@user-wo6bq7qc7m
@user-wo6bq7qc7m 2 місяці тому
Фреймворки в частности помогают отдельно в модулях генерить инстанцы необходимые и сразу их инжектить в конструктор или поля класса. Это делается чтобы у тебя не было, что какое-нибудь активити например внутри себя создает кучу экземпляров просто чтобы передать куда-то и получается само зависит от этих экземпляров)
@programming_amo
@programming_amo 10 місяців тому
Но я все-таки не понял зачем мне это может пригодится, только для того чтобы не объявлять часть кода? Ну тогда даже не знаю стоит ли оно того, потому что dagger тяжёлая библиотека и у новичков она просто будет лежать боластом чем приносить реальную пользу.
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Например если захочешь делать «Чистую архитектуру» то без этого ни как. Когда приложение будет расти начнется реальная польза а ты если ее не будешь использовать то когда проект разрастется придется много чего переделывать. Для простых проектов конечно она не обязательно, но знать это нужно, так как придет время когда поймешь что в проекте все так запутано из за зависимостей что будет много ошибок и тяжело будет понять что от чего зависит, с Hilt таких проблем не будет так как ты не будешь беспокоится о зависимостях и как из передать в то или иное Активити или фрагмент, это за тебя сделает Hilt.
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Ну и при устройстве на работу, везде будут просить знание DI
@spam397
@spam397 9 місяців тому
Как начнешь делать свой проект где у тебя будет минимум 7-10 фрагментов и каждый фрагмент будет зависеть от 1-3 классов только тогда поймешь как это удобно
@xsufu
@xsufu 9 місяців тому
Вот во многих вакансиях на Android разработчика требуют знание Hilt. А недавно наткнулся на одну вакансию в немаленькой компании, где написано "мы не используем бесполезные библиотеки, как например, Dagger Hilt". Как так получается, что у одних это безусловное требование, а другие считают её бесполезной?
@NecoRuChannel
@NecoRuChannel 9 місяців тому
Ну это как и во всем, это у них нужно спросить почему они так говорят. У многих свой стиль написания. Есть и такие что говорят что Котлин им не нужен нужно знание Джава и это в 2023 году для Андроид разработки?? Вобщем у всех свой подход но Hilt это отличная библиотека и ее Google рекомендует для Android.
@asp424
@asp424 9 місяців тому
Нафига хилт, если есть Даггер?
@NecoRuChannel
@NecoRuChannel 9 місяців тому
Dagger он сложный и тяжелый и в небольших проектах только хуже сделаешь. Hilt это Упрощенная версия написанная по верх Dagger
@asp424
@asp424 9 місяців тому
@@NecoRuChannel за то универсальное и не так уж сложножнее
@kdnlinker
@kdnlinker 10 місяців тому
Когда программирование переходит в извращения типа написания кода в аннотациях/комментариях, то значит либо беда в выбранном языке, либо скорее всего кривая архитектура приложения. Сначала придумают паттерн Singletone, потому называют его антиаптерном, потом этот же Singletone переназывают через кучу какой-то ненужной магии, которую можно опустить и просто с умом пользоваться базовыми возможностями без геммороя, всего лишь просто наняв грамотного архитектора.
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Если не используешь аннотации в андроид то на работу тебя точно ни где не возьмут. Знание аннотаций для того же Room или Hilt это не кривая архитектура, а твоя обязанность как разработчика андроид. Сейчас везде используется Hilt, Room, Retrofit а в них все на аннотациях
@NecoRuChannel
@NecoRuChannel 10 місяців тому
А вот комментарии это верно. Если нужны комментарии для кода значит плохая структура кода или названия классов или функций, так как хороший код должен читаться как книга без комментариев, это слова “Дяди Боба” ))
@kdnlinker
@kdnlinker 10 місяців тому
@@NecoRuChannel Да, я прекрасно понимаю что все эти аннотации на самом деле растут из того, что сообщество плохо продумало общую архитектуру. Сначала придумали синглтон, потом объявили его антипаттерном, но когда поняли что без него никак начали рождаться какие-то монстры, которые по сути синглтон, но чтобы общество не шибко разочаровалось в том, что антипаттерн не совсем антипаттер, поэтому обозвали его registry и т.д. и т.п. потом придумали SPA (single page app) потом когда прилетело от маркетинга начали придумывать всякие history state. Потом из этого рождаются всякие React монстры, которые в итоге перерождаются в чудища, которые пытаются сожрать и переродить в себе всё от js до html/css и вот эти вот все архитектурные грабли, которые придумывают и наворачивают на этот снежный ком из *овна, палок и пылесосных шлангов, очередные кривые костыли. Конечно в конечном итоге когда потрачено столько бабла на маркетинг всего этого добра, то конечно приходится как-то это всё отбивать. Нельзя просто так сказать сообществу: "Стоп парни, мы идём в какую-то *опу, давайте подумаем, возможно вернёмся назад и ещё раз подумаем, а что верной ли дорогой мы пошли", за всем этим стоит бабло и поэтому "фарш не провернуть назад", что печально.
@kdnlinker
@kdnlinker 10 місяців тому
@@NecoRuChannel По мне со стороны разработчика аннотации это тоже самое что комментарии, но с точки зрения маркетинга аннотации выглядят более презентабельно для скрытия проблем с архитектурой приложения. Но это моё субъективное мнение.
@oleksandrpohorielov4069
@oleksandrpohorielov4069 7 місяців тому
Возможно у кого будет ошибка "When I run app, have this error: 8 issues were found when checking AAR metadata:..." Нужно build.gradle поставить compileSdk 34
@chriswaytt6009
@chriswaytt6009 10 місяців тому
Спасибо. Хорошее, доступное объяснение, лайк ) единственно пока не понятно почему просто не использовать @Singletone для всего приложения ? не понятно когда и в каких случаях нужно применять @ActivityScoped, @FragmentScoped и тд ? почему не использовать @Singletone и всё ?
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Если используешь @Singletone то все инстанции занимают память пока не закроешь приложение, вот у тебя допустим письменный стол, если на нем будешь хранить все что когда нибудь возможно используешь то он будет завален , верно? Думаю на письменный стол поможешь то что будешь использовать сейчас и то что используешь часто. Вот тут примерно так же. Зачем захламлять память если тебе нужна инстанция класса только в одном Активити или фрагменте?
@NecoRuChannel
@NecoRuChannel 10 місяців тому
Допустим у тебя сотня или тысяча классов, все это займет память, много памяти но ты это используешь только в некоторых фрагментах например. Естественно ты захочешь оптимизировать и освобождать память, вот тогда все это и применяешь. Ну а если класс используешь везде, то тогда конечно @Singletone
@chriswaytt6009
@chriswaytt6009 9 місяців тому
@@NecoRuChannel понял спасибо. А это действительно значительно экономит ресурс ? к примеру можно как то посчитать 100 классов Singletone и 100 FragmentScoped ? и понять как то разницу экономии
@Polite_person_
@Polite_person_ 9 місяців тому
@@NecoRuChannel А в случае с jetapck compose как? Там же всего одно активити, получается мы всегда будем захламлять стол?
@spam397
@spam397 6 місяців тому
@@Polite_person_ Я и с xml делаю приложения всегда с одним активити и остальное только фрагменты, фрагменты весят меньше и работает приложение гораздо быстрее и необходимые init делаю в активити, а фрагменты подтягивают это.
5 Полезных плагинов для Android Studio
7:40
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Переглядів 14 млн
Эффект Карбонаро и пончики
01:01
История одного вокалиста
Переглядів 5 млн
1 класс vs 11 класс (рисунок)
00:37
БЕРТ
Переглядів 4,1 млн
Hilt - лёгкий старт в Dagger
32:26
Android Broadcast. Все об Андроид разработке
Переглядів 14 тис.
Форекс - обзор 6 мая  2024
15:01
Академия Трейдинга и Инвестиций
Переглядів 100
THIS Compose-State Mistake Leads to Problems In Your Code
7:58
Philipp Lackner
Переглядів 35 тис.
Zoom Meeting Android_1 GeekTech
1:40:50
Android_1 GeekTech
Переглядів 89
Koin в Android на практике c MVVM
28:08
Тимофей Коваленко (Android teacher)
Переглядів 21 тис.
Dagger в Android на практике с MVVM
32:41
Тимофей Коваленко (Android teacher)
Переглядів 16 тис.
DataStore в Jetpack Compose | Android Studio
30:19
Neco Ru
Переглядів 5 тис.
Full Guide to Nested Navigation Graphs in Jetpack Compose
12:01
Philipp Lackner
Переглядів 52 тис.
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Переглядів 14 млн