Size: a a a

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

2020 August 08

МE

Михаил E1ement in Moxy – MVP библиотека под Android
Почему нельзя общаться через репозиторий?
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Михаил E1ement
Почему нельзя общаться через репозиторий?
Неконтролируемый жизненный цикл приложения. Мы не можем гарантировать, что репозиторий переживет пересоздание
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Михаил E1ement
Почему нельзя общаться через репозиторий?
можно делать все что угодно
я видел активити банковского приложения на 30 тыс строк кода
и как ни странно оно прекрасно работало
источник

AK

Anatoliy Kernokus in Moxy – MVP библиотека под Android
То есть вся работа с бд и сетями должна делаться в презентер по такой логике?хотелось бы такое выделять в отдельные классы репо
источник

AK

Anatoliy Kernokus in Moxy – MVP библиотека под Android
Переслано от Mikhail Mustakimov
Неконтролируемый жизненный цикл приложения. Мы не можем гарантировать, что репозиторий переживет пересоздание
источник

P

Pavel in Moxy – MVP библиотека под Android
Презентер держит ссылки на сущности бизнес-логики или репозитории. Соответственно, они живут вместе с презентером. Если презентер переживает пересоздание, то и эти сущности тоже выживают
источник

АЕ

Алексей Ершов... in Moxy – MVP библиотека под Android
Mikhail Mustakimov
Неконтролируемый жизненный цикл приложения. Мы не можем гарантировать, что репозиторий переживет пересоздание
Репозитории часто делают синглтонами, так что не сказал бы, что эта проблема есть.
источник

МE

Михаил E1ement in Moxy – MVP библиотека под Android
Mr
Зачем так делать?
Даже если не шарить данные, то разбить сложный фрагмент на несколько кусков-презентеров.
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Алексей Ершов
Репозитории часто делают синглтонами, так что не сказал бы, что эта проблема есть.
часто не значит что правильно
обычно так поступают без DI
смысла держать репозитории в памяти нет
и про жизненный цикл им знать абсолютно не надо
жизненный цикл должен заканчиваться в презентере
источник

АЕ

Алексей Ершов... in Moxy – MVP библиотека под Android
Если он в себе содержит открытую БД, так почему бы и не держать. Но тут кто во что горазд, конечно.
Основная мысль в том, что делать на уровне презентации что-то сложное, вроде пошареных презентеров или вьюмоделей скорее всего не стоит. Задача презентера отделить логику поведения экрана или виджета от логики его рендеринга, и при этом что View что Presenter должны быть чем проще тем лучше. Остальное - архитектурная задача, и лежит за рамками MVP.
источник

VK

Vladyslav Kasprov in Moxy – MVP библиотека под Android
Всем привет🤚

Есть ли способ передать данные из savedInstanceState фрагмента в конструктор презентера?

Если такой возможности нет сейчас, то можно ли ее реализовать в библиотеке? Например, получить savedInstanceState аргументом в метод с аннотацией @ProvidePresenter?

Я хотел бы передать в конструктор презентера сохранённое состояние фрагмента.
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Vladyslav Kasprov
Всем привет🤚

Есть ли способ передать данные из savedInstanceState фрагмента в конструктор презентера?

Если такой возможности нет сейчас, то можно ли ее реализовать в библиотеке? Например, получить savedInstanceState аргументом в метод с аннотацией @ProvidePresenter?

Я хотел бы передать в конструктор презентера сохранённое состояние фрагмента.
можно попробовать в методе onCreate перехватить данные из savedInstanceState в [DI] компонент, потом проинжектить свой фрагмент Provider<FeaturePresenter> и потом в @ProvidePresenter достать презентер из провайдера

p.s. можно просто сохранить стейт в поле и занулить после super.onCreate(savedInstanceState)
источник

VK

Vladyslav Kasprov in Moxy – MVP библиотека под Android
Спасибо
источник

V

Veniamin in Moxy – MVP библиотека под Android
Мне выше советовали чтобы логировать команды ViewState, то нужно от него унаследоваться, как это можно сделать?
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Veniamin
Мне выше советовали чтобы логировать команды ViewState, то нужно от него унаследоваться, как это можно сделать?
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Veniamin
Мне выше советовали чтобы логировать команды ViewState, то нужно от него унаследоваться, как это можно сделать?
источник

V

Veniamin in Moxy – MVP библиотека под Android
@snoozerio Как я понял, MvpPresenter получает ViewState с помощью метода ViewStateLocator.getViewState, а по коду, метод setViewState просто переприсваивает ViewState
источник

V

Veniamin in Moxy – MVP библиотека под Android
Может я неверно понял, а где стоит вызывать setViewState?
источник

VS

Volodymyr Stelmashch... in Moxy – MVP библиотека под Android
Нам не надо это визивать
источник

V

Veniamin in Moxy – MVP библиотека под Android
@smallstells Так, а как тогда можно логировать события ViewState?
источник