Size: a a a

2020 March 13

АЕ

Алексей Ершов in Dagger 2
и не должно работать
источник

I

Igor in Dagger 2
Алексей Ершов
если RepoImpl имеет инжект конструктор, то это само по себе Даггеру не даёт понять, что когда вы хотите IRepo, он должен вернуть RepoImpl. Нужно сделать для этого провайд метод или @Binds
Ну вот собственно это и странно
источник

АЕ

Алексей Ершов in Dagger 2
нет)
источник

АЕ

Алексей Ершов in Dagger 2
представьте что у вас 2 разные реализации одного и того же интерфейса, как Даггер поймет, какую взять?
источник

I

Igor in Dagger 2
Алексей Ершов
представьте что у вас 2 разные реализации одного и того же интерфейса, как Даггер поймет, какую взять?
Ну да логично, не подумал) ттогда по логике, в конструктор можно инжектить только реализации если не юзать провайд?
источник

АЕ

Алексей Ершов in Dagger 2
Igor
Ну да логично, не подумал) ттогда по логике, в конструктор можно инжектить только реализации если не юзать провайд?
да. Но почему не юзать провайд? Он для того и нужен, в основном. Точнее, @Binds, чтобы совсем коротко
источник

I

Igor in Dagger 2
Алексей Ершов
да. Но почему не юзать провайд? Он для того и нужен, в основном. Точнее, @Binds, чтобы совсем коротко
Так тогда смысл инжекта в конструктор? Bind создает фабрику, а инжект конструктора с реализацией будет создавать обычный провайд по факту даже синглтон может иметь два инстанса
источник

АЕ

Алексей Ершов in Dagger 2
у них разное назначение. Binds для того, чтобы связать интерфейс с реализацией, @Inject-конструктор для того, чтобы сгенерировать фабрику для реализации. Провайд метод может сделать и то и другое, но он более многословный и неудобный, чем @Inject + @Binds в тех случаях, когда их достаточно.
источник

АЕ

Алексей Ершов in Dagger 2
Я провайд методы использую обычно только в тех случаях, когда комбинации аннотаций недостаточно. Читайте доку и статьи)
источник

I

Igor in Dagger 2
Алексей Ершов
Я провайд методы использую обычно только в тех случаях, когда комбинации аннотаций недостаточно. Читайте доку и статьи)
Понял, спасибо, надо осмыслить
источник
2020 March 19

FN

Fly N in Dagger 2
Подскажите пожалуйста кто как инжектит вьюмодел во вью (активити/фрагмент)? Те решения, которые представлены в интернете не очень мне нравятся
источник

АЕ

Алексей Ершов in Dagger 2
Fly N
Подскажите пожалуйста кто как инжектит вьюмодел во вью (активити/фрагмент)? Те решения, которые представлены в интернете не очень мне нравятся
Чатик поскролльте, обсуждали несколько раз)
источник
2020 March 24

SY

Sergey Yzenev in Dagger 2
Hi, парни. Считается ли нормальной практикой инжект RV.Adapter в custom view или все-таки через какой-нибудь метод инициализации это делать? И вообще что можно ижектить во Views?
источник

IG

Ilya Gulya in Dagger 2
Sergey Yzenev
Hi, парни. Считается ли нормальной практикой инжект RV.Adapter в custom view или все-таки через какой-нибудь метод инициализации это делать? И вообще что можно ижектить во Views?
Ну обычно DI юзают на Presentation слое и выше
Во View редко бывают  настолько сложные иерархии что нужен DI
источник

SV

Sviat Volkov in Dagger 2
Sergey Yzenev
Hi, парни. Считается ли нормальной практикой инжект RV.Adapter в custom view или все-таки через какой-нибудь метод инициализации это делать? И вообще что можно ижектить во Views?
как правило адаптер это часть вью, следовательно для вью он не является внешней зависимостью и можно спокойно создавать внутри вьюхи. в адаптере только не должно быть ничего из вне
источник

DK

Danil Konovalenko in Dagger 2
Sergey Yzenev
Hi, парни. Считается ли нормальной практикой инжект RV.Adapter в custom view или все-таки через какой-нибудь метод инициализации это делать? И вообще что можно ижектить во Views?
не стоит так делать. Зря только усложнять
источник
2020 March 25

Y

YorkIsMine in Dagger 2
подскажите пользу от аннотации binds в даггере. Перерыл чуть ли не все в интернете, но не смог понять. Интересует зачем нужно в качестве аргумента пихать реализацию, ведь получается, что эта реализация и будет внедряться. Или как?
источник

АЕ

Алексей Ершов in Dagger 2
YorkIsMine
подскажите пользу от аннотации binds в даггере. Перерыл чуть ли не все в интернете, но не смог понять. Интересует зачем нужно в качестве аргумента пихать реализацию, ведь получается, что эта реализация и будет внедряться. Или как?
это укороченная запись для случая, когда вам нужно запровайдить реализацию некоторого интерфейса. Без этой аннотации вам бы пришлось писать провайд метод, и в его теле возвращать эту реализацию.
источник

Y

YorkIsMine in Dagger 2
ну а если две реализации?
источник

АЕ

Алексей Ершов in Dagger 2
что если две реализации?)
источник