Size: a a a

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

2019 January 10

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
и так раньше и делалось в гитфоксе
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
теперь все гораздо лучше
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
и нет привязки к мокси, а у вас жесткая связь
источник

Р

Роман in Moxy – MVP библиотека под Android
да с этим согласен, не очень красиво что открытие/закрытие в разных местах
источник

Р

Роман in Moxy – MVP библиотека под Android
@terrakok я так и не понял до конца, что с DKA и Moxy, она правильно убивает презентеры в режиме DKA или нет? Или ты по сути продублировал эту же логику для убийства скоупов чтобы сделать открытие/закрытие в одном месте (BaseFragment)?
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
1) написал свою (использует другие параметры), которая повторяет ЖЦ презентера Мокси, то есть не умирает при DKA, но для этого есть костыли.
2) у Мокси презентер не умирает, когда срабатывает DKA. это может и норм поведение, но надо помнить, что вьюМодел из арх_компонентов умирает в аналогичном случае. То есть есть два поведения, а какое правильнее - вопрос спорный
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
если умирать при DKA, то костыли не понадобятся
источник

Р

Роман in Moxy – MVP библиотека под Android
я честно говоря с DKA особо не работал, может не до конца понимаю суть. На сколько я понял, при DKA активити убивается но она может восстановить состояние из saveInstanceState? Если так, то она нормально восстановит теги презентеров и они будут переиспользованы, зачем они должны умирать, по идее же всё нормально. View пересоздалась и всё ok. Не?
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
Konstantin Tskhovrebov
и нет привязки к мокси, а у вас жесткая связь
тут получается, что дилема:
1) если создатели Moxy изменят ЖЦ Presenter, то нам надо будет все равно менять свое поведение в BaseFragment, чтобы скоупы имели одинаковый ЖЦ с DI.
2) чтобы наше решение заработало и для другой библиотеки, то ее Presenter/ViewModel должен иметь такой ЖЦ, что и наше решение в BaseFragment.
источник

Р

Роман in Moxy – MVP библиотека под Android
Eugene Shapovalov
тут получается, что дилема:
1) если создатели Moxy изменят ЖЦ Presenter, то нам надо будет все равно менять свое поведение в BaseFragment, чтобы скоупы имели одинаковый ЖЦ с DI.
2) чтобы наше решение заработало и для другой библиотеки, то ее Presenter/ViewModel должен иметь такой ЖЦ, что и наше решение в BaseFragment.
+1
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
и получилось, что мы написали решение именно для Moxy.
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
Роман
я честно говоря с DKA особо не работал, может не до конца понимаю суть. На сколько я понял, при DKA активити убивается но она может восстановить состояние из saveInstanceState? Если так, то она нормально восстановит теги презентеров и они будут переиспользованы, зачем они должны умирать, по идее же всё нормально. View пересоздалась и всё ok. Не?
все дело в том, что активити никогда в реальности не умирает без смерти процесса. а нам приходится костылями поддерживать этот кейс. DKA в природе не существует
источник

Rl

Roman lastName in Moxy – MVP библиотека под Android
По хорошему presenter должен быть в scope, верно?
источник

Rl

Roman lastName in Moxy – MVP библиотека под Android
Если говорить вообще
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
Роман
я честно говоря с DKA особо не работал, может не до конца понимаю суть. На сколько я понял, при DKA активити убивается но она может восстановить состояние из saveInstanceState? Если так, то она нормально восстановит теги презентеров и они будут переиспользованы, зачем они должны умирать, по идее же всё нормально. View пересоздалась и всё ok. Не?
GitFox - приложение, которое ориентировано на программистов, и у некоторых пользователей этот режим включен. А крэши ловить и забивать на них не круто!!!
источник

Р

Роман in Moxy – MVP библиотека под Android
Konstantin Tskhovrebov
все дело в том, что активити никогда в реальности не умирает без смерти процесса. а нам приходится костылями поддерживать этот кейс. DKA в природе не существует
я не до конца понимаю суть проблемы. Moxy определённым образом работает с DKA (не убивает презентеры), и если с этим всё ok то просто привязываем ЖЦ скоупов к презентерам (закрытие), да не очень красиво. Но в чём реальная проблема, есть какая-то утечка памяти или что, что-то не закрывается? по повтоду того что хочется отвязать скоупы от Moxy (в случае перехода на ViewModel) с этим понятно.
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
Роман
я честно говоря с DKA особо не работал, может не до конца понимаю суть. На сколько я понял, при DKA активити убивается но она может восстановить состояние из saveInstanceState? Если так, то она нормально восстановит теги презентеров и они будут переиспользованы, зачем они должны умирать, по идее же всё нормально. View пересоздалась и всё ok. Не?
ваше решение и Кости решают определенную задачу.
Это самое важное.
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
Роман
я не до конца понимаю суть проблемы. Moxy определённым образом работает с DKA (не убивает презентеры), и если с этим всё ok то просто привязываем ЖЦ скоупов к презентерам (закрытие), да не очень красиво. Но в чём реальная проблема, есть какая-то утечка памяти или что, что-то не закрывается? по повтоду того что хочется отвязать скоупы от Moxy (в случае перехода на ViewModel) с этим понятно.
в том, что открываете скоупы в одном месте, а закрываете в другом.
это принципиальная архитектурная проблема
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
если на архитектуру плевать, то это не важно
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
и все действительно работает
источник