I've made this small project after hearing about MVI on the Talking Kotlin podcast
It is inspired by this article Implementing MVI on Android with Coroutines
I've made small improvement by not using the ViewModel since with the current evolution of the lifecycle-runtime-ktx
API you can bind your StateFlow and it's taking the lifecycle into account.