There are many ways to name this architecture, Unidirectional data flow, MVI, Redux but all these names are making reference to the same or similar concept: Create a single source of truth and a unidirectional information flow.
By the way, MVI (Model View Intent) might confuse some people because Intent is already used in Android with another meaning. In my opinion “Unidirectional architecture” is better naming.
The main purpose of this article is to make a simple implementation of this architecture with the recent StateFlow from Kotlin, test edge cases and try to solve possible problems. …