Agent skill · software engineering · affaan-m
kotlin-coroutines-flows
Android および KMP 向けの Kotlin コルーチンと Flow パターン — 構造化並行性、Flow オペレーター、StateFlow、エラーハンドリング、テスト。
Why this skill is useful
Provides specific patterns and practices for using Kotlin coroutines and Flow in Android and KMP projects that the AI wouldn't reliably generate on its own.
What it needs
Requires kotlin installed locally. About 3k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.
What this skill does
Kotlin コルーチン & Flow Android および Kotlin Multiplatform プロジェクトにおける構造化並行性、Flow ベースのリアクティブストリーム、コルーチンテストのパターン。 アクティベートするタイミング Kotlin コルーチンで非同期コードを書く リアクティブデータに Flow、StateFlow、または SharedFlow を使用する 並行操作を処理する(並列読み込み、デバウンス、リトライ) コルーチンと Flow をテストする コルーチンスコープとキャンセルを管理する 構造化並行性 スコープ階層 常に構造化並行性を使用してください — GlobalScope は絶対に使わない: 並列分解 並列作業には coroutineScope + async を使用: SupervisorScope 子の失敗が兄弟をキャンセルしてはならない場合は supervisorScope を使用: Flow パターン コールドフロー — ワンショットからストリームへの変換 UI 状態のための StateFlow WhileSubscribed(5000) は最後のサブスクライバーが離れてから 5 秒間アップストリームをアクティブに保ちます — 設定変更を再起動なしに生き延びます。 複数の Flow の結合 Flow オペレーター ワンタイムイベント用の SharedFlow ディスパッチャー KMP では Dispatchers.Default と Dispatchers.Main(すべてのプラットフォームで利用可能)を使用してください。Dispatchers.IO は JVM/Android のみです — 他のプラットフォームでは Dispatchers.Default を使用するか DI で提供してください。 キャンセル 協調的キャンセル 長時間実行されるループはキャンセルを確認する必要があります: try/finally でのクリーンアップ テスト Turbine を使った StateFlow のテスト TestDispatcher でのテスト Flow のフェイク 避けるべきアンチパターン GlobalScope の使用 — コルーチンがリークし、構造化キャンセルがない スコープなしで init {} 内で Flow をコレクトする — viewModelScope.launch を使用 ミュータブルコレクションで MutableStateFlow を使用する — 常にイミュータブルコピーを使用: state.update { it.copy(list = it.list + newItem) } CancellationException をキャッチする — 適切なキャンセルのために伝播させる コレクトするために flowOn(Dispatchers.Main) を使用する — コレクションディスパッチャーは呼び出し元のディスパッチャー remember なしで @Composable 内に Flow を作成する — 再コンポジションのたびにフローが再作成される 参考 スキル: compose-multiplatform-patterns で Flow の UI 消費を参照。 スキル: android-clean-architecture でレイヤーにおけるコルーチンの役割を参照。
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills affaan-m/kotlin-coroutines-flows--df3d7c