Yamvil
  • 🚀What is Yamvil
  • ⚔️MVVM vs MVI
  • 👩‍💻Installation
  • 📖Lexicon
  • 🧰Usage
    • ㊗️UiAction
    • 📱UiState
    • 🎭UiEvent
    • 🧠ViewModel
    • 🧩Fragment
    • 🖼️Composable
Powered by GitBook
On this page
  • The Runtime Library
  • The Compiler Plugin
  • Fragments
  • Composable functions

What is Yamvil

Yamvil is a runtime library and compiler plugin to help Android Developers write Screens that adhere to the MVI Pattern.

NextMVVM vs MVI

Last updated 11 months ago

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

The runtime Library brings you three main base classes:

  • MVIViewModel<UiState, UiEvent>

  • MVIFragment<UiState, UiEvent, UiAction>

  • Actionable (one-time actions)

The Compiler Plugin

The Compiler Plugin checks a few pitfalls for us so we'll implement MVI without creating any bugs.

Fragments

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().

Composable functions

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

🚀
⚠️
doesn't work yet on Android Studio