It was in January when I blogged about Redux on Android and, around the same time, I've started implementing a solution in Kotlin.
My purpose was not to do the n+1 implementation of Redux, but more to provide a solution that can be used in conjunction with some of Kotlin's new language features like coroutines, to handle asynchronicity for instance.
That, by the way, has become one of the reasons why a few signatures differ with respect to the original Redux implementation. A few parts had to be stated more explicit due to the static nature of Kotlin on the one hand, and on the other, a decision has been made to omit a few mutational API calls, as they seem to address very specific purposes - just putting some more weight on immutability here. However, its noteworthy, that no behavioral changes have been made, so everything you know about Redux can be applied one-to-one to Conflate.
At the present time, Conflate provides (or will provide) the following components:
- a JVM based redux implementation
- a binding for JFx applications
- a binding for Android applications
- a logging middleware
- an epic middleware (roadmap)
- a saga middleware (roadmap)
Anyhow, there are also plans to strip off platform-specific concerns from the mentioned components, which would allow additional bindings for platforms like JS for instance. Please open an issue on Github, if you have the feeling that something is missing or can't be easily expressed by e.g. proxies or other design patterns, or if you simply have any sort of question.
One last thing to note: An Android application will be developed alongside with Conflate, showing all components in action! Currently, its only available as APK, but might find its way up into the play store.
Thanks for reading and stay tuned on one of the channels.
Become a backer or share this article with your colleagues and friends. Any kind of interaction is appreciated.