Size: a a a

Moxy – MVP библиотека под Android

2016 November 25

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Отлично, тогда мы о нём забываем)
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Ещё столкнулся с проблемой, что я не знаю, каким образом передать в @Inject-конструктор презентера параметры дополнительные. Приходится передавать компонент и в каждом презентере в конструкторе делать component.inject(this)
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Точнее знаю, но для каждого презентера создавать отдельный модуль в даггере это ад, по-моему
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Короче, для того, чтобы делать @inject через кастомный конструктор, нужно сделать просто кастомный конструктор. только тогда встаёт вопрос — как сделать так, чтобы moxy исопльзовала именно его? для этого есть аннотация @ProvidePresenter, которая применяется к методу, который должен возвращать новый экземпляр требуемого презентера. гайдик тут: https://github.com/Arello-Mobile/Moxy/wiki/Custom-Presenter-constuructor ну или тут https://github.com/Arello-Mobile/Moxy/wiki/Provides-Presenter-and-its-Tag
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Не, это я знаю) Я про то, что я не могу при использовании даггера передать в конструктор какие либо аргументы помимо тех, которые есть в графе зависимостей. Например не могу передать репозиторий, и идеентификатор сущности одновременно, т.к. идеентификатор не провайдится даггером. Чтобы реализовать то, что я хочу, мне придётся делать отдельный модуль для каждого презентера, в который я буду передавать идеентификатор.
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
@senneco так может пометить onFirstViewAttach() как @Deprecated?
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
я уже сделал в локальной версии =))
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Отлично)
источник

AK

Andrey Khitryy in Moxy – MVP библиотека под Android
На счет onFirstViewAttach(). А как допустим тогда сделать подгрузку данных при первом аттаче?
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Andrey Khitryy
На счет onFirstViewAttach(). А как допустим тогда сделать подгрузку данных при первом аттаче?
А нужно её делать сразу в конструкторе
источник

AK

Andrey Khitryy in Moxy – MVP библиотека под Android
Не комильфо
источник

AK

Andrey Khitryy in Moxy – MVP библиотека под Android
Конструктор это конструктор
источник

AK

Andrey Khitryy in Moxy – MVP библиотека под Android
Он нужен чтобы сконструировать объект. Другую логику туда не нужно пихать
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Конструктор отвечает за инициализацию. Если для работы экрана необходим запрос - то вполне резонно делать его в конструкторе.
источник

AK

Andrey Khitryy in Moxy – MVP библиотека под Android
Бизнес логика в конструкторе уровня презентации это писос, имо
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Andrey Khitryy
Бизнес логика в конструкторе уровня презентации это писос, имо
Хм, а в этом что-то есть. Надо подумать. Возможно метку deprecated сниму
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Я один не понимаю?)
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Ilya Gulya
Я один не понимаю?)
Ну представь: ты же можешь сделать экземпляр презентера, но не аттачить его куда-то. Например, сложить его в даггер. А потом, когда какая-нибудь View подоспеет, она будет приаттачена. И введь только тогда имеет смысл начинать работать презентеру.

И можно это представлять впринципе для любого презентера, когда ты продумываешь его интерфейс. Тогда получается не совсем логично начинать что-то делать в конструкторе. Правильней только инициализировать презентер.

+ получается такой локальный single responsibility — конструктор отвечает за конструирование, а методы - за его работу =)
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Всё, въехал
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Ну тут зависит от ситуации, да. У меня компонент создаётся на Activity, так что такой проблемы не будет, презентер тут же цепляется.
источник