2015-11-20 5 views
10

Vor kurzem begann ich viel über MVP zu lesen und ich möchte in Praktizieren meine Projekte mit ihm zu bekommen.Android MVP mit RxAndroid + Retrofit

Allerdings bin ich nicht in der Lage, richtig zu verstehen, wo sollte Rx + Retrofit-Code gehen? Ich denke, es sollte in Model Layer über Interactors sein, aber kann jemand trotzdem etwas Licht dazu bringen?

Auch was passiert mit dem RX-Rückruf? Übergeben onNext(), onCompleted() und onFailure() Daten zurück an Presenter oder implementieren wir Listener und geben sie dann an Presenter weiter?

Ich möchte auch Daten bestehen bleiben (Realm/Storio), wenn ich es in OnNext() erhalten, ist es also wieder passieren zu einem anderen Datalayer oder wo soll es gehen?

Auch sollten wir Rx Callbacks weiter entkoppeln?

Ich verfolge diesen Beitrag https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

und diese separate GitHub Repo von antonioleiva.com https://github.com/antoniolg/androidmvp

+0

Ich habe keine keine Erfahrung in Rx und Retrofit, aber sie scheinen am besten lebt in M. Betrachten P und V als eine Art „Add-on“ mit Benutzer zu interagieren zu sein, so dass ihre Verantwortung nur eine benachrichtigen Benutzer und hören Sie Interaktionen. Keine Geschäftslogik in P und V kurz. Betrachten Sie auch Ihr M als "offenes Tor" zur äußeren Codebasis, das an anderer Stelle wiederverwendet werden kann, beispielsweise in einer Nicht-Benutzer-Interaktionsanwendung (z. B. einem Systemdienst) oder in anderen Umgebungen wie GWT. Dies bringt eine gewisse Komplexität über Schnittstellen von verschiedenen Ebenen mit sich, aber dadurch wird Ihr System lose gekoppelt. –

Antwort

5

Wie Sie die RxJava Funktionalität zeigte eine Schicht Anwendungsfall des Modells definiert, so würde es in platziert werden ein Interaktor dieser Schicht. Sie können für jeden Anwendungsfall einen anderen Interaktor erstellen. Nehmen wir an, Sie ziehen eine Liste von Benutzern von Ihrem Server, dies wäre ein Anwendungsfall und ein Interaktor, der das RxJava/Retrofit Observable haben wird.

Dann werden Sie einen Moderator mit einem Beobachter in ihm haben, die in dieser Liste Benutzer interessiert ist, so wird es in diesem beobachtbare abonniert werden.

Und schließlich, wenn dieser Observer alle Daten vom Observable (onCompleted) hat, wird er diese Daten transformieren (falls benötigt) und an die View übergeben, die nur für die Anzeige zuständig sein wird.

5

Es gibt tolle post erklären mvp. Rx ist nur ein zusätzliches Werkzeug dafür.

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

gibt es tiefe Erklärung und den Quellcode mit Beispiel.

+0

Der Link hat ein Problem: 404 ... Seite nicht gefunden. Ja –

+0

, sie entfernt diesen tollen Artikel somewhy –

+0

Sie das Thema von hier zugreifen: http://webcache.googleusercontent.com/search?q=cache:http://hannesdorfmann.com/android/mosby-playbook&gws_rd=cr&ei= Sm36VtWFEIbWaofztLgM – Marzouk