Все про Dagger Hilt в Android Studio + Kotlin
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
Очень жду про Koin урок! Прям с нетерпением. Очень доступно объясняете. Спасибо Вам большое за Ваш труд.
Блин как все просто оказалось, я пытался найти объяснения из раздела для чайников и только больше запутывался в горе много мудрых объяснений, а ларчик просто открывался. Кто-то сказал - ты понимаешь тему если можешь ее объяснить так что бы поняла твоя бабушка. Воистину! Спасибо
Именно! Для быстрого старта самое то, как по мне
Начинаешь понимать, как пользоваться. А уже технические нюансы, как оно изнутри работает и так далее, уже на практике придет
Пушка, бомба. Обнял поднял сенсей
Сергей, можно Вас попросить сделать уроки по темам Broadcast Receiver, Content Provider и по сервисам? Думаю многим начинающим и джуниор разработчикам это было бы интересно.
Да, хорошие темы!
@@NecoRuChannel Я тоже жду, у вас отличная подача.
Только нашел этот канал. Это кладезь знаний для Андроид разработчика! Уважение автору!
Большое спасибо!
Для начинающих разрабов андроид, это самый ТОП канал
Прямо шикарные темы пошли. Огромное спасибо Сергей!
Очень интересно!
Спасибо, Сергей 👍
Благодарю за урок
Спасибо за урок! Рассказано все доступно.
Наконец то🎉, спасибо!!!
Оо, то что надо! Отличный урок, спасибо, Сергей, все понятно)
Спасибо, хороший урок. Понятно и интересно.😊
Спасибо за очередной хороший разбор новой темы) Ждем еще новых тем)
Огромное спасибо, Сергей. Очень полезно!
боже, лучший! супер понятно. Я слышал, существует правило: "Если ты можешь объяснить любую тему 6-летнему ребенку, чтобы он ее понял, значит, ты понимаешь эту тему". И Вы точно понимаете всё, ибо даже 6-летний поймет
))
Вышло, Очень, Очень, КРУТО, долго ждал такой материал !!!
Большое спасибо за урок!!! Все подробно и понятно!
Лайк сейчас, а смотреть уже вечером буду
тоже так делаю =)
Сергей, спасибо за ликбез!
Вы как всегда прекрасно объясняете!
Спасибо огромное за Вашу подачу материала. Безумно полезное видео.
Спасибо большое! Вроде понятно.. Теперь нужно попробовать на практике🙂
Спасибо дядька все суппер. всегда доходчово
Спасибо за урок! Замечательное объяснение темы! Материал разложен по полочкам, теперь мне все стало понятно)
Спасибо, полезный урок
как же вы просто и доступно объясняете, автор - красавчик просто!
Дорогой автор видео,
Хочу выразить вам огромную благодарность за замечательный урок, посвященный изучению Dagger Hilt. Ваше видео действительно помогло мне упростить мою жизнь как разработчику Android.
Благодаря вашей подробной информации, я теперь полностью понимаю, как настраивать и добавлять Hilt в свои проекты, а также эффективно использовать его в своей работе. Примеры, которые вы привели в Android Studio на языке программирования Kotlin, были очень понятными и информативными.
Ваш ясный и структурированный подход к объяснению концепций и использованию Hilt действительно помогли мне лучше понять эту тему. Теперь я чувствую себя увереннее в своих навыках разработки Android благодаря вашему видео.
Еще раз хочу выразить вам искреннюю благодарность за ваше время и усилия, вложенные в создание этого урока. Ваше видео стало для меня ценным ресурсом и помощником в изучении Dagger Hilt.
С наилучшими пожеланиями,
Shavkatbek.
Большое спасибо!
Спасибо большое за ваши уроки!!!!!
огонь, огнище. Спасибо за ролик
Не касался темы уже больше года и двух, и вот выдало видео в рекомендациях. Ну что ж, посмотрел. По моему это лучшее видео по теме на русском языке! Не знаю конечно, может вышли уже другие видео, но то что я видел раньше про DI в ведройде от различных "экспертов", оставляло впечатление, что люди сами не понимают о чем рассказывают, и\или же просто, скорей всего, не умеют это делать. Отличное видео! Спасибо.
Большое спасибо!
Ура, наконец-то
Шик объяснение!
Спасибо большое! наконец понял зачем нужен DI, и понял, что это не так страшно и сложно как думал до этого!)
Большое спасибо!
Расскажи про work manager
Супер.
смотрим все всю рекламу на канале, чтобы поддержать канал!!!
мнеб этот урок месяцев 8 назад) спасибо за труды для будущих поколений) начинающим твоя подача - идеальна.
В тебе спасибо за добрые слова!!
Тоже интересно посмотреть про Koin
Nakonecto pro HILT!!!
Класс!
Еее годнота подъехала
Отличное видео. А по применению аннотации @Binds расскажите в следующих видео? Очень ждем продолжения тем по DI. Все доступно и понятно.
топ видео !!!
Сергей, огромнейшее спасибо, уже несколько лет смотрю твои ролики и постоянно радуюсь твоей подаче материала - всё сразу становится понятно!
Большое спасибо! Я очень рад!
@AntonLeonka-o4l привет! Да, работаю до сих пор) В целом если изучить соответствующий роадмап по андроид разработке и написать несколько пет проектов с учётом современного стэка (корутины + flow, dagger2 (или hilt), компоуз и т.д.), ну и базу хорошо подтянуть, то в принципе шансы неплохие пройти как минимум на стажировку думаю, единственное вопрос сколько займет поиск - чисто фактор удачи
@AntonLeonka-o4l по поводу курсов - мне очень сильно помогли курсы от Андрея Сумина, по сути они мне и обеспечили попадание на стажировку
большое спасибо
Супер
Благодарю
спасибо!
Сергей, расскажите пожалуйста, на практике про пагинацию, цены Вам не будет, точно войдёте в историю программирования на Котлин в русскоязычном сегменте!
Спасибо большое за разъясненя. Вы очень доступно объяснили. На практике, наверное, есть нюанся? Например, если классы содержат асинхронную логику. Хорошо было бы еще рассмотреть зависимости для случаев когда выполнение тех или иных функций может быть очень долго. Как в этом случае строить зависимости?
Со второго раза понял все😁
Запиши видос о том как проектировать приложение по модели MVVM и подробнее об viewmodel думаю видос будем бомбовый
💥💥💥💥
Можно ещё помимо Koin и Dagger (без Hilt) рассмотреть
Круто, но лучше всё сразу делать для Compose.
На 11:50 вы сделали фикс. Есть ли получше способ с этой ошибкой справиться?
можно ли всю логику писать сразу в функциях модуля? чтоб не переписывать код, и держать все в одном месте
При повторении урока появилось предупреждение компилятора:
> 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.
Что означает это предупреждение , и можно ли от него избавиться?
Но я все-таки не понял зачем мне это может пригодится, только для того чтобы не объявлять часть кода? Ну тогда даже не знаю стоит ли оно того, потому что dagger тяжёлая библиотека и у новичков она просто будет лежать боластом чем приносить реальную пользу.
Например если захочешь делать «Чистую архитектуру» то без этого ни как. Когда приложение будет расти начнется реальная польза а ты если ее не будешь использовать то когда проект разрастется придется много чего переделывать. Для простых проектов конечно она не обязательно, но знать это нужно, так как придет время когда поймешь что в проекте все так запутано из за зависимостей что будет много ошибок и тяжело будет понять что от чего зависит, с Hilt таких проблем не будет так как ты не будешь беспокоится о зависимостях и как из передать в то или иное Активити или фрагмент, это за тебя сделает Hilt.
Ну и при устройстве на работу, везде будут просить знание DI
Как начнешь делать свой проект где у тебя будет минимум 7-10 фрагментов и каждый фрагмент будет зависеть от 1-3 классов только тогда поймешь как это удобно
Донат ушел! Большое спасибо за видео! У меня вопрос, как быть если надо пересоздать синглтон объект? Ну допустим есть у нас сессия, которая одна везде используется, но иногда бывают моменты, когда её надо пересоздать. Плохой пример, но думаю понятно.
Большое спасибо!! Если используешь инстанцию из @Singletone и ее нужно пересоздать то значит сама логика приложения не верна, любую проблему можно решить разными способами. Если нужны разные инстанции то нужно использовать не @Singletone. Возможно сам класс который хочешь пересоздать в нем нужна функция для очистки переменных или еще чего но не пересоздавать всю инстанцию. Тут зависит от конкретного случая.
@@NecoRuChannel понял, спасибо!
Классно, объяснение понятное, спасибо!
Но я новичок и никак не могу понять, в чём смысл фреймворков для Dependency injection :)) Почему нельзя напрямую передавать везде экземпляры классов, необходимые для других классов? Будет всё наглядно, понятно и даже меньше кода. А фреймворки DI на первый взгляд выглядит как ненужное усложнение.
Фреймворки в частности помогают отдельно в модулях генерить инстанцы необходимые и сразу их инжектить в конструктор или поля класса. Это делается чтобы у тебя не было, что какое-нибудь активити например внутри себя создает кучу экземпляров просто чтобы передать куда-то и получается само зависит от этих экземпляров)
Вот во многих вакансиях на Android разработчика требуют знание Hilt. А недавно наткнулся на одну вакансию в немаленькой компании, где написано "мы не используем бесполезные библиотеки, как например, Dagger Hilt". Как так получается, что у одних это безусловное требование, а другие считают её бесполезной?
Ну это как и во всем, это у них нужно спросить почему они так говорят. У многих свой стиль написания. Есть и такие что говорят что Котлин им не нужен нужно знание Джава и это в 2023 году для Андроид разработки?? Вобщем у всех свой подход но Hilt это отличная библиотека и ее Google рекомендует для Android.
Есть ссылка на гитхаб?
Нафига хилт, если есть Даггер?
Dagger он сложный и тяжелый и в небольших проектах только хуже сделаешь. Hilt это Упрощенная версия написанная по верх Dagger
@@NecoRuChannel за то универсальное и не так уж сложножнее
Когда программирование переходит в извращения типа написания кода в аннотациях/комментариях, то значит либо беда в выбранном языке, либо скорее всего кривая архитектура приложения. Сначала придумают паттерн Singletone, потому называют его антиаптерном, потом этот же Singletone переназывают через кучу какой-то ненужной магии, которую можно опустить и просто с умом пользоваться базовыми возможностями без геммороя, всего лишь просто наняв грамотного архитектора.
Если не используешь аннотации в андроид то на работу тебя точно ни где не возьмут. Знание аннотаций для того же Room или Hilt это не кривая архитектура, а твоя обязанность как разработчика андроид. Сейчас везде используется Hilt, Room, Retrofit а в них все на аннотациях
А вот комментарии это верно. Если нужны комментарии для кода значит плохая структура кода или названия классов или функций, так как хороший код должен читаться как книга без комментариев, это слова “Дяди Боба” ))
@@NecoRuChannel Да, я прекрасно понимаю что все эти аннотации на самом деле растут из того, что сообщество плохо продумало общую архитектуру. Сначала придумали синглтон, потом объявили его антипаттерном, но когда поняли что без него никак начали рождаться какие-то монстры, которые по сути синглтон, но чтобы общество не шибко разочаровалось в том, что антипаттерн не совсем антипаттер, поэтому обозвали его registry и т.д. и т.п. потом придумали SPA (single page app) потом когда прилетело от маркетинга начали придумывать всякие history state. Потом из этого рождаются всякие React монстры, которые в итоге перерождаются в чудища, которые пытаются сожрать и переродить в себе всё от js до html/css и вот эти вот все архитектурные грабли, которые придумывают и наворачивают на этот снежный ком из *овна, палок и пылесосных шлангов, очередные кривые костыли. Конечно в конечном итоге когда потрачено столько бабла на маркетинг всего этого добра, то конечно приходится как-то это всё отбивать. Нельзя просто так сказать сообществу: "Стоп парни, мы идём в какую-то *опу, давайте подумаем, возможно вернёмся назад и ещё раз подумаем, а что верной ли дорогой мы пошли", за всем этим стоит бабло и поэтому "фарш не провернуть назад", что печально.
@@NecoRuChannel По мне со стороны разработчика аннотации это тоже самое что комментарии, но с точки зрения маркетинга аннотации выглядят более презентабельно для скрытия проблем с архитектурой приложения. Но это моё субъективное мнение.
Возможно у кого будет ошибка
"When I run app, have this error:
8 issues were found when checking AAR metadata:..."
Нужно build.gradle поставить compileSdk 34
Спасибо. Хорошее, доступное объяснение, лайк ) единственно пока не понятно почему просто не использовать @Singletone для всего приложения ? не понятно когда и в каких случаях нужно применять @ActivityScoped, @FragmentScoped и тд ? почему не использовать @Singletone и всё ?
Если используешь @Singletone то все инстанции занимают память пока не закроешь приложение, вот у тебя допустим письменный стол, если на нем будешь хранить все что когда нибудь возможно используешь то он будет завален , верно? Думаю на письменный стол поможешь то что будешь использовать сейчас и то что используешь часто. Вот тут примерно так же. Зачем захламлять память если тебе нужна инстанция класса только в одном Активити или фрагменте?
Допустим у тебя сотня или тысяча классов, все это займет память, много памяти но ты это используешь только в некоторых фрагментах например. Естественно ты захочешь оптимизировать и освобождать память, вот тогда все это и применяешь. Ну а если класс используешь везде, то тогда конечно @Singletone
@@NecoRuChannel понял спасибо. А это действительно значительно экономит ресурс ? к примеру можно как то посчитать 100 классов Singletone и 100 FragmentScoped ? и понять как то разницу экономии
@@NecoRuChannel А в случае с jetapck compose как? Там же всего одно активити, получается мы всегда будем захламлять стол?
@@Polite_person_ Я и с xml делаю приложения всегда с одним активити и остальное только фрагменты, фрагменты весят меньше и работает приложение гораздо быстрее и необходимые init делаю в активити, а фрагменты подтягивают это.