2015-11-20 18 views
10

Niedawno zacząłem dużo czytać o MVP i chcę zająć się ćwiczeniem moich projektów.Android MVP z RxAndroid + Retrofit

Jednak nie jestem w stanie poprawnie zrozumieć, gdzie powinien iść kod Rx + Retrofit? Myślę, że powinno to być w warstwie modelowej za pośrednictwem Interaktorów, ale czy ktoś może podzielić się tym trochę?

Co się dzieje z wywołaniem zwrotnym RX? onNext(), onCompleted() i onFailure() przekazują dane z powrotem do Presenter lub czy wdrażamy detektory, a następnie przekazujemy je do Presenter?

Chcę również zachować dane (Realm/StorIO), gdy dostaję go onNext(), więc ponownie przekazać go do innego DataLayer lub gdzie powinien iść?

Czy powinniśmy dalej rozłączać wywołania zwrotne Rx?

śledzę ten post https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

i to oddzielna GitHub repo z antonioleiva.com https://github.com/antoniolg/androidmvp

+0

Nie mam żadnego doświadczenia w Rx i Retroficie, ale wydaje się, że najlepiej jest żyć w M. Należy rozważyć P i V jako rodzaj "dodatku" do interakcji z użytkownikiem, więc ich obowiązkiem jest powiadomienie użytkownik i słuchaj interakcji. Brak logiki biznesowej w P i V w skrócie. Rozważ także swoje M jako "otwartą bramę" na zewnętrzną bazę kodów, która może być ponownie użyta gdzie indziej, powiedzmy w aplikacji niezwiązanej z interakcją użytkownika (np. Usługa systemowa) lub nawet w innych środowiskach, takich jak GWT. Daje to pewną złożoność poprzez interfejsy różnych warstw, ale to powoduje, że twój system jest luźno sprzężony. –

Odpowiedz

5

Jak wskazał funkcjonalność RxJava definiuje przypadek użycia swojej warstwie modelu więc to być umieszczone w interaktor tej warstwy. Możesz utworzyć inny interaktor dla każdego przypadku użycia. Powiedzmy, że wyciągasz listę użytkowników ze swojego serwera, będzie to przypadek użycia i interaktor, który będzie miał RxJava/Retrofit Observable.

Następnie będziesz mieć Prezentera z obserwatorem, który jest zainteresowany tą listą użytkowników, więc zostanie zapisany do tego Obserwowalnego.

I na koniec, gdy ten obserwator ma wszystkie dane z Obserwowalnego (onCompleted), przekształci te dane (jeśli to konieczne) i przejdzie do widoku, który będzie odpowiedzialny za ich wyświetlenie.

5

Istnieje niesamowity post wyjaśniający mvp. Rx to dodatkowe narzędzie do tego.

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

jest głęboko wyjaśnienie i kod źródłowy z przykładu.

+0

Łącze ma problem: 404 ... Nie znaleziono strony. –

+0

Tak, usunęli ten niesamowity artykuł. –

+0

Możesz uzyskać dostęp do tego tematu: http://webcache.googleusercontent.com/search?q=cache:http://hannesdorfmann.com/android/mosby-playbook&gws_rd=cr&ei= Sm36VtWFEIbWaofztLgM – Marzouk