使用 Tuist 高效构建 macOS 菜单栏应用

解决 macOS 菜单栏应用在开发中常见的架构混乱和构建冗余问题:通过引入 Tuist 管理项目配置,并强制执行分层架构,确保 UI、状态管理与网络请求完全解耦。

为什么需要这个技能

开发 macOS 菜单栏应用(LSUIElement)时,开发者容易将网络请求、数据处理逻辑直接写在 SwiftUI 的 View 中,导致代码难以维护且 UI 响应迟缓。同时,依赖 Xcode 手动管理项目文件在团队协作中容易产生冲突。

本技能通过 Tuist-first 的工作流,将项目定义代码化,并规定了严格的层级结构(Model Client Store View),确保应用在处理 API 数据流时保持稳定,且可以通过标准化的脚本实现快速迭代。

适用场景

  • 使用 SwiftUI 开发仅存在于菜单栏(Menubar-only)的实用工具。
  • 需要通过 Tuist 替代手动配置 .xcodeproj 文件以实现项目工程自动化。
  • 构建需要频繁重启、快速验证的 macOS 小工具,且希望通过脚本优化启动体验。
  • 对菜单栏应用进行架构重构,将业务逻辑从 View 层抽离。

核心工作流

1. 建立 Tuist 依赖定义

Project.swift 为唯一真理来源,定义 App Target、资源文件及 Info.plist 键值(确保 LSUIElement 设为 true)。

2. 实施分层架构

遵循从底向上的实现顺序:

  • Model 层:定义领域模型,确保解码逻辑具备鲁棒性(使用可选字段应对 API 变更)。
  • Client 层:处理网络请求与响应映射,禁止在 View 中直接调用。
  • Store 层:使用 @Observable 等机制管理状态、缓存和过滤逻辑。
  • View 层:仅负责 UI 渲染和轻量级交互,禁止包含业务逻辑。

3. 标准化运行与验证

放弃不稳定的 tuist run,采用自定义脚本实现构建与启动:

  • 使用 run-menubar.sh 执行:停止旧实例 生成项目 编译 启动。
  • 编译时优先使用 TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build 以提高速度。

下载和安装

下载 macos-menubar-tuist-app 中文版 Skill ZIP

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

你可能还需要

暂无推荐