Как предоставить разные инстансы одного и того же класса в Dagger Hilt?
Для предоставления разных инстансов одного и того же класса в Dagger Hilt можно использовать квалификаторы (@Named или свои кастомные).
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Для предоставления разных инстансов одного и того же класса в Dagger Hilt можно использовать квалификаторы (@Named или свои кастомные).
Читать ответОсновные подходы:
Читать ответВ Dagger модули (Modules) — это классы, которые предоставляют зависимости через методы, помеченные аннотацией @Provides. Они описывают, как создавать объекты, необходимые для внедрения.
Читать ответАннотация @Singleton в Dagger используется для указания, что компонент или провайдер должен создавать и предоставлять единственный экземпляр объекта на протяжении всего жизненного цикла компонента (например, приложения).
Читать ответВ Dagger для включения класса в граф зависимостей используются следующие аннотации:
Читать ответДа, в Dagger необходимо явно указывать компоненты, которые должны быть внедрены.
Читать ответОсновное отличие в том, что Dagger 2 генерирует код на этапе компиляции, а Dagger 1 полагался на рефлексию в runtime.
Читать ответС помощью аннотации @HiltViewModel для самой ViewModel и @ActivityRetainedScoped или @ViewModelScoped для зависимостей, которые должны жить столько же, сколько ViewModel или активность.
Читать ответДля реализации Dagger-компонента в Android-проекте нужно:
Читать ответDagger — компиляционно-временный фреймворк для инъекции зависимостей, основанный на аннотациях и кодогенерации. Dagger генерирует код, который выполняет инъекцию зависимостей во время компиляции.
Читать ответВ Dagger для корректной работы с фрагментами обычно используется аннотация @AndroidEntryPoint. Она позволяет Dagger автоматически сгенерировать необходимые компоненты и внедрить зависимости в фрагмент.
Читать ответВ Dagger управление временем жизни Subcomponent осуществляется через область видимости (scope), которая связывается с жизненным циклом компонента, создающего этот Subcomponent.
Читать ответ