Functional reactive programming is about to become the dominant paradigm in Android development. User interactions can be easier processed; the UI is updated straightforward and less code is required.
In the meanwhile, tons of additional libraries were created to complement RxJava and RxAndroid for common Android operations, e.g. RxBinding, RxPreferences, RxPermissions etc.
Being overwhelmed by this bunch of tools, the question is: How can I apply a reactive workflow in a structured way? How does functional reactive programming fit in my MVP or MVVM pattern? Is there a silver bullet how to implement an app in a full reactive manner?
This practical insight presents the MVI pattern known from Hannes Dorfmann’s blog series. The MVI pattern defines clear guidelines how a reactive architecture can look like. Apps become more readable, easier to extend, concerns are strictly separated and bug finding is simplified by design.