RxJava 2 is quite a beast with several foundational types (Flowable, ParallelFlowable, Observable, Single, Maybe, Completable) with extensive API surfaces and considerable jar file size.
Arguments for splitting:
- Less conceptional weight due to the backpressure/no-backpressure difference between them.
- Flow-supporting parts, such as
Disposable, Scheduler, SimpleQueue and other support can be factored out.
- Smaller download size.
Arguments against:
- RxJava 2 ProGuards quite well
- The need to introduce 4 artifacts: common, flowable, observable, interop. The interop is required as the flowable and observable can no longer reference each other.
- Should they share the same version or have independent versions?
RxJava 2 is quite a beast with several foundational types (
Flowable,ParallelFlowable,Observable,Single,Maybe,Completable) with extensive API surfaces and considerable jar file size.Arguments for splitting:
Disposable,Scheduler,SimpleQueueand other support can be factored out.Arguments against: