Size: a a a

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

2019 January 10

ES

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

KT

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

KT

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

Р

Роман in Moxy – MVP библиотека под Android
ok теперь всё понятно. В целом согласен.
источник

Р

Роман in Moxy – MVP библиотека под Android
Eugene Shapovalov
У вас есть объект, который инжектится и в Presenter, и в Fragment. При DKA после восстановления это будут два разных объекта.
Я так понимаю речь идёт о том, когда фрагмент восстановится аналогично после поворота экрана?
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
после DKA
источник

Р

Роман in Moxy – MVP библиотека под Android
а в чём разница?
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
Роман
а в чём разница?
в том, что поворот реальный кейс
источник

Р

Роман in Moxy – MVP библиотека под Android
при DKA активити умрёт, потом восстановится ведь точно также как при повороте, нет?
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
+
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
только флаги разные
источник

Р

Роман in Moxy – MVP библиотека под Android
тогда откуда возьмётся другой объект во фрагменте. В аргументах фрагмента будет лежать имя скоупа, он откроется (который уже есть) и оттуда возьмётся зависимость
источник

ES

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

Р

Роман in Moxy – MVP библиотека под Android
а, я тогда не правильно понял, подумал что в моём случае будут разные объекты. Тогда да, согласен, я решал ту же самую проблему и сейчас с этим всё ok.
источник

ES

Eugene Shapovalov in Moxy – MVP библиотека под Android
Роман
тогда откуда возьмётся другой объект во фрагменте. В аргументах фрагмента будет лежать имя скоупа, он откроется (который уже есть) и оттуда возьмётся зависимость
ваше сообщение очень странное:
я вам говорю: «чтобы зубы не болели надо их чистить».
А вы мне в ответ: «если зубы чистить, то они болеть не будут».
источник

Р

Роман in Moxy – MVP библиотека под Android
@terrakok Ещё кстати сталкнулся с такой архитектурной  проблемой со скоупами. По сути мы обязаны дублировать иерархию скоупов с иерархией экранов. Но это не явно. Если это условие не выполнять, например допустим хотим открыть экран фильтров в вышележащем Flow (какой нибудь TopFlow) и отнаследовать его скоуп от скоупа экрана который будет ниже по иерархии, то сначала всё будет нормально, пока не наступит убийство процесса. Потому что при восстановлении нижележащие фрагменты ещё не будут восстановлены (т.к. они не показаны) и соответственно их скоупы тоже не будут созданы, а так как мы используем нижележещий скоуп как родительский то получим ошибку.
источник

KT

Konstantin Tskhovrebov in Moxy – MVP библиотека под Android
"мы обязаны дублировать иерархию скоупов с иерархией экранов" - это не так.
мы обязаны синхронизировать иерархию UI скоупов с иерархией экранов - это правда и это логично
источник

Р

Роман in Moxy – MVP библиотека под Android
да это и имел ввиду. Проблема в том что это не явно. Хотя наверно завязка скоупов на BaseFragment делает этот контракт более явным.
источник

KT

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

KT

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