Size: a a a

2020 October 08

ИЧ

Иван Чепёлкин... in Dagger 2
Roman Chumachenko
Надо подумать об этом, спасибо
Смысл lazy в даггере в том, что пока ты конкретно к объекту не обратишься - он создан не будет. Если ты знаешь, когда прошли все твои запросы, то ты смело можешь уже обращаться к объекту.
источник

RC

Roman Chumachenko in Dagger 2
Иван Чепёлкин
Смысл lazy в даггере в том, что пока ты конкретно к объекту не обратишься - он создан не будет. Если ты знаешь, когда прошли все твои запросы, то ты смело можешь уже обращаться к объекту.
Да, это я понимаю. Получается, что если мне нужен асинхронно собираемый инстанс Thing, который я дальше в юзкейс хочу инжектить, то вместо него в юзкейс я буду инжектить Lazy<Thing>?
источник

ИЧ

Иван Чепёлкин... in Dagger 2
Думаю, что именно так
источник

ИЧ

Иван Чепёлкин... in Dagger 2
Roman Chumachenko
Да, это я понимаю. Получается, что если мне нужен асинхронно собираемый инстанс Thing, который я дальше в юзкейс хочу инжектить, то вместо него в юзкейс я буду инжектить Lazy<Thing>?
Ты в конструктор инжектишь или в поле?
источник

RC

Roman Chumachenko in Dagger 2
Иван Чепёлкин
Ты в конструктор инжектишь или в поле?
В конструктор
источник

ИЧ

Иван Чепёлкин... in Dagger 2
Roman Chumachenko
В конструктор
Ну просто в конструкторе пометишь lazy и все должно заработать)
источник

RC

Roman Chumachenko in Dagger 2
Иван Чепёлкин
Ну просто в конструкторе пометишь lazy и все должно заработать)
Как вариант, спасибо)
источник

VM

Vadim Morozov in Dagger 2
кто может помочь разобраться с этим параграфом?
https://developer.android.com/training/dependency-injection/dagger-multi-module#implementation_with_dagger_subcomponents
источник

VM

Vadim Morozov in Dagger 2
источник

AG

Artem Gilmudinov in Dagger 2
Если я верно понял ваш вопрос, то в passcodeComponent интерфейса AppComponent вы можете вернуть фабрику или билдер сабкомпонента, и вроде бы даже сам сабкомпонент.
источник

VM

Vadim Morozov in Dagger 2
Artem Gilmudinov
Если я верно понял ваш вопрос, то в passcodeComponent интерфейса AppComponent вы можете вернуть фабрику или билдер сабкомпонента, и вроде бы даже сам сабкомпонент.
ну вот меня интересует так раз таки сабкомпонент
как я понял в Application а именно в реализации интерфейса его там создают верно?
источник

AG

Artem Gilmudinov in Dagger 2
реализации интерфейса генерит даггер. Вы же просто декларативно описываете интерфейс
источник

AG

Artem Gilmudinov in Dagger 2
interface AppComponent {
 fun passcodeComponent(): PasscodeComponent.Builder (или .Factory или без этого вообще, в зависимости от вашей ситуации)
}
источник

VM

Vadim Morozov in Dagger 2
Artem Gilmudinov
реализации интерфейса генерит даггер. Вы же просто декларативно описываете интерфейс
в документации написано что то аля
return appComponent.loginComponent().create()
получается что я в своем компоненте должен создать переменную val passcodeComponent: PasscodeComponent и после этого в интерфейсе добавить Builder тут не пойму.
источник

AG

Artem Gilmudinov in Dagger 2
Там у них скорее возвращает https://dagger.dev/api/latest/index.html?dagger/Subcomponent.Factory.html
источник

AG

Artem Gilmudinov in Dagger 2
Нейминг методов у них дурацкий
источник

AG

Artem Gilmudinov in Dagger 2
По неймингу они возвращают компонент, а потом создают его
источник

AG

Artem Gilmudinov in Dagger 2
бред же)
источник

VM

Vadim Morozov in Dagger 2
и всё таки я не оч пойму как я должен изменить реализацию своего интерфейса
    override fun providePasscodeSetupComponent(): PasscodeComponent {
       return appComponent.passcodeComponent
   }
источник

AG

Artem Gilmudinov in Dagger 2
interface AppComponent {
 val passcodeComponent: PasscodeComponent
}

Не уверен что даггер скушает val. Если не скушает, то fun
источник