关于 android-state-management
面向 Android 开发的技能,指导在 Compose 和 XML 界面中设计可预测的状态、事件、reducer 与副作用。重点是生命周期感知的状态归属,以及加载、错误、权限和导航的恢复处理。
主要功能
- 01设计不可变界面状态
- 02区分状态与一次性事件
- 03处理加载、空和错误状态
- 04考虑生命周期与配置变更
- 05验证权限和导航行为
适用场景
- 01组织 Android Compose 界面状态
- 02呈现权限拒绝和同步失败
- 03避免在可复用 UI 中处理导航副作用
- 04测试配置变更时的界面行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-state-management安装后在 Claude Code 中输入/android-state-management确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android 状态管理
适用场景
- 当请求涉及以下内容时使用此技能:Android UI 状态 reducer、Compose 或 XML Android 中的状态管理、Android 屏幕中的一次性事件。
- 主要目标:为 Android UI 建模屏幕状态、事件、reducer 和副作用,并以可预测且感知生命周期的方式管理其归属。
- 当范围扩大时,移交给以下技能:
android-coroutines-flowandroid-ui-states-validation
工作流
- 确认用户可见的流程、目标设备行为以及需要关注的失败状态。
- 确定该流程所属的屏幕、活动、目标位置和状态持有者。
- 使用明确的加载、成功、空和错误处理来实现该流程。
- 在示例应用中验证无障碍功能、配置变更和返回栈行为。
- 将数据、架构或发布方面的问题移交给交接说明中指出的专用技能。
防护措施
- 将加载、空、错误、离线和权限被拒绝等状态视为一等 UI 状态。
- 不要将导航或权限副作用隐藏在可复用的 UI 组件中。
- 优先使用感知生命周期的 API,而非手动回调链。
- 确保深层链接、Intent 和权限提示可测试且可观测。
反模式
- 认为产品流程只需考虑顺利路径。
- 在多个位置硬编码请求代码或路由字符串。
- 直接从存储库或网络层触发导航。
- 发布缺少权限被拒绝或状态异常时恢复界面的流程。
修复示例
保持单一且不可变的 UI 状态界面
data class TaskBoardState(
val tasks: List<TaskUiModel> = emptyList(),
val isLoading: Boolean = false,
val errorMessage: String? = null,
)
分离持久状态与一次性事件
private val _uiState = MutableStateFlow(TaskBoardState())
val uiState: StateFlow<TaskBoardState> = _uiState.asStateFlow()
private val _events = MutableSharedFlow<TaskBoardEvent>(replay = 0)
val events: SharedFlow<TaskBoardEvent> = _events
通过归约状态更新来替代直接修改 UI
_uiState.update { state ->
state.copy(isLoading = false, tasks = refreshedTasks, errorMessage = null)
}
示例
顺利路径
- 场景:通过单一不可变屏幕状态驱动 Compose 任务看板。
- 命令:
cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
边缘情况
- 场景:在 XML fixture 中明确表示权限被拒绝和同步失败状态。
- 命令:
cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest
失败恢复
- 场景:将状态请求与协程、导航和 UI 验证提示分离。
- 命令:
python3 scripts/eval_triggers.py --skill android-state-management
完成检查清单
- 实现路径明确、精简,并对应正确的 Android 界面。
- 已运行或更新相关示例命令和基准提示词。
- 当请求涉及相邻技能时,已记录交接事项。
- 官方参考资料涵盖所选模式以及主要的迁移或故障排除路径。
官方参考资料
评论
支持 Markdown