Size: a a a

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

2020 May 17

D

Dmitriy in Moxy – MVP библиотека под Android
Ну вот и ответ
источник

S

Singular in Moxy – MVP библиотека под Android
ну
источник

S

Singular in Moxy – MVP библиотека под Android
Aleksey D.
он после onStart-onResume вызывается, если что
а тут в заблуждение ввели
источник

D

Dmitriy in Moxy – MVP библиотека под Android
Нет, это вы себя запутали
Поставьте логи первым вызовом
источник

S

Singular in Moxy – MVP библиотека под Android
Dmitriy
Нет, это вы себя запутали
Поставьте логи первым вызовом
источник

S

Singular in Moxy – MVP библиотека под Android
поставил перед первым вызовом
источник

S

Singular in Moxy – MVP библиотека под Android
Но ведь правильнее код писать чтобы после super метода, а не перед ним
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Singular
Но ведь правильнее код писать чтобы после super метода, а не перед ним
так оно так и есть, но onFirstViewAttach из super.onStart срабатывает, как еще можно проверить порядок, если не поставить лог до него?)

ну, кроме как чтение исходников
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Singular
Но ведь правильнее код писать чтобы после super метода, а не перед ним
кстати, код писать надо там, где того требует задача - хочешь, до вызова методе, хочешь - после
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Singular
Почему Composite не успевает проинициализироваться? onFirstViewAttach ведь вызвался уже

Caused by: kotlin.UninitializedPropertyAccessException: lateinit property compositeDisposable has not been initialized
передавайте параметром в конструктор презентера в функции провайдпрезентер
это ближе всего к тому что вы хотите
в момент вызова onAttach / onFirstViewattach бегите параметр переданный в конструктор и вызывайте функцию внутри самого презентера

таким образом вам вообще будет по барабану на жизненный цикл активити/франмента
в общем если кто то при использовании мокси вспоминаете про жизненный цикл Android
это для меня сигнал что в логике что то не так
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Moxy тем  и хороша что утрировала жизненный цикл до 3-х функций
только ими и надо пользоваться
только про них и стоит знать
все остальное нужно помнить только для глупых вопросов на собеседовании )
источник

SG

Sergey Grushin in Moxy – MVP библиотека под Android
Всем привет. Когда-то мне был интересен MVP подход лишь ради интереса, но тогда я его не понял, более того, посчитал ненужным бредом и забыл. Сейчас, в текущем проекте, я вынужден в нем разобраться. Поэтому я тут, писать пока ничего не буду, в связи с отсутствием знаний. Не баньте за пассивность участия в группе
источник
2020 May 18

P

Pavel in Moxy – MVP библиотека под Android
Привет!

Кто-нить думал как "православно" по MVP сделать makeSceneTransitionAnimation()?

Кейс такой: юзер кликает на элемент, нужно запустить другую активити с хитрой анимацией через makeSceneTransitionAnimation().

Проблема: makeSceneTransitionAnimation() принимает параметром android.view.View (элемент на исходной активити). Т.е. эта android.view.View нужна для запуска анимации.
В презентер очень не хочется передавать android.view.View. Эта View может погибнуть. Мало того, что утечка памяти, так ещё эта view уже может не существовать в исходной активити (на случай, если презентер повторит команду).

Не самый лучший выход: запустить активити не через презентер. Но тут нарушается концепт MVP.

Есть идеи как это можно сделать не нарушая MVP?
источник

А

Андрей in Moxy – MVP библиотека под Android
Pavel
Привет!

Кто-нить думал как "православно" по MVP сделать makeSceneTransitionAnimation()?

Кейс такой: юзер кликает на элемент, нужно запустить другую активити с хитрой анимацией через makeSceneTransitionAnimation().

Проблема: makeSceneTransitionAnimation() принимает параметром android.view.View (элемент на исходной активити). Т.е. эта android.view.View нужна для запуска анимации.
В презентер очень не хочется передавать android.view.View. Эта View может погибнуть. Мало того, что утечка памяти, так ещё эта view уже может не существовать в исходной активити (на случай, если презентер повторит команду).

Не самый лучший выход: запустить активити не через презентер. Но тут нарушается концепт MVP.

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

P

Pavel in Moxy – MVP библиотека под Android
Проблема в том, что View известна в момент клика. Чтобы провернуть это через презентер, нужно передать туда View на которую кликнули (onClicked(view: View)). И потом презентер должен эту View вернуть в activity, чтобы activity запустила другую activity через makeSceneTransitionAnimation()
источник

D

Dmitriy in Moxy – MVP библиотека под Android
Pavel
Проблема в том, что View известна в момент клика. Чтобы провернуть это через презентер, нужно передать туда View на которую кликнули (onClicked(view: View)). И потом презентер должен эту View вернуть в activity, чтобы activity запустила другую activity через makeSceneTransitionAnimation()
viewstate.goToMyActivity() в презентере
а вот в реализация в activity уже знает какое именно view
источник

P

Pavel in Moxy – MVP библиотека под Android
Ну, кстати, да, как вариант, можно сделать типа viewState.goToMyActivityInCaseOfClickOnXxxView()
И внутри найти эту view и сделать анимацию.
В моём случае дело осложняется тем, что View, на которую кликнули - в recycler. Надо подумать можно ли её найти.
источник

P

Pavel in Moxy – MVP библиотека под Android
Спасибо за направление мыслей :)
источник
2020 May 19

AD

Aleksey D. in Moxy – MVP библиотека под Android
Pavel
Ну, кстати, да, как вариант, можно сделать типа viewState.goToMyActivityInCaseOfClickOnXxxView()
И внутри найти эту view и сделать анимацию.
В моём случае дело осложняется тем, что View, на которую кликнули - в recycler. Надо подумать можно ли её найти.
а что если не прокидывать ничего в презентер и решить все вопросы на месте?)
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
ну, если совсем по-черному:
- View => Presenter
- Presenter => Router (Cicerone)
- Cicerone => Navigator
а) SupportAppNavigator#setupFragmentTransaction
б) SupportAppNavigator#createStartActivityOptions
источник