badoo / MVICore

MVI framework with events, time-travel, and more
https://badoo.github.io/MVICore/
Other
1.27k stars 90 forks source link

Multi - framework/platform support #90

Open ShikaSD opened 5 years ago

ShikaSD commented 5 years ago

This proposal allows us to move on from RxJava only implementation.

The general idea is to have a minimalistic "core" as a Kotlin MPP module with our own implementation of the base types: Source<T>, Consumer<T>, Feature and Binder.

The framework level contains a set of extensions to convert between "core" types to framework ones (e.g. from Source<T> to ObservableSource<T> from Rx and vice versa). In current PoC, we need to provide the following implementations:

As we don't do any thread/concurrency management in the "core" implementation, I suspect we need to have some checks (similar to current SameThreadVerifier) in place to prevent race conditions.

maxcruz commented 2 years ago

I love this idea; it would make the adoption of the framework more flexible if it's possible to have adapters for Flow, Reaktive, RxJava2/3. Besides, it would be helpful to decouple the reactive implementation of a feature with the framework itself.

I wonder if there is any progress in this direction and how to contribute to making it real. The PoC link is broken/not visible