コンテンツにスキップ

Monaka

Kotlin Multiplatform MVI ステートマシンライブラリです。状態・アクション・エフェクトとその遷移を型安全な DSL で定義できます。シングルコルーチンのアクターモデルにより、確定的かつ競合のない状態更新を保証します。

対応ターゲット: Android · iOS (arm64、x64、Simulator arm64) · JVM · macOS · watchOS · tvOS · Linux · Windows · JS · Wasm


コアコンセプト

コンセプト インターフェース 役割
State State ある時点でのマシンのスナップショット
Action Action UI またはシステムからディスパッチされる意図
Effect Effect 一度限りのサイドエフェクト(ナビゲーション、トースト、分析)
Store Store<S,A,E> 実行中のインスタンス。stateactionseffectsdispatch を公開

エフェクトは一度限りです。リプレイなしの SharedFlow で発行されるため、遅れてサブスクライブしたコレクターは過去の発行を受け取れません。


はじめに

Monaka が初めての方はこちらから:


ガイド


Gradle プラグイン

dev.gmvalentino.monaka Gradle プラグインは3つのコード生成タスクを提供します:

タスク 出力 ドキュメント
generateMonakaYaml ステートマシンごとの .yaml スペック YAML ジェネレーター
generateMonakaPuml マシンごとの .puml PlantUML ダイアグラム PlantUML ジェネレーター
generateMonakaStubs Kotlin の StateActionEffectStateMachine ファイル スタブジェネレーター