
Lightweight, expressive MVI architecture with minimal boilerplate, delivering unidirectional state management using flows, pure reducers, intents, effects, and modular integrations for UI, DI, use cases, dispatchers.
A lightweight, expressive, quick learning curve, multiplatform MVI architecture for Kotlin Multiplatform
StelleMVI is a small but powerful library designed to simplify state management using the *
Model–View–Intent (MVI)* architecture across Kotlin Multiplatform targets.
It provides a clean, predictable, unidirectional data-flow system built on top of Kotlin Flows, with
minimal boilerplate and high extensibility.
StelleMVI structures your application around:
StelleMVI is organized into several modules so you only include what you need.
mvi: The core of the architecture. Contains StelleViewModel, StelleState, etc.mvi-compose: Base classes like StelleScreen to integrate MVI with Jetpack/JetBrains
Compose.mvi-koin: Integration classes for injecting ViewModels and their children using Koin.mvi-compose-koin: A convenience module that combines Compose and Koin integrations.usecase: Provides the StelleUseCase interface for business logic.dispatchers: Provides a standardized set of CoroutineDispatchers for KMP.You can download this library from MavenCentral
sourceSets {
commonMain {
dependencies {
implementation "io.github.stellelibs:mvi:$stelleMVIVersion"
}
}
}sourceSets {
commonMain.dependencies {
dependencies {
implementation("io.github.stellelibs:mvi:$stelleMVIVersion")
}
}
}
In the sample folder you can find a sample project showing how to use Stelle MVI in a Kotlin Multiplatform project with Compose Multiplatform.
The MVI Pattern
Start here to understand the core principles of the Model-View-Intent architecture and how
StelleMVI implements it.
Basic Tutorial (No Dependency Injection)
Learn the fundamentals of StelleMVI by building a feature without any dependency injection
framework.
Koin Integration Guide
A dedicated guide to integrating StelleMVI with Koin for robust dependency injection in your KMP
project.
Advanced Guide: Parent-Child ViewModels
Explore the powerful Parent-Child pattern for managing complexity in large screens.
UseCase Module Guide
Learn how to use the usecase module to structure your business logic cleanly and effectively.
Dispatchers Module Guide
Understand the dispatchers module and how it provides a consistent way to manage coroutine
dispatchers across all platforms.
A lightweight, expressive, quick learning curve, multiplatform MVI architecture for Kotlin Multiplatform
StelleMVI is a small but powerful library designed to simplify state management using the *
Model–View–Intent (MVI)* architecture across Kotlin Multiplatform targets.
It provides a clean, predictable, unidirectional data-flow system built on top of Kotlin Flows, with
minimal boilerplate and high extensibility.
StelleMVI structures your application around:
StelleMVI is organized into several modules so you only include what you need.
mvi: The core of the architecture. Contains StelleViewModel, StelleState, etc.mvi-compose: Base classes like StelleScreen to integrate MVI with Jetpack/JetBrains
Compose.mvi-koin: Integration classes for injecting ViewModels and their children using Koin.mvi-compose-koin: A convenience module that combines Compose and Koin integrations.usecase: Provides the StelleUseCase interface for business logic.dispatchers: Provides a standardized set of CoroutineDispatchers for KMP.You can download this library from MavenCentral
sourceSets {
commonMain {
dependencies {
implementation "io.github.stellelibs:mvi:$stelleMVIVersion"
}
}
}sourceSets {
commonMain.dependencies {
dependencies {
implementation("io.github.stellelibs:mvi:$stelleMVIVersion")
}
}
}
In the sample folder you can find a sample project showing how to use Stelle MVI in a Kotlin Multiplatform project with Compose Multiplatform.
The MVI Pattern
Start here to understand the core principles of the Model-View-Intent architecture and how
StelleMVI implements it.
Basic Tutorial (No Dependency Injection)
Learn the fundamentals of StelleMVI by building a feature without any dependency injection
framework.
Koin Integration Guide
A dedicated guide to integrating StelleMVI with Koin for robust dependency injection in your KMP
project.
Advanced Guide: Parent-Child ViewModels
Explore the powerful Parent-Child pattern for managing complexity in large screens.
UseCase Module Guide
Learn how to use the usecase module to structure your business logic cleanly and effectively.
Dispatchers Module Guide
Understand the dispatchers module and how it provides a consistent way to manage coroutine
dispatchers across all platforms.