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.

  • ¿Alguna diferencia entre "Subject.asObservable ()" y el tema en sí "Subject"?
  • Usando RxJava para get un resultado distinto con Realm y Retrofit
  • RxJava (Kotlin), Observable.amb y PublishSubject no están disparando
  • Obtener files adjuntos de publicaciones de Facebook devolver NullPointerException
  • No se llama a ninguno de los suscriptores de RxJava onNext / onError / onComplete al encadenar Observables creado desde Observable.create ()
  • RXJava ... emiten un observable cada segundo
  • Manejo de tipo anulable en RxJava con Kotlin
  • Repetir acciones en estado con RxJava
  • Error de compilation de error de coincidencia de tipo Kotlin: Requiere éxito <T>, Encontrado MyError
  • ¿Hay alguna manera de orderar las keys groupBy en rx-java / kotlin?
  • Cómo hacer que la function regrese Observable