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

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ • 104

  • @Prol93
    @Prol93 Рік тому +15

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

  • @BigAwl14
    @BigAwl14 Рік тому +12

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

    • @sovaz1997
      @sovaz1997 Рік тому

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

  • @ruzibekov
    @ruzibekov Рік тому +8

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

  • @АлександрНазаров-в2э9н
    @АлександрНазаров-в2э9н 11 місяців тому +1

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

    • @NecoRuChannel
      @NecoRuChannel  11 місяців тому

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

    • @АлександрНазаров-в2э9н
      @АлександрНазаров-в2э9н 7 місяців тому

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

    • @АлександрНазаров-в2э9н
      @АлександрНазаров-в2э9н 7 місяців тому

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

  • @scheissed
    @scheissed Рік тому +6

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

    • @spam397
      @spam397 Рік тому

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

  • @herrmannelig3325
    @herrmannelig3325 Рік тому +7

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

  • @me_kato
    @me_kato Рік тому +1

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

  • @friday7510
    @friday7510 Рік тому +6

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

  • @sfsd9507
    @sfsd9507 Рік тому +2

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

  • @spam397
    @spam397 Рік тому +2

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

  • @kinohometv1985
    @kinohometv1985 Рік тому +4

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

  • @АлександрНазаров-в2э9н

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

  • @mousewhite245
    @mousewhite245 Рік тому +4

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

    • @spam397
      @spam397 Рік тому

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

  • @NikNewNik
    @NikNewNik Рік тому +1

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

  • @ОлегПростоОлег-к9в

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

  • @landfathich
    @landfathich Рік тому +1

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

  • @nikitapobeda9273
    @nikitapobeda9273 Рік тому +4

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

  • @PavelStr-x5w
    @PavelStr-x5w 10 місяців тому +1

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

  • @barrywhite5274
    @barrywhite5274 6 місяців тому +2

    Бесконечно благодарен!

  • @ohjelmistokehittaja4446
    @ohjelmistokehittaja4446 Рік тому +2

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

  • @herrmannelig3325
    @herrmannelig3325 Рік тому +16

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

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

    • @Polite_person_
      @Polite_person_ Рік тому

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

  • @cheguevara6002
    @cheguevara6002 Рік тому +2

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

  • @pavelgera72
    @pavelgera72 Рік тому +3

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

  • @ramilkaming8864
    @ramilkaming8864 Рік тому +1

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

  • @InvincibleXXX
    @InvincibleXXX Рік тому +1

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

  • @Lucky_Mirror
    @Lucky_Mirror Рік тому +1

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

  • @dmitry_ruden
    @dmitry_ruden Рік тому +2

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

  • @valenka68
    @valenka68 Рік тому +1

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

  • @meiram1223
    @meiram1223 Рік тому +1

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

  • @ЕкатеринаРыкова-ь7ч

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

  • @Relax-4-Relax
    @Relax-4-Relax Рік тому +1

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

  • @Dont_Look_Away_tv
    @Dont_Look_Away_tv Рік тому +3

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

  • @Павел-г3е5х
    @Павел-г3е5х Рік тому +3

    Супер.

  • @АлександрЯнчеленко
    @АлександрЯнчеленко 11 місяців тому +1

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

  • @ГеоргийШевченко-щ2п

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

  • @LuckyDoter
    @LuckyDoter Рік тому +2

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

  • @ИннаФамилия-ы5ш

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

  • @pavelgera72
    @pavelgera72 Рік тому +5

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

  • @tikhon2185
    @tikhon2185 Рік тому +1

    топ видео !!!

  • @Des-n4k
    @Des-n4k 9 місяців тому +1

    Класс!

  • @alextroy605
    @alextroy605 Рік тому

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

  • @rozoomcool
    @rozoomcool 11 місяців тому

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

  • @СветланаШкурай-х3й

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

  • @АнастасияБелая-р5ь

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

  • @drop1893
    @drop1893 6 місяців тому

    Спасибо 🙏💕

  • @andreiantipov6943
    @andreiantipov6943 Рік тому

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

  • @sahibaliyev2445
    @sahibaliyev2445 Рік тому +3

    Nakonecto pro HILT!!!

  • @Евгений-ч3и2ы
    @Евгений-ч3и2ы Рік тому +2

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

  • @nikitapobeda9273
    @nikitapobeda9273 Рік тому +2

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

  • @santa6791
    @santa6791 Рік тому +1

    Супер

  • @ikakSlohno
    @ikakSlohno Рік тому

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

  • @aistepan
    @aistepan Рік тому +1

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

  • @VladPetrischev
    @VladPetrischev Рік тому +1

    Благодарю

  • @ultraviolenc3
    @ultraviolenc3 Рік тому

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

  • @ГеоргийДмитриевич-ш3ы

    здравствуйте!
    есть ли возможность узнать, какая версия android studio используется в видео?

    • @NecoRuChannel
      @NecoRuChannel  15 днів тому

      @@ГеоргийДмитриевич-ш3ы Если память мне не изменяет то это был «Электрический скат» )) но версия АС тут без разницы

    • @ГеоргийДмитриевич-ш3ы
      @ГеоргийДмитриевич-ш3ы 11 днів тому +1

      @@NecoRuChannel я никак не мог настроить dagger hilt как на видео, постоянно были ошибки, решаешь одну ошибку - вываливается несколько других, и т.д. 2 вечера просидел промучался. потом решил установить ту же версию АS как у вас. на электрическом скате не получилось, все-таки была другая версия. все заработало на Android Studio Flamingo | 2022.2.1 - инфа для других, у кого будут те же проблемы

    • @NecoRuChannel
      @NecoRuChannel  11 днів тому

      @ Тут дело не в версии андроид Студио а в совместимости версий. В данном случае если хочешь тоже самое на новой версии АС использовать Hilt то и версии нужно ставить совместимые а именно смотри внимательно какая версия самого Котлина у тебя. Если у тебя допустим Котлин 2.1.0 (самая свежая) то и Hilt нужно ставить самый свежий и уже использовать ksp вместо kapt если ставишь версии как у меня то и версию Котлина ставь как у меня

    • @ГеоргийДмитриевич-ш3ы
      @ГеоргийДмитриевич-ш3ы 11 днів тому +1

      @@NecoRuChannel я использовал более старую версию (2021г). настройки gradle делал полностью как у вас и оно не работало. далее начал играться с версиями gradle, kotlin, hilt, javaVersion и всё равно ничего не получалось, пока не установил такую же AS... возможно можно было бы еще посидеть и поискать совместимые версии на момент выхода моей AS 2021г, но оказалось проще сразу установить ту же версию)

    • @NecoRuChannel
      @NecoRuChannel  11 днів тому

      @ да, понимаю, но нужно учиться работать с новыми версиями иначе остановишься на этой версии и дальше все равно придется искать решение. Я это исправлю, запишу видео как настроить Hilt в новых версиях АС и постараюсь все подробно объяснить

  • @vladimir8892
    @vladimir8892 Рік тому

    При повторении урока появилось предупреждение компилятора:
    > 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 11 місяців тому

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

  • @Евгений-ч3и2ы
    @Евгений-ч3и2ы Рік тому

    💥💥💥💥

  • @programming_amo
    @programming_amo Рік тому +5

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +2

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

    • @spam397
      @spam397 Рік тому +1

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

  • @hashstalker
    @hashstalker Рік тому

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

  • @xsufu
    @xsufu Рік тому

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

  • @anonimno
    @anonimno Рік тому +1

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

    • @anonimno
      @anonimno Рік тому +1

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

  • @dothings6646
    @dothings6646 10 місяців тому

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

  • @CTPEKO3ABPO
    @CTPEKO3ABPO Рік тому

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

    • @АлександрНазаров-в2э9н
      @АлександрНазаров-в2э9н 11 місяців тому +1

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

  • @asp424
    @asp424 Рік тому +1

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

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

    • @asp424
      @asp424 Рік тому

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

  • @kdnlinker
    @kdnlinker Рік тому +1

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

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

    • @kdnlinker
      @kdnlinker Рік тому +1

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

    • @kdnlinker
      @kdnlinker Рік тому +1

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

  • @oleksandrpohorielov4069
    @oleksandrpohorielov4069 Рік тому +1

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

  • @chriswaytt6009
    @chriswaytt6009 Рік тому +3

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +3

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

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

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

    • @chriswaytt6009
      @chriswaytt6009 Рік тому

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

    • @Polite_person_
      @Polite_person_ Рік тому +1

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

    • @spam397
      @spam397 Рік тому

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

  • @ШипАлибеков
    @ШипАлибеков 8 місяців тому

    спасибо!