# orbit-mvi/orbit-mvi

A simple MVI framework for Kotlin Multiplatform and Android

Repository: https://github.com/orbit-mvi/orbit-mvi
Canonical: https://ross.abutalabs.com/products/orbit-mvi
Homepage: https://orbit-mvi.org
Language: Kotlin
License: Apache-2.0
License Family: permissive
Topics: mvi, mvi-android, mvi-coroutines-flow-kotlin, mvi-coroutines-flow, hacktoberfest
Last push: 2026-08-08T06:50:51+00:00

## Health v2 (maintenance only)
Score: 85/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 96, release rhythm 61, longevity 100
- inputs: {"age_days": 2080, "days_push": 25, "days_rel": 51, "gap_med": 208.0, "n_releases_24m": 3}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1336, forks 87 (observed 2026-08-28T04:04:25.544981+00:00)

## What it is
Orbit is a simple, type-safe MVI framework for Kotlin Multiplatform that implements Redux-inspired unidirectional data flow for shared business logic across Android, iOS and desktop. It provides lifecycle-safe flows, a multiplatform ViewModel with SavedState support, Compose Multiplatform integration, and testing utilities.

## Use cases
- manage app state with MVI architecture in Kotlin
- share ViewModel business logic between Android and iOS
- implement unidirectional data flow with coroutines and flows
- integrate state management with Jetpack Compose and Compose Multiplatform
- unit test state and side effect flows in ViewModels
- prevent memory leaks when collecting infinite flows
- save and restore UI state across platforms

## When to choose
- you build Kotlin Multiplatform or Android apps and want a lightweight, type-safe MVI pattern
- you want Redux-style unidirectional data flow integrated with ViewModel and Compose
- you need lifecycle-safe flow collection and state persistence out of the box

## When to avoid
- your project is not on Kotlin/JVM or Kotlin Multiplatform
- you prefer other architecture patterns like MVP or plain MVVM without MVI
- you need a framework with a much larger ecosystem or community than MVI-specific libraries

## Facets
- artifact type: framework
- maturity: active
- function: state-management, web-framework, testing
- domain: mobile-development, frontend, cross-platform, developer-tools
- platform: jvm, cross-platform
- tags: mvi, kotlin-multiplatform, coroutines, jetpack-compose, redux, unidirectional-data-flow, viewmodel, android, ios, desktop

## Member repositories
- orbit-mvi/orbit-mvi (main) score 85

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:25.544981+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:44:16.278091+00:00, confidence not recorded.
  - readme: https://github.com/orbit-mvi/orbit-mvi (fetched 2026-08-28T04:04:25.544981+00:00, sha 9e2657e810af)
  - homepage: https://orbit-mvi.org (fetched 2026-08-29T12:03:29.204221+00:00, sha 3ff44f9148bc)
- Data as of 2026-08-30T08:39:29.467469+00:00.
