Size: a a a

2019 November 19

v

vitaly in Dagger 2
Nikolay
ну, к сожалению да, но опять таки - многие его и используют только по этой причине, совсем не понимая что есть альтернативы
Я прекрасно понимаю, что альтернативы есть. Просто лучше выучить даггер)
источник

SV

Sergey Vasilchenko in Dagger 2
vitaly
Я прекрасно понимаю, что альтернативы есть. Просто лучше выучить даггер)
у мацюка на хабре хорошие статьи, в трех частях (для старта)
источник

SV

Sergey Vasilchenko in Dagger 2
если еще не прочитаны)
источник

v

vitaly in Dagger 2
как показывает практика, если долго долибиться, то выучишь что угодно)
источник

v

vitaly in Dagger 2
Sergey Vasilchenko
если еще не прочитаны)
я прочитал, наверное, ВСЕ статьи на хабре про даггер, а некоторые раз по 10. Общее понимание у меня, конечно, появилось, и я его использую, собственно. Но более-менее целостного и полного понимания нету. Я же говорю, как магия)
источник

I

Igor in Dagger 2
ребят кто-нибудь понимает как scope работают под капотом? что-то инфы мало в интернете. Как именно даггер оперирует объектами с разным скоуп? Когда он их уадялет и удаляет ли вообще?
источник

IG

Ilya Gulya in Dagger 2
Igor
ребят кто-нибудь понимает как scope работают под капотом? что-то инфы мало в интернете. Как именно даггер оперирует объектами с разным скоуп? Когда он их уадялет и удаляет ли вообще?
Всё супер просто.
Если зависимость scoped (есть scope-аннотация) - она создаётся один раз в рамках одного инстанса компонента и в последующие разы провайдится одна и та же.
Если зависимость unscoped (нету scope-аннотации) - она создаётся каждый раз по требованию.
Ничего нигде не удаляется.
Умирает компонент - умирают и закешированные scoped зависимости (если на них нет ещё где-то ссылок)
источник

I

Igor in Dagger 2
Ilya Gulya
Всё супер просто.
Если зависимость scoped (есть scope-аннотация) - она создаётся один раз в рамках одного инстанса компонента и в последующие разы провайдится одна и та же.
Если зависимость unscoped (нету scope-аннотации) - она создаётся каждый раз по требованию.
Ничего нигде не удаляется.
Умирает компонент - умирают и закешированные scoped зависимости (если на них нет ещё где-то ссылок)
так чаще всего компоненты существует в течении времени жизни приложения, и получается что все кастомные аннотации не имеют смысла, так как инстансы будут удалены только после того как приложение умрет?
источник

IG

Ilya Gulya in Dagger 2
Igor
так чаще всего компоненты существует в течении времени жизни приложения, и получается что все кастомные аннотации не имеют смысла, так как инстансы будут удалены только после того как приложение умрет?
Ну, про "чаще всего" это вы конечно громко сказали)
источник

IG

Ilya Gulya in Dagger 2
При правильном использовании даггера, большая часть компонентов живёт в рамках фичи, чаще всего.
источник

IG

Ilya Gulya in Dagger 2
Всё приложение переживает лишь небольшое количество, которое требуется на всех экранах
источник

IG

Ilya Gulya in Dagger 2
Ilya Gulya
При правильном использовании даггера, большая часть компонентов живёт в рамках фичи, чаще всего.
При правильном проектировании графа зависимостей даже, если более корректно
источник

I

Igor in Dagger 2
Ilya Gulya
Ну, про "чаще всего" это вы конечно громко сказали)
многие ли делают сабкомпоненты? я так понимаю речь о них? получается что время жизни мы контролим сами добавляя или удаляя сабкомпонент?
источник

IG

Ilya Gulya in Dagger 2
Igor
многие ли делают сабкомпоненты? я так понимаю речь о них? получается что время жизни мы контролим сами добавляя или удаляя сабкомпонент?
Именно. Даггер не даёт инструментов управления жизненным циклом. Только непосредственно создание графов и их использование для инъекции.
источник

IG

Ilya Gulya in Dagger 2
А будет это сабкомпонент или component dependencies - это уже на ваш выбор
источник

I

Igor in Dagger 2
Ilya Gulya
Именно. Даггер не даёт инструментов управления жизненным циклом. Только непосредственно создание графов и их использование для инъекции.
я в общем так и думал, просто все никак не мог понять, почему вижу раные проекты кучу скоупов разных и один компонент, в этом же нет логики, верно?
источник

IG

Ilya Gulya in Dagger 2
Igor
я в общем так и думал, просто все никак не мог понять, почему вижу раные проекты кучу скоупов разных и один компонент, в этом же нет логики, верно?
Нету
источник

IG

Ilya Gulya in Dagger 2
Это и не будет работать вообще-то
источник

IG

Ilya Gulya in Dagger 2
Нельзя провайдить в одном компоненте зависимости с различными скоупами
источник

IG

Ilya Gulya in Dagger 2
Igor
я в общем так и думал, просто все никак не мог понять, почему вижу раные проекты кучу скоупов разных и один компонент, в этом же нет логики, верно?
Если не хочется самому делать инструменты для управления ЖЦ - можно попробовать потыкать Toothpick.
Там более удобно это делается.
Но там меньше безопасности из-за отсутствия compile-time проверок графа на корректность.
источник