Size: a a a

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

2018 November 21

AP

Alexey Pushkarev in Moxy – MVP библиотека под Android
Denis
Добрый вечер.
Есть кейс 1 активти и 3 фрагментам.
Как осуществлять обмен действиями активити - фрагмент? так же через интерфейсы, которые дёргают презентр активити?
вот поэтому мне лайфдаты с вьюмодлями лучше зашли
источник

MR

Max Rovkin in Moxy – MVP библиотека под Android
Andrei Kravchenko
У меня был такой кейс: активити, в ней вьюпейджер с тремя фрагментами. На самой активити строка поиска. Результат поиска был сложно-замудренный и после его разбора на три части каждую нужно было запихнуть для отображения в свой фрагмент во вьюпейджере. Я сделал так: в презентере активити завел BehaviourSubject(RxJava)  и в каждом фрагменте получал активити, кастовал ее к нужному типу, чтобы получить презентер. У презентера сделал методы по подписке на нужный сабджект и таким образом получал disposable, который не забывал отписывать в каждом из трех фрагментов. Как результат: данные получаю и разбираю в одном месте - результат для отображения рассылается считай, что автоматически сразу в три фрагмента.
Вообще лучше шарить интерактор, у которого наружу бы торчали три метода и выплевывали нужные данные, по факту тот же subject, но тип у метода лучше сделать observable, в активити в интерактор делать запрос с поиском а в subject пихать результат, а в каждом уже методе фильтровать как надо для правильной выдачи
источник

MR

Max Rovkin in Moxy – MVP библиотека под Android
Так получается чище, в случае чего, интерактор легко подменяется и можно, если надо, избавиться от subject совсем незаметно
источник

Y

Yaroslav in Moxy – MVP библиотека под Android
Denis
А если без ивентбаса?)
Сойдёт любой посредник, который живёт не меньше презентеров. Тут уже на вкус и цвет, хоть рукописный.
источник

AK

Andrei Kravchenko in Moxy – MVP библиотека под Android
Спасибо за совет) Учту)
источник

AK

Andrei Kravchenko in Moxy – MVP библиотека под Android
Так получается чище, в случае чего, интерактор легко подменяется и можно, если надо, избавиться от subject совсем незаметно
источник
2018 November 22

D

Denis in Moxy – MVP библиотека под Android
Yaroslav
Сойдёт любой посредник, который живёт не меньше презентеров. Тут уже на вкус и цвет, хоть рукописный.
Не совсем понял. Нет что ли никакогг стандартного решения? Может у вас есть какой нить сэмпл?
источник

D

Denis in Moxy – MVP библиотека под Android
Тогда вот такой вопрос. У меня есть активити, у которого 3 фрагмент. На всех фрагментах есть ввод текста и переход на след фрагмент (кроме 3). На каждом фрагменте есть проверка введённого текста. Вот стоит вопрос сделать презентер у активити и там рулить всем этим?  Или один презентер и 3 фрагмента? Или 3 фрагмента и 3 презентера ?)
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
3 фрагменат, 3 презентера + 1 активити, 1 презентер
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
и тольько если это один и тот же класс фрагмента, то тогда конечно и 1 презентер. презентер ничем не хуже и не лучше вью - это всё-равно часть presentation-слоя
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Наворачивать переиспользуемость стоит больше в слое модели
источник

D

Denis in Moxy – MVP библиотека под Android
Понял, благодарю. Я тоже склонялся к 3 фрагментам + 3 презентера, т.к. если все в один засовывать, то слишком сложная логика получается
источник

D

Denis in Moxy – MVP библиотека под Android
Yuri Shmakov
Наворачивать переиспользуемость стоит больше в слое модели
А для переключения фрагмента (например с первого на второй) нужно обработать клик во фрагменте, он говорит об этом своему презентеру, презентер фрагмента вызыыает метод этого же фрагмента и сообщает в активити, активити говорит своему презентеру что нужно поменять фрагмент, презентер активити  вызывает метод с фрагмент менеджером в активити и меняется фрагмент, правильно?
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Denis
А для переключения фрагмента (например с первого на второй) нужно обработать клик во фрагменте, он говорит об этом своему презентеру, презентер фрагмента вызыыает метод этого же фрагмента и сообщает в активити, активити говорит своему презентеру что нужно поменять фрагмент, презентер активити  вызывает метод с фрагмент менеджером в активити и меняется фрагмент, правильно?
Да, как вариант. Или делать навигацию вообще через какой-нибудь роутер+навигатор. Например можно брать чичерони )
источник

D

Denis in Moxy – MVP библиотека под Android
У меня в принципе своей навигатор есть, но там реализовано только переключение активити.
источник

ВБ

Влад Баженов in Moxy – MVP библиотека под Android
Denis
Не совсем понял. Нет что ли никакогг стандартного решения? Может у вас есть какой нить сэмпл?
Напоминает кейс с визардом из архитектурного кукбука архитектурного чатика
источник

D

Denis in Moxy – MVP библиотека под Android
Влад Баженов
Напоминает кейс с визардом из архитектурного кукбука архитектурного чатика
Да, это и есть визард :)
источник

D

Denis in Moxy – MVP библиотека под Android
Сэмпл в закрепе?
источник

ВБ

Влад Баженов in Moxy – MVP библиотека под Android
Denis
Сэмпл в закрепе?
Да
источник

ВБ

Влад Баженов in Moxy – MVP библиотека под Android
Denis
Сэмпл в закрепе?
источник