MVP + RxJava – ¿Poner los progtwigdores en el presentador o en el interaccionador?

Estoy desarrollando una aplicación de Android con MVP y RxJava. Bueno, tengo una duda:

Cuando estoy creando mi presentador e interactor puedo ponerme los progtwigdores en el presentador, así:

Progtwigdores en el presentador

Presentador:

override fun tryLogin(username: String, password: String) { mLoginInteractor.login(username, password) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Subscriber<User>(){ [...] } 

Interactor de inicio de session:

 override fun login(username: String, password: String) = mRetrofit.create(ApiClient::class.java).login() 

O puedo configurar los progtwigdores en Interactor, así:

Progtwigdores en el Interactor

Presentador:

  override fun tryLogin(username: String, password: String) { mLoginInteractor.login(username, password) .subscribe(object : Subscriber<User>(){ [...] } 

Interactor de inicio de session:

  override fun login(username: String, password: String) = mRetrofit.create(ApiClient::class.java).login() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) 

Veo que Google aconseja establecer Schedulers en el Interactor. Puedes ver esto en este enlace:

https://github.com/googlesamples/androidarchitecture/tree/todo-mvp-rxjava/

Pero muchas personas ponen el código en el Presentador, como este ejemplo:

https://github.com/BoydHogerheijde/Android-MVP-example/blob/master/app/src/main/java/nl/bhogerheijde/example/rxmvp/interactor/Interactor.java

Entonces, ¿configuro Schedulers en el Presentador o en el Interactor ?

(Creo que es una mejor idea include el Presentador porque el trabajo de Intractor es solo para get los Datos, pero tal vez estoy equivocado …)

Si desea tener una buena capacidad de compilation, le recomiendo que especifique sus planificadores lo más tarde posible (a less que sea necesario); esto usualmente significa justo antes de suscribirse. De esta forma, puede reutilizar fe login() en otro flujo sin tener que realizar subprocesss todo el time.

Sin embargo, esto es como, solo mi opinión …

Si vas a probar en equipo al presentador, probablemente debas poner el planificador en el interactor, porque el subscribeOn() está (la mayoría de las veces) relacionado con Android (debido al progtwigdor principal de subprocesss) y no podrás pon a testing tu presentador (a less que te burles de los progtwigdores) si tiene classs específicas de Android dentro de él.

  • RxJava cómo agrupar elementos de una list en Map <Key, List <Value >>
  • Cómo controlar el flujo sin .flatMap, que rompe una stream reactiva que impide que operadores como distinctUntilChanged trabajen en toda la secuencia
  • RxJava: onBackpressureBlock () comportamiento extraño
  • RxJava cómo crear Observable a partir de una Suscripción
  • Cómo contar el time de ejecución de lo observable
  • Kolin - Lista de artículos para el artículo de lists
  • Espere hasta que dos observables emitan verdadero
  • ¿Por qué obtengo una android.os.TransactionTooLargeException en mi aplicación de Android escrita en Kotlin / rxJava cuando salgo de la aplicación? (onExit / onPause)?
  • Cómo upload el valor de retorno de un constructor
  • rx.Scheduler no se puede proporcionar sin un método @ Provides- o @ Produces-anotado
  • ¿Cuándo no usar el Observable de RxJava?