# icerockdev/moko-mvvm

Model-View-ViewModel architecture components for mobile (android & ios) Kotlin Multiplatform development

Repository: https://github.com/icerockdev/moko-mvvm
Canonical: https://ross.abutalabs.com/products/moko-mvvm
Homepage: https://moko.icerock.dev/
Language: Kotlin
License: Apache-2.0
License Family: permissive
Topics: android, kotlin, ios, kotlin-native, kotlin-multiplatform, swift, cocoapod, mvvm, databinding, viewmodel, livedata, moko, coroutines, kotlin-multiplatform-mobile
Last push: 2024-04-18T12:22:17+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2562, "days_push": 867, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1097, forks 97 (observed 2026-08-28T04:03:34.562767+00:00)

## What it is
moko-mvvm is a Kotlin Multiplatform library providing Model-View-ViewModel architecture components for mobile applications targeting Android and iOS. It offers lifecycle-aware ViewModels, LiveData/Flow reactive data holders, and an EventsDispatcher, with integration support for DataBinding, ViewBinding, Jetpack Compose, and SwiftUI.

## Use cases
- share viewmodel logic between android and ios in kotlin multiplatform
- lifecycle-aware mvvm architecture for kotlin multiplatform mobile apps
- reactive livedata or flow data holders in common kotlin code
- dispatch ui events from viewmodel to view on both platforms
- use viewmodels with jetpack compose multiplatform or swiftui
- interop with androidx lifecycle viewmodel on android

## When to choose
- building a Kotlin Multiplatform Mobile app that needs shared presentation-layer architecture
- you want ViewModel and LiveData/Flow semantics in common code with Android Architecture Components interop
- you use the moko ecosystem (moko-resources, moko-fields, etc.) and want consistent MVVM support

## When to avoid
- building a single-platform Android app where plain AndroidX ViewModel and LiveData suffice
- using a different multiplatform architecture approach like MVI (e.g., MVIKotlin, Decompose)
- your project does not use Kotlin Multiplatform at all

## Facets
- artifact type: library
- maturity: stable
- function: state-management, ui-components
- domain: mobile-development, cross-platform, web-development
- platform: jvm, windows
- tags: kotlin-multiplatform, mvvm, viewmodel, livedata, coroutines, jetpack-compose, swiftui, databinding, moko, android, ios, macos, linux

## Member repositories
- icerockdev/moko-mvvm (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:34.562767+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-30T06:46:34.866374+00:00, confidence not recorded.
  - readme: https://github.com/icerockdev/moko-mvvm (fetched 2026-08-28T04:03:34.562767+00:00, sha 3cf02b2dcfc0)
  - homepage: https://moko.icerock.dev/ (fetched 2026-08-29T12:49:39.795820+00:00, sha e977b73e3e0d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
