StartAndroid Ru Dagger 2
@daggerchat 223 участника
Загрузить еще
17 марта
Спасибо
30 марта
Есть презентер который создается через провайд метод

@PerActivity
@Provides
internal fun providePresenter(getUseCase: LoginUseCase): LoginPresenter = LoginPresenter(getUseCase, view)

потом из активити дергается метод презентера, в котором требуется создать LoginObserver, который наследуется от абстрактного класса, и собственно этот абстрактный класс требует внутри себя экземпляр Gson

И вот пока ничего кроме как прокинуть gson сначала в презентер, а потом в LoginObserver не вижу.
Можно это сделать как-то по нормальному? А то так в презентере будет зоопарк переменных, которые надо прокинуть дальше.


т е надо или добавить gson в сам презентер, или инжектить его в активити и кидать как параметр метода, и то и то смотрится очень странно, синглтон и то проще юзать было б в этом месте, а не прокидывать через 3 конструктора
1 апреля
А если фабрику использовать? Она в конструктор примет gson. Ее инджектить в конструктор презентера и юзать для создания объекта
По идее норм вариант, спасибо, попробую.
Добрый день. В 3м уроке по Дагеру есть последний вопрос, который крайне актуален. Мне вот тоже не понятно как определять scope компонента. Где именно указывается, что у одного компонента scope - фрагмент, а у другого - активити?
Да-да, про скоупы тема не раскрыта
Да, подумаю как получше расписать это.
2 апреля
Есть вопрос по 4му уроку. Получаю следующую ошибку на компоненте

UserData cannot be provided without an @Inject constructor or from an @Provides- or @Produces-annotated method.
UserData класс - обычный модуль

@Module
public class UserData {
}
NetworkUtils класс провайдит UserData модуль

@Module
class NetworkUtils {

@Provides
public UserData getUserData(User user){
//network operations
return new UserData();
}
}
В чем может быть причина?
Получилось собрать 4й урок только с minSdk = 26
Проблема заключается в том, что где-то в дагере используется интерфейс с дефолтным методом

Default interface methods are only supported starting with Android N

Отзовитесь, у кого-нибудь получилось собрать пример с @Produces на minSdk до 8й java?
3 апреля
Нашел причину default методов в интерфейсах. Они кроются в даггере. В последней версии продьюсеров

com.google.dagger:dagger-producers:2.11

Так что спокойно можно использовать старую версию com.google.dagger:dagger-producers:2.7 на проектах с минАпи ниже 26
Только нашел решение. Нужно включить java8 support и desugar
developer.android.com/...

Тогда 2,11 работает без проблем
Спасибо за инфу
4 апреля
Добрый день. Вопрос насчет scopes. Правильно ли я понимаю, что область видимости scope определяется тем, где был создан компонент? Тоесть если мы во фрагменте создем компонент, то и lifeCycle этого компонента - fragment?
Вроде так
@damager82
Дмитрий. Вы не будете против если я на медиуме сделаю свой пост про использование subcomponents и scope? Доделываю тестовый пример и хочу подробно расписать, чтобы расставить все точки над и. Обязательно укажи в референсах Ваш курс.
6 апреля
Just relax :)
11 апреля
Ребята а как купить данный курс?
5351 2801 0091 1234
с вас 100грн
@damager82
шутка если что*
Кстати! Забыл сказать.
У кого были вопросы по Scope, гляньте урок 3, я там написал подробнее. Стало ли понятнее?
Понял, спс ребята
Регаетесь на сайте, логинитесь, заходите на страницу курса
Там будут реквизиты и формы
Понял, спс
13 апреля
Верно ли я понимаю, что если скоуп-аннотацию не прицепить вообще, каждый раз будет инжектиться новый инстанс?
Понял. Будет.

Тогда такой вопрос: если модуль добавлен в сабкомпоненту с аннотацией @myScope, но его метод помечен аннотацией Singleton. Что будет инжектить даггер?
И еще веселее:
У главной компоненты есть две дочерних, с скоупами @ScopeOne и @ScopeTwo соответственно.
Модуль А прицеплен только к первой сабкомпоненте. Что будет, если его метод пометить ScopeTwo?
скоупы разные, возможно, что даггер ругнется на это. А если нет, то не будет синглтона
снова скоупы разные получатся у объекта и компонента, не будет синглтона
Просто странный инструмент. По сути, нужна только некая пометка - инжектить каждый раз новый инстанс или синглтон в рамках компонента. Было бы достаточно готовой аннотации-"флажочка".
А тут зачем-то каждый раз писать свою аннотацию, прицеплять ее...
Ну да, есть ощущение, что можно было проще сделать. Может в будущих версиях сделают.
16 апреля
привет, подскажите как сделать локальный синглтон с помощью дагера
17 апреля
Всем привет!
Нужна помощь-подсказка технического характера:
Формируем iframe-приложение для онлайн-радио под Android.
На iframe html страницa, с которой берется информация есть аудиопоток (стрим) и столкнулись с рядом проблем:
1. при повороте телефона, прерывается трансляция и приходится включать заново :(
2. продолжать транслировать при сворачивании, чтобы отображалось в трее название приложения или страницы, с которой идет стрим, страницы и плей/стоп.
Заранее спасибо за помощь или наводку на мат.часть :)
и даггер тут не причем
Видимо нужно логику из активити перенести в сервис. Хотя дагер вам в этом не поможет
@damager82 извиняюсь за беспокойство :)
Урок №1. screencast.com/...
Сгенерированный даггером класс DaggerAppComponent pastebin.com/...
я бы сказал почему метод "create" не виден из MainActivity?
19 апреля
кто-то практикует scope типа @PerPresenter, завязанный на жц мокси презентера?
20 апреля
Отличная статья, которая детально объясняет, какую проблему решает Dagger 2 и поэтапное введение : habrahabr.ru/...
Сори, это ссылка на последнюю статью из серии, но вы сможете перейти оттуда на самую первую.
Коллеги, сколько времени ушло на освоение этой темы?
Всё очень индивидуально
Если ты понимаешь проблему, тогда обучение проходит намного быстрее и проще
727108913
727775239