Size: a a a

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

2020 August 15

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
за BaseMvoView у меня глаз зацепился на стековерфлоу но чето я промолчал

в чем смысл базовой вьюшки?
ну и немного убежать от прямой зависимости от библиотеки (вообще спорный профит), чтобы если что менять не везде, а только в BaseView убрать зависимость от MvpView
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
кстати, а зачем вообще MvpView нужен? 🤔
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Aleksey D.
кстати, а зачем вообще MvpView нужен? 🤔
для презентера конечно )
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
для презентера конечно )
ну то есть не то, чтобы прям нужен, да?)
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Aleksey D.
ну то есть не то, чтобы прям нужен, да?)
нужен
источник

AD

Aleksandr Dovhaliuk in Moxy – MVP библиотека под Android
Nikita Ilyasov
была такая же проблема, решил с помощью @SingleState
💪💪💪
источник
2020 August 16

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Aleksandr Dovhaliuk
Проблема была в том, что AddToEndSingleStrategy при переходе обратно на экран SettingsFragment вызывала последний action в очереди. В итоге экран зацикливался, и выглядело это будто кнопка назад не работает.
Чичероне: Я что, шутка для вас?

А если серьезно, то лучше изучить поведение библиотеки перед использованием)
источник
2020 August 17

EK

Egor Katkov in Moxy – MVP библиотека под Android
Aleksandr Dovhaliuk
Согласен.

Кстати, во второй версии Мокси уже не получается выехать на дефолтной, теперь каждому интерфейсу нужно прописывать отдельную стратегию. Как раньше не выйдет задать что-то в BaseMvpView одно на всех, а потом отдельным методам переопределить
Можно выключить проверку на пустую стратегию, тогда дефолтной станет AddToEndSingleStrategy. В предыдущей версии была  AddToEndStrategy. А вообще во второй версии Мокси, можно поставить любую стратегию дефолтной на Ваш выбор.
источник
2020 August 19

GT

Green Triangle in Moxy – MVP библиотека под Android
Всем привет! У меня такой вопрос. Есть фрагмент + презентер, внутри фрагмента есть адаптер в который инжектится свой презентер. МВП делегаты получается у них связаны. Когда вьюха у фрагмента уничтожается, то мвпделегаты отцепляются друг от друга. Но после создания вью повторно, мвп делегаты не связываются. Ручками это сделать не могу, тк добавлять parentDelegate можно только при создании делегатов. Получается, что привязать мвпделегат к родительскому мвпделегату (или наоборот добавить дочерний в родительский) после отвязки - не получится?
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Green Triangle
Всем привет! У меня такой вопрос. Есть фрагмент + презентер, внутри фрагмента есть адаптер в который инжектится свой презентер. МВП делегаты получается у них связаны. Когда вьюха у фрагмента уничтожается, то мвпделегаты отцепляются друг от друга. Но после создания вью повторно, мвп делегаты не связываются. Ручками это сделать не могу, тк добавлять parentDelegate можно только при создании делегатов. Получается, что привязать мвпделегат к родительскому мвпделегату (или наоборот добавить дочерний в родительский) после отвязки - не получится?
не совсем понял суть вопроса
но вдруг помогу
в репе есть пример кастомной вьюшки с mvp
мне кажется это то что вам нужно

ещё от себя добавлю
делали mvp внутри адаптера
так вот в качестве вьюшки у нас был вьюхолдер
может это вам поможет
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
не совсем понял суть вопроса
но вдруг помогу
в репе есть пример кастомной вьюшки с mvp
мне кажется это то что вам нужно

ещё от себя добавлю
делали mvp внутри адаптера
так вот в качестве вьюшки у нас был вьюхолдер
может это вам поможет
а что за сценарий с таким локальным презентером?
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Aleksey D.
а что за сценарий с таким локальным презентером?
хороший вопрос
если на экране есть список то логика экрана простая
получить список и кинуть в адаптер

в алаптере же содержится основная логика которую все игнорят и не тестируют

утрировано в презентере фрагмента меньше логики чем во вьюхолдере
источник
2020 August 20

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
хороший вопрос
если на экране есть список то логика экрана простая
получить список и кинуть в адаптер

в алаптере же содержится основная логика которую все игнорят и не тестируют

утрировано в презентере фрагмента меньше логики чем во вьюхолдере
вероятно, тут еще элемент списка должен быть чем-то более сложным, чем просто кнопка с текстом)
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Aleksey D.
вероятно, тут еще элемент списка должен быть чем-то более сложным, чем просто кнопка с текстом)
всё верно
я про сложные списки
ленты новостей покупок...
лента чата
разнотипные списки
источник

ЕХ

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

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
всё верно
я про сложные списки
ленты новостей покупок...
лента чата
разнотипные списки
во мне сейчас две стороны борятся
1) ну и чо тут сложного, даже если это какой-нибудь товар, где добавить в избранное, добавить в корзину, добавить в вишлист и открыть экран товара, то здесь всего четыре события, которые можно обработать в презентере экрана и никаких проблем, там же и протестить
2) но с другой стороны, мы вполне себе можем вытащить это все в отдельный «презентер», который можно и протестить, и использовать хоть на экране товара
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
ещё как то для брокера писали приложение
там каждый элемент списка имел свою подписку на изменение данных
и отрисовывался независимо
получалось что вьюхолдер был независимой mvp вьюшкой с жизненным циклом вьюхолдера
а чем это выигрывало у DiffUtil и обновления всего списка?)
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Aleksey D.
а чем это выигрывало у DiffUtil и обновления всего списка?)
по сути карточка списка могла бы быть независимым экраном
то есть если изначально подходить что виюхолдер это вьюха то никто не мешает потом сделать эту вьюшку независимой

отладивать проще

тестировать проще

в презентере сложней следить за жизненным циклом вьюхолдеров
когда надо постоянно подписяваться и отписываться от событий

в призентере надо держать пул подписок и жонглировать им
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Евгений Храмов
по сути карточка списка могла бы быть независимым экраном
то есть если изначально подходить что виюхолдер это вьюха то никто не мешает потом сделать эту вьюшку независимой

отладивать проще

тестировать проще

в презентере сложней следить за жизненным циклом вьюхолдеров
когда надо постоянно подписяваться и отписываться от событий

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

GT

Green Triangle in Moxy – MVP библиотека под Android
Green Triangle
Всем привет! У меня такой вопрос. Есть фрагмент + презентер, внутри фрагмента есть адаптер в который инжектится свой презентер. МВП делегаты получается у них связаны. Когда вьюха у фрагмента уничтожается, то мвпделегаты отцепляются друг от друга. Но после создания вью повторно, мвп делегаты не связываются. Ручками это сделать не могу, тк добавлять parentDelegate можно только при создании делегатов. Получается, что привязать мвпделегат к родительскому мвпделегату (или наоборот добавить дочерний в родительский) после отвязки - не получится?
мне просто интересно, есть ли вариант добавить в mvpdelegate родителя или children не на создании
источник