用途:为 Android 与 Kotlin Multiplatform 项目提供 Kotlin 协程与 Flow 的实践模式,覆盖结构化并发、基于 Flow 的响应式数据流以及协程测试。
主要能力:
- 结构化并发:使用 viewModelScope、coroutineScope、LaunchedEffect 等作用域,避免 GlobalScope;用 coroutineScope + async 做并行分解,用 supervisorScope 让子任务失败不牵连兄弟任务。
- Flow 模式:冷流转换、StateFlow 承载 UI 状态(stateIn 配合 SharingStarted.WhileSubscribed(5_000))、combine 合并多流、SharedFlow 处理一次性事件。
- 常用操作符:debounce、distinctUntilChanged、flatMapLatest、catch、retryWhen 指数退避等。
- 调度器:CPU 密集用 Dispatchers.Default,IO 用 Dispatchers.IO(仅 JVM/Android),UI 用 Dispatchers.Main;KMP 中 IO 需自行通过 DI 提供。
- 取消:循环中调用 ensureActive(),用 try/finally 做清理,不捕获 CancellationException。
- 测试:runTest、Turbine 测试 StateFlow、TestDispatcher 与 advanceUntilIdle、用 MutableStateFlow 伪造 Flow。
使用方式:在编写协程异步代码、使用 Flow/StateFlow/SharedFlow、处理并发(并行加载、防抖、重试)、测试协程与 Flow、管理作用域与取消时启用该技能。
适用场景:Android 与 KMP 应用的异步数据加载、搜索防抖、重试、UI 状态与一次性事件分发。
限制与注意:避免 GlobalScope、在 init 中无作用域收集 Flow、用可变集合更新 MutableStateFlow、捕获 CancellationException、用 flowOn(Dispatchers.Main) 收集、在 @Composable 中不 remember 创建 Flow。具体安装命令与版本信息暂未提供。