mcpField
A
android-coroutines-flow

android-coroutines-flow

github.com/krutikjain开发14279 次安装31 周前更新
代码仓库

关于 android-coroutines-flow

面向 Android 开发者的技能,涵盖协程、Flow 收集与结构化并发,强调生命周期感知、取消安全,以及遵循 Android 和 Kotlin 指引的最小改动。

主要功能

  1. 01生命周期感知的 Flow 收集
  2. 02ViewModel 中的结构化并发
  3. 03注入调度器
  4. 04取消安全的错误处理
  5. 05聚焦实现与验证的工作流

适用场景

  1. 01修复协程作用域和生命周期问题
  2. 02构建 Android 异步流水线
  3. 03处理取消与配置变更

安装

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

$npx skills add https://github.com/krutikjain/android-agent-skills --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