2015-11-20 6 views
10

Недавно я начал много читать о MVP, и я хочу с ним работать.Android MVP с RxAndroid + Retrofit

Однако я не могу правильно понять, где должен находиться Rx + код дооснащения? Я думаю, что это должно быть в модели Layer через Interactors, но все же может кто-то рассказать об этом немного?

Также, что происходит с обратным вызовом RX? onNext(), onCompleted() и onFailure() передает данные обратно в Presenter или мы реализуем прослушиватели, а затем передаем их в Presenter?

Я также хочу сохранить данные (Realm/StorIO), когда я получу его в onNext(), так что передайте его другому DataLayer или куда он должен идти?

Также следует ли нам отменить обратные вызовы Rx дальше?

Я выполняю этот пост https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

и это отдельный GitHub репо с antonioleiva.com https://github.com/antoniolg/androidmvp

+0

У меня нет опыта в Rx и дооснащении, но они, кажется, лучше всего живут в M. Рассмотрите P и V как своего рода «надстройку», чтобы взаимодействовать с пользователем, поэтому их ответственность состоит в том, чтобы уведомить пользователя и слушать взаимодействия. Отсутствие бизнес-логики в P и V коротким. Также рассмотрите свой M как «открытые ворота» на внешнюю кодовую базу, которая может быть повторно использована в другом месте, скажем, в приложении без взаимодействия с пользователем (например, в системной службе) или даже в других средах, таких как GWT. Это привносит определенную сложность через интерфейсы разных уровней, но это значительно снижает вашу систему. –

ответ

5

Как вы отметили функциональность RxJava определяет вариант использование вашей модели слоя, так он будет помещен в взаимодействующий с этим слоем. Вы можете создать другой интерактор для каждого варианта использования. Предположим, вы вытаскиваете список пользователей с вашего сервера, это будет прецедентом и интерактором, который будет иметь RxJava/Retrofit Observable.

Тогда у вас будет презентатор с наблюдателем в нем, который заинтересован в этом списке пользователей, поэтому он будет подписан на этот Наблюдаемый.

И, наконец, когда этот Observer in имеет все данные из Observable (onCompleted), он преобразует эти данные (при необходимости) и перейдет к представлению, которое будет отвечать за его отображение.

5

Существует потрясающее сообщение, объясняющее mvp. Rx - это еще один инструмент для этого.

http://hannesdorfmann.com/android/mosby-playbook/

есть глубокое объяснение и исходный код с примерами.

+0

У этой проблемы возникает проблема: 404 ... Страница не найдена. –

+0

Да, они удалили эту удивительную статью somehy –

+0

Вы можете получить доступ к этой теме отсюда: http://webcache.googleusercontent.com/search?q=cache:http://hannesdorfmann.com/android/mosby-playbook&gws_rd=cr&ei= Sm36VtWFEIbWaofztLgM – Marzouk

Смежные вопросы