Size: a a a

2019 February 20

DN

Danil Novoselov in Dagger 2
Интересно, спасибо
источник

SV

Sviat Volkov in Dagger 2
Danil Novoselov
Ребят, привет! Я тут обратился к доке Dagger’a и там пишут, что инъекцию стоить производить до super.onCreate(...) в Активити и до super.onAttach(...) во фрагментах. Погуглил и во всех ответах просто ссылки на доку. В ней только общие слова типа “as early as possible”, “prevents inconsistencies if the Fragment is reattached”. Можете, например, подсказать конкретные кейсы проблем, которые могут возникнуть, если не следовать советам из доки?
проблемы возникнут, когда ты попытаешься обратиться к зависимости раньше чем она проинициализируется. поэтому и рекомендуют их инитить как можно раньше, чтобы дальше работать с ними в тех коллбеках в которых удобно
источник

DN

Danil Novoselov in Dagger 2
Ты прав. Я словлю npe, если буду обращаться к полям, которые не заинъектили. Мой вопрос, почему рекомендуют писать

override fun onCreate(...) {
   injectDependecies()
   super.onCreate(...)
}

Но не

override fun onCreate(...) {
   super.onCreate(...)
   injectDependecies(...)
}

Уже написали про мокси. Это было полезно
источник

VA

Valeriy Andrikeev in Dagger 2
Danil Novoselov
Ты прав. Я словлю npe, если буду обращаться к полям, которые не заинъектили. Мой вопрос, почему рекомендуют писать

override fun onCreate(...) {
   injectDependecies()
   super.onCreate(...)
}

Но не

override fun onCreate(...) {
   super.onCreate(...)
   injectDependecies(...)
}

Уже написали про мокси. Это было полезно
например у тебя есть зависимости в базовом классе помеченые @Inject, и они используются в onCreate() базового класса — тебе нужно их проинициализировать до вызова super.onCreate(...)
источник

DN

Danil Novoselov in Dagger 2
О! Спасибо
источник

ВИ

Вали Ибрагимов in Dagger 2
Valeriy Andrikeev
например у тебя есть зависимости в базовом классе помеченые @Inject, и они используются в onCreate() базового класса — тебе нужно их проинициализировать до вызова super.onCreate(...)
из-за фрагментов, при востоновлении состоянии super.onCreate(...) создает раньее открытые фрагменты и вызывает у них onCreate и если фрагменту требуется  component activity будет npe, потому и нужно до вызова super.onCreate(...)   проинциализировать component activity
источник
2019 February 21

VS

Vadim Shved in Dagger 2
привет. пытаюсь сбилдить проект, мне пишет ошибку error: com.owlylabs.belfan.di.RestModule has errors
источник

VS

Vadim Shved in Dagger 2
а как все-таки посмотреть какая же ошибка?)
источник

SV

Sviat Volkov in Dagger 2
в билд логе?
источник

VS

Vadim Shved in Dagger 2
Ага
источник
2019 February 26

A

Alex in Dagger 2
Привет. Есть несколько вопросов для понимания, на которые я пока не нашёл ответа:
Зачем нужны компоненты и модули, почему бы просто не инжектировать сервисы?
В чём смысл Scope, если обычно Scope привязывается к компоненту? Почему бы вместо этого не использовать ReusableScope?
В чём смысл модулей, почему бы не предоставлять зависимости в компоненте?
Зачем нужны компоненты с несколькими dependencies?
Каким образом очищается память, связанная со Scope?
Как мне реализовать тесты. Отдельно для каждого компонента? Для нижних модулей предоставлять верхние модули?
источник

Ю

Юрий in Dagger 2
Alex
Привет. Есть несколько вопросов для понимания, на которые я пока не нашёл ответа:
Зачем нужны компоненты и модули, почему бы просто не инжектировать сервисы?
В чём смысл Scope, если обычно Scope привязывается к компоненту? Почему бы вместо этого не использовать ReusableScope?
В чём смысл модулей, почему бы не предоставлять зависимости в компоненте?
Зачем нужны компоненты с несколькими dependencies?
Каким образом очищается память, связанная со Scope?
Как мне реализовать тесты. Отдельно для каждого компонента? Для нижних модулей предоставлять верхние модули?
Прочитай ещё раз доки Даггер 2
источник

A

Alex in Dagger 2
Спасибо, почитал доки, всё стало понятно. Нет, честно. Я не про работу даггера хочу спросить, а про целесообразность и применимость его подхода
источник

AP

Anton Potekhin in Dagger 2
Alex
Спасибо, почитал доки, всё стало понятно. Нет, честно. Я не про работу даггера хочу спросить, а про целесообразность и применимость его подхода
ух завидую. За 2 минуты прочитать доки даггер и понять...Я уже месяц познаю его...
источник

Ю

Юрий in Dagger 2
Alex
Спасибо, почитал доки, всё стало понятно. Нет, честно. Я не про работу даггера хочу спросить, а про целесообразность и применимость его подхода
Напиши свой синглтоновский класс
источник

Ю

Юрий in Dagger 2
У тебя усы четкие
источник

A

Alex in Dagger 2
@JohnnySC 1. Зачем нужны компоненты и модули, почему бы просто не инжектировать сервисы?
источник

A

Alex in Dagger 2
Просто я могу создавать по компоненту и модулю на каждую Activity, но зачем этот карго-культ
источник

A

Alex in Dagger 2
Я хочу дзен познать, а не копировать решения вслепую
источник

F

François Leclercq in Dagger 2
Alex
Я хочу дзен познать, а не копировать решения вслепую
Тогда напиши свой DI фреймворк, не глядя в исходники dagger. а потом сравни
источник