2015-11-20 15 views
10

Recentemente ho iniziato a leggere molto su MVP e voglio entrare in pratica con i miei progetti.MVP Android con RxAndroid + Retrofit

Tuttavia, non sono in grado di capire correttamente dove deve andare Rx + codice retrofit? Penso che dovrebbe essere in Model Layer tramite Interactors ma è ancora possibile che qualcuno ne condivida la luce?

Inoltre cosa succede con il callback RX? onNext(), onCompleted() e onFailure() restituiscono i dati a Presenter oppure implementiamo gli ascoltatori e quindi li inoltriamo a Presenter?

Voglio anche mantenere i dati (Realm/StorIO) quando lo prendo in onNext(), Quindi di nuovo passare ad un altro DataLayer o dove dovrebbe andare?

Inoltre dovremmo disaccoppiare ulteriormente i callback Rx?

Sto seguendo questo post https://davidguerrerodiaz.wordpress.com/2015/10/13/a-brief-introduction-to-a-cleaner-android-architecture-the-mvp-pattern/

e questo separato repo github da antonioleiva.com https://github.com/antoniolg/androidmvp

+0

Non ho alcuna esperienza in Rx e Retrofit, ma sembrano essere migliori dal vivo in M. Considerare P e V come una sorta di "componente aggiuntivo" per interagire con l'utente, quindi la loro responsabilità è solo quella di notificare a utente e ascolta le interazioni. Nessuna logica aziendale in P e V insomma. Considera anche la tua M come una "porta aperta" alla base di codice esterna che può essere riutilizzata altrove, diciamo in un'applicazione di interazione non utente (un servizio di sistema, per esempio), o anche in altri ambienti come GWT. Ciò comporta una certa complessità tramite interfacce di diversi livelli, ma ciò rende il sistema incoerente. –

risposta

5

Come lei ha la funzionalità RxJava definisce un caso d'uso del vostro livello di modello in modo che sarebbe stato messo in un interatore di questo strato. È possibile creare un altro interattore per ogni caso d'uso. Supponiamo che stiate estraendo un elenco di utenti dal vostro server, si tratterebbe di un caso d'uso e di un interactor con RxJava/Retrofit Observable.

Quindi sarà presente un Presenter con un Observer che è interessato a questo elenco utenti, quindi verrà sottoscritto a tale Osservabile.

Infine, quando questo Observer in ha tutti i dati da Observable (onCompleted), trasformerà questi dati (se necessario) e passerà alla View che sarà semplicemente responsabile della sua visualizzazione.

5

C'è un post fantastico che spiega mvp. Rx è solo uno strumento aggiuntivo per questo.

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

c'è spiegazione profonda e codice sorgente con esempio.

+0

Il link ha un problema: 404 ... Pagina non trovata. –

+0

Sì, hanno rimosso questo fantastico articolo in qualche modo –

+0

È possibile accedere all'argomento da qui: http://webcache.googleusercontent.com/search?q=cache:http://hannesdorfmann.com/android/mosby-playbook&gws_rd=cr&ei= Sm36VtWFEIbWaofztLgM – Marzouk

Problemi correlati