Size: a a a

2020 April 09

AG

Artem Gilmudinov in Dagger 2
на самом деле я тоже уже час думаю над исходным вопросом. Зачем они добавили?)
Начал искать в release notes но там пусто.
Заметил что оно появилось раньше даггер андроида (поэтому скорее либо эта фича была подготовкой к релизу даггер андроида, либо никак не связана).

По сути мы ведь через Module.subcomponents просто связываем родителя и ребенка. У родителя появляется доступ к Builderу сабкомпонента.
Как мы это делали раньше? Мы явно указывали метод в родительском компоненте возврающий билдер сабкомпонента.
источник

AG

Artem Gilmudinov in Dagger 2
Поэтому я не вижу каких-либо явных преимуществ
источник

AG

Artem Gilmudinov in Dagger 2
Но я не тестил даггер андроид с явным указанием ссылки на билдер. Но думается мне должно работать как и с атрибутом subcomponents
источник

AG

Artem Gilmudinov in Dagger 2
источник

AG

Artem Gilmudinov in Dagger 2
Вот тут Рон немного раскрывает их суть
источник

AG

Artem Gilmudinov in Dagger 2
"@Module.subcomponents was introduced in part to help break this build cycle. It allows you to inject the subcomponent builder without ever referring to the owning component. dagger.android takes heavy advantage of this."
источник

А

Александр in Dagger 2
О, круто
источник

AG

Artem Gilmudinov in Dagger 2
источник

IG

Ilya Gulya in Dagger 2
Ну, как вариант, можно переиспользовать модуль между компонентами :)
источник

IG

Ilya Gulya in Dagger 2
А, в тестах можно подменять модуль один на другой, по идее
источник

AG

Artem Gilmudinov in Dagger 2
Ilya Gulya
Ну, как вариант, можно переиспользовать модуль между компонентами :)
Вот мне кажется там истинный замысел был глубже, чем переиспользование... Но плохо, что нигде не написано и вынуждены гадать поэтому.
источник
2020 April 10

P▽

Picty ▽ in Dagger 2
Ребята, подскажите — появилась необходимость инжекта в Application, добавил, но объект не инжектится и в onCreate остается null.

И это именно в Application, в остальных местах данный объект доступен.

Код(короткая версия): https://pastebin.com/JWrtM0h3

Что делаю не так?
Спасибо!
источник

AG

Artem Gilmudinov in Dagger 2
Picty ▽
Ребята, подскажите — появилась необходимость инжекта в Application, добавил, но объект не инжектится и в onCreate остается null.

И это именно в Application, в остальных местах данный объект доступен.

Код(короткая версия): https://pastebin.com/JWrtM0h3

Что делаю не так?
Спасибо!
Не хватает описания AppModule в сниппете
источник

P▽

Picty ▽ in Dagger 2
Artem Gilmudinov
Не хватает описания AppModule в сниппете
добавил
источник

AG

Artem Gilmudinov in Dagger 2
Picty ▽
добавил
Еще не хватает описания AppPrefs.
источник

P▽

Picty ▽ in Dagger 2
Artem Gilmudinov
Еще не хватает описания AppPrefs.
Спасибо, сейчас всё добавил, что качается вопроса.
источник

AG

Artem Gilmudinov in Dagger 2
Picty ▽
Спасибо, сейчас всё добавил, что качается вопроса.
Попробуйте метод fun inject(app: Application) сделать fun inject(app: App)
источник

P▽

Picty ▽ in Dagger 2
Artem Gilmudinov
Попробуйте метод fun inject(app: Application) сделать fun inject(app: App)
Спасибо большое!
У меня изначально везде был Application — потом я решил сменить на конкретику App и вот в одном месте не сменил и вот оно как вылезло.

Ещё раз спасибо!)
источник

AG

Artem Gilmudinov in Dagger 2
Picty ▽
Спасибо большое!
У меня изначально везде был Application — потом я решил сменить на конкретику App и вот в одном месте не сменил и вот оно как вылезло.

Ещё раз спасибо!)
пожалуйста!
источник

АВ

Андрей Владиславов in Dagger 2
Добрый день
Хотелось бы попросить совета. Пишу учебный проект, посоветовали использовать Room как базу данных. Нашел пример, как её использовать с Dagger, однако с этим инструментом ни разу не сталкивался до этого. Как правильно создавать поле презентера в классе активити, если в презентере присутствует конструктор, как в коде (есть риск, что некоторые термины неправильно использую, заранее извиняюсь 😅)
Или лучше отойти от даггера и писать проект без него?
https://pastebin.com/RCF1z4Uv
источник