What is Yamvil
Yamvil is a runtime library and compiler plugin to help Android Developers write Screens that adhere to the MVI Pattern.
Last updated
Yamvil is a runtime library and compiler plugin to help Android Developers write Screens that adhere to the MVI Pattern.
Last updated
This is a Work in Progress
The Runtime Library is totally usable as it is just a "normal" Android Library.
The Compiler Plugin works in terms of compilation errors shown in the Build output, but as K2 IDE Plugin , the errors or warnings thrown by Yamvil doesn't show up in Android Studio, yet.
The runtime Library brings you three main base classes:
MVIViewModel<UiState, UiEvent>
MVIFragment<UiState, UiEvent, UiAction>
Actionable (one-time actions)
The Compiler Plugin checks a few pitfalls for us so we'll implement MVI without creating any bugs.
MVIFragment as a base class brings all the infrastructure needed to use MVI properly, besides one detail.
The Compiler plugin will throw an error (or a warning instead if you choose to) if you've implemented Actionable
on your UiState
but forgot to call state.onAction
in observeUiState()
.
The compiler plugin will validate that a Composable is written correctly, meaning it has
an uiState
parameter of the type of its ViewModel (matched by name)
an handleEvent()
parameter function getting the Action Type of its ViewModel