让 AI 编写 Robius 状态管理与持久化代码

解决 Makepad 开发痛点:通过规范定义 AppState 结构、持久化逻辑及 Scope 传递方式,让 AI 自动输出可维护的 Rust 代码,处理主题切换、窗口几何保存及跨会话状态恢复。

为什么需要这个技能

开发基于 Robrix 或 Moly 的 Makepad 应用时,开发者常面临如何正确设计跨会话状态、处理 UI 布局持久化以及安全传递状态数据的难题。

直接手写复杂的 AppState 序列化逻辑容易出错,且缺乏对线程安全、版本兼容性的考量。本技能引导 AI 依据 _base/ 目录中的生产模式(如全局注册表、状态机、本地持久化),自动生成包含 serde 标记、错误回退机制及线程本地缓存的健壮代码,显著降低状态管理难度。

适用场景

  • 初始化或重构 Makepad 项目的状态结构时。
  • 实现主题切换(Theme Switching)或保存用户界面布局时。
  • 需要在 Widget 树中安全传递状态而不污染引用时。
  • 处理用户登录状态、窗口几何及多用户数据隔离时。

核心工作流

  1. 定义核心状态结构:使用 #[derive(Serialize, Deserialize)] 定义 AppState,利用 #[serde(skip)] 排除临时登录状态等非持久化字段。
  2. 配置持久化路径:区分用户特定目录(persistent_state_dir)与全局应用目录,分别存储应用逻辑状态和窗口几何信息。
  3. 实现加载与保存逻辑:编写 load_app_state 函数,处理文件不存在或格式不兼容时的默认回退,并自动备份旧文件。
  4. 集成 Scope 传递:在 AppMain::handle_event 中使用 Scope::with_data 将状态注入 UI 树,避免手动传递引用导致的数据竞争。
  5. 处理线程安全:对于纯 UI 缓存,使用 thread_local! 配合 Cx 参数,确保数据仅在 UI 线程访问。

下载和安装

下载 robius-state-management 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的使用说明文档。

你可能还需要

暂无推荐