Dagger Hilt (Для начинающих)
Я являюсь разработчиком мобильных приложений с опытом уже более 3х лет! Я всегда разрабатываю мобильные приложения один - это требует моя работа. Но сегодня я хочу поделиться с Вами тем, что такое Dagger Hilt!
Следите за мной в телеграм: t.me/spacetimofey
Dagger Hilt - это необходимый каждому инструмент, который упрощает в разы разработку мобильных приложений. Служит для внедрения зависимостей. В первую очередь он необходим тем, у кого в проекте есть множество классов, которые требуют реализации. Хотите чтоб за вас это сделал кто-то другой? Dagger Hilt к вашим услугам.
Hilt — это библиотека внедрения зависимостей для Android, которая упрощает шаблонное внедрение зависимостей вручную в ваш проект. Выполнение внедрения зависимостей вручную требует от вас создания каждого класса и его зависимостей вручную, а также использования контейнеров для повторного использования и управления зависимостям
⭐ Преимущества:
- Быстрый старт
- Упрощенное управление зависимостями
- Интеграция с Android компонентами (Activity, Fragment, ViewModel)
⭐ Добавление в проект:
Version Catalog:
build.gradle.kts (Module :app)
build.gradle.kts (Project: YourProjectName)
⭐ Как его использовать:
Вы должны определить класс App. Это базовый класс без которого проект не сможет подтянуть Hilt.
Все приложения, использующие Hilt, должны содержать класс Application , помеченный @HiltAndroidApp .
@HiltAndroidApp запускает генерацию кода Hilt, включая базовый класс для вашего приложения, который служит контейнером зависимостей на уровне приложени
Инициализируете этот класс в манифесте!
⭐ Внедрение зависимостей в классы:
Как только Hilt настроен в вашем классе Application и доступен компонент уровня приложения, Hilt может предоставлять зависимости другим классам Android, имеющим аннотацию @AndroidEntryPoint
- Application (с помощью @HiltAndroidApp )
- ViewModel (с помощью @HiltViewModel )
- Activity
- Fragment
- View
- Service
- BroadcastReceiver
Именно эти компоненты поддерживает Hilt. Все те компоненты, что не отмечены "с помощью" используют аннотацию @AndroidEntryPoint
Каждый компонент должен быть аннотирован. Это дает Hilt знать, с какого компонента начать внедрять зависимости. Это стартовые точки для Hilt-а.
⭐ Реальные примеры (кейсы):
Одна из важнейших конструкция, которую будешь использовать чаще всего. @Inject конструкция - получает зависимость от компонента.
Чтоб @Inject работал правильно вы должны изменить свой класс под требования Hilt.
В MainActivity.kt
ВАЖНО: переменная, которая помечено @Inject не может быть приватной!
На это мой пост про Dagger Hilt для начинающих заканчивается. Следующий пост будет о более сложных компонентах и их применениях. Узнаете, как красиво оформить ваш репозитория при использовании Dager Hilt и как можно использовать Hilt в классах из вне. Интересно? Читайте дальше и вы станете настоящим гуру!