mcpField
A
android-coroutines-flow

android-coroutines-flow

github.com/midudev开发7.0k60 次安装2 周前更新
代码仓库

关于 android-coroutines-flow

面向 Android 开发的技能,指导使用 Kotlin 协程、Flow、结构化并发、Dispatcher 和可安全取消的异步模式,涵盖生命周期感知的收集与 ViewModel 作用域。

主要功能

  1. 01协程作用域与 Flow 使用指导
  2. 02生命周期感知的 Flow 收集模式
  3. 03Dispatcher 的注入与选择
  4. 04支持安全取消的错误处理
  5. 05检查和验证改动的工作流程

适用场景

  1. 01修复与 Android 生命周期关联的 Flow 收集
  2. 02组织 ViewModel 中的异步任务
  3. 03替换 Repository 中硬编码的 Dispatcher
  4. 04错误处理中保留取消行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/midudev/autoskills --skill android-coroutines-flow

安装后在 Claude Code 中输入/android-coroutines-flow确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
official-links.md
patterns.md
scenarios.md
scripts/
run_examples.sh

详细介绍

Android 协程 Flow

适用场景

  • 在以下请求中使用此技能:Android Flow 收集、修复 Android 中的协程作用域、ViewModel 中的结构化并发。
  • 主要目标:使用协程、Flow、结构化并发、调度器和取消安全的 Android 异步流水线。
  • 如果范围扩大,请移交给以下技能:
  • android-state-management
  • android-workmanager-notifications

工作流

  1. 将请求对应到当前 Android 技术栈、模块边界和最低支持 API 级别。
  2. 检查现有实现中的隐式假设、重复辅助工具和过时模式。
  3. 进行最小幅度的更改,以提高正确性、可读性和长期可维护性。
  4. 根据相关示例应用路径和仓库基准验证结果。
  5. 只有在核心基础稳定后,才将相邻工作移交给下一个专门技能。

注意事项

  • 当官方 Android 和 Kotlin 指南与本地自定义约定冲突时,优先遵循官方指南。
  • 保持公共 API 简洁明确;避免使用会隐藏 Android 生命周期开销的巧妙抽象。
  • 除非请求明确需要,否则不要将架构清理与产品行为更改混在一起。
  • 记录会影响旧模块或生成代码的兼容性限制。

反模式

  • 在模块间零散添加辅助工具,却没有明确的归属边界。
  • 在纯领域层或数据层中引入特定框架的代码。
  • 只需更改一个契约,却重构所有相邻文件。
  • 只暗示迁移说明,而不明确写下来。

修复示例

注入调度器,而不是硬编码
class TaskRepository(
    private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO,
) {
    suspend fun refresh(): List<TaskUiModel> = withContext(ioDispatcher) { loadTasks() }
}
以感知生命周期的方式收集 Flow
viewLifecycleOwner.lifecycleScope.launch {
    viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
        viewModel.uiState.collect { render(it) }
    }
}
在通用错误处理中保留取消状态
try {
    repository.refresh()
} catch (error: CancellationException) {
    throw error
} catch (error: Exception) {
    emit(UiState.Error(error))
}

示例

顺利路径
  • 场景:在 Compose 测试项目中,将模型任务更新建模为 StateFlow 和共享事件通道。
  • 命令:cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
边缘情况
  • 场景:在 XML Activity Flow 中从取消和配置更改中恢复。
  • 命令:cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest
故障恢复
  • 场景:区分协程请求与状态管理和 WorkManager 提示词。
  • 命令:python3 scripts/eval_triggers.py --skill android-coroutines-flow

完成检查清单

  • 实现路径明确、精简,并对应正确的 Android 使用场景。
  • 已运行或更新相关示例命令和基准提示词。
  • 当请求涉及相邻技能的范围时,已记录移交事项。
  • 官方参考资料涵盖所选模式以及主要迁移或故障排查路径。

官方参考资料

评论

支持 Markdown