SuperAPI AI 工具集

desktop-gui-dev

编程与开发

查看项目

更新于 10-27 16:26

技能介绍

Desktop GUI Dev 是一个面向 Tauri 桌面 GUI 应用的开发技能,用于构建、调试、打包和审查 Tauri 应用。它仅适用于 Tauri 桌面应用,不适用于其他桌面框架。

用途 该技能把应用视为一个 Tauri 外壳,包含无特权前端、Rust 原生层、本地数据或持久化以及平台集成。它要求在你触及的每个层面保持前端契约、Rust 命令、能力声明、打包元数据和运行时行为相互对齐。

主要能力

  • 判断用户需求属于新建 Tauri 应用、添加功能、修复缺陷,还是打包与发布工作。
  • 在编辑前阅读实际的构建文件和应用清单,优先以源码而非过时文档为准。
  • 在用户未指定实现选择且仓库未约束时,默认采用 Tauri 2.x、React 19 + TypeScript、Tailwind CSS 4、Zustand、Rust 侧 rusqlite 访问 SQLite 以及 Recharts。
  • 使用 rg 进行搜索,并将改动限制在能保持前端、Rust、能力和打包一致性的最小文件集内。
  • 对于脚手架命令、前置条件、插件设置、权限、打包、签名、更新器工作和安全敏感默认值,当官方 Tauri 文档与记忆或仓库笔记不一致时,优先参考官方文档。
  • 提供 references/tauri.md 参考,涵盖 Tauri 项目创建、命令边界、能力、插件、打包和验证。

使用方式 采用桥接优先架构:前端代码保持无特权,通过带类型的 Rust 后端适配器通信。在连接 UI 行为前先定义请求、响应和错误形状。优先使用围绕 Tauri 命令的带类型前端包装函数,避免组件中散落原始 invoke 调用。保持命令名称、载荷形状、序列化规则和错误处理在 Rust 处理器与前端调用方之间稳定。添加特权行为时,在同一轮改动中更新实现、能力、命令暴露、测试和 UI 消费方。

脚手架方面,默认技术栈从 React + TypeScript 起步模板开始,添加 Tailwind CSS 4、Zustand、Recharts 以及 Rust 侧 rusqlite 的 SQLite 访问,除非仓库已选择替代方案。若前端已存在,则使用 Tauri 手动设置流程,并保留仓库现有的包管理器、脚本和构建布局。

适用场景

  • 构建带系统托盘和自启动的 Tauri 桌面应用。
  • 用 React 和本地 SQLite 存储搭建 Tauri 应用脚手架。
  • 将现有 Web 应用转换为 Tauri 桌面应用。
  • 为 Tauri 应用添加全局快捷键、通知和深度链接。
  • 为 Tauri 应用打包并签名 Windows 安装程序和 macOS 构建。
  • 在添加更新器支持前审查 Tauri 应用架构。
  • 在发布前审计 Tauri 发布计划。

限制

  • 不用于没有 Tauri 运行时的纯浏览器 Web 应用。
  • 不用于仅移动端应用、后端服务或仅 CLI 工具。
  • 不用于使用非 Tauri 运行时构建的桌面应用。
  • 不用于网站设计或前端工作,除非请求明确包含 Tauri 打包、原生集成或桌面运行时行为。

规划与验证 在编码前定义能证明应用形态的最小垂直切片:一个窗口、一条导航路径、一个状态流和一个持久化或原生命令操作。提前列出所需的 Tauri 集成:托盘、全局快捷键、文件对话框、通知、深度链接、自启动、后台工作器、更新器、签名和安装目标。保持项目结构清晰,分离 UI、带类型命令包装、Rust 命令、领域逻辑、持久化、能力和打包资源。

完成前运行与仓库匹配的前端 lint、类型检查、构建和测试命令;当改动触及 Rust 代码时运行 cargo fmt、cargo clippy 和 cargo test;当改动跨越原生边界时在 Tauri 运行时中启动应用。对于新脚手架,在宣布应用就绪前验证干净安装、首次启动和打包构建路径。明确说明哪些验证步骤未运行及原因。

保护用户数据与系统状态 假设应用可能指向真实用户数据、配置目录、缓存路径或系统服务。在开发破坏性流程时优先使用临时配置文件、夹具数据或一次性数据库。除非任务明确要求,不要删除真实数据、覆盖用户设置或修改自启动、托盘或后台行为。当 UI 可能冻结或看似挂起时,用取消、超时或进度报告保护长时间运行的 Rust 工作。