Model-View-Intent (MVI)

Reactive Architecture.

“Intent(User) -> Model(State) -> View(UI)”

Everything is a stream.

graph LR
    User -->|Intent| Model
    Model -->|State| View
    View -->|Render| User

When to use

  • Android (Jetpack Compose), RxJava/RxJS apps.

Explanation

  • Intent: User’s intention (e.g., “Load Data”).
  • Model: Resulting state (Immutable).
  • View: Renders the state.

Pros and Cons

Pros Cons
  • Unidirectional
  • Learning curve (Reactive)
  • Immutable State
  • Memory management (Streams)
  • Code example

    Typescript (RxJS style)