字节笔记本
2026年2月23日
SwiftUI Agent Skills:使用 AI 构建更出色的 Swift 应用
本文介绍 Antoine van der Lee 开源的三个 Swift Agent Skills,帮助开发者使用 AI 构建更出色的 SwiftUI 视图、编写高质量的 Swift Testing 测试,以及理解 Agent Skills 如何替代传统的 AGENTS.md 文件。
什么是 Agent Skills?
Agent Skills 是一种开放格式,用于为 AI 代理提供新的能力和专业知识。它解决了 AGENTS.md 文件在多个项目间重复和维护困难的问题。
相比在每个项目中维护冗长的 AGENTS.md 文件,Agent Skills 允许开发者将特定领域的知识封装成可复用的技能包,在不同项目间共享。
主要优势:
- 可复用:一次编写,多项目使用
- 专业化:由领域专家创建的高质量知识库
- 广泛支持:已被 Codex、Gemini、Claude、Cursor 等工具支持
SwiftUI Agent Skill:构建更好的视图
SwiftUI Agent Skill 帮助开发者构建更好的视图或重构现有视图,包含详细的指南,涵盖性能优化、状态管理和现代 API 使用等方面。
技能结构
swiftui-expert-skill/
SKILL.md
references/
image-optimization.md - AsyncImage 使用、降采样、缓存
layout-best-practices.md - 布局模式和 GeometryReader 替代方案
liquid-glass.md - iOS 26+ 玻璃效果和降级模式
list-patterns.md - ForEach 标识和列表性能
modern-apis.md - 废弃 API 的替代方案
performance-patterns.md - 热路径优化和更新控制
scroll-patterns.md - ScrollViewReader 和程序化滚动
sheet-navigation-patterns.md - Sheets 和类型安全导航
state-management.md - 属性包装器选择和数据流
text-formatting.md - 现代 Text 格式化和字符串工具
view-structure.md - 视图提取和组合模式实际应用示例
使用该技能后,AI 代理能够识别并改进以下问题:
视图结构优化:
- 嵌套滚动问题:
BuildInsightsPageView将BuildInsightsView包装在ScrollView中,但BuildInsightsView已包含自己的ScrollView,这可能导致尴尬的滚动/手势行为和布局工作。
性能模式分析:
- 选择/视图模型同步重复且容易产生冗余更新:存在多个
onAppear/onChange处理器都设置了currentSelectedApp和/或viewModel。
GitHub 仓库: AvdLee/SwiftUI-Agent-Skill
Swift Testing Agent Skill:编写高质量测试
Swift Testing 是 Apple 替代 XCTest 的新一代测试框架。这个 Agent Skill 帮助 AI 代理编写遵循 Apple 最佳实践的高质量测试。
技能内容涵盖
| 模块 | 内容 |
|---|---|
| fundamentals.md | @Test、测试套件、结构和命名模式 |
| expectations.md | #expect、#require、异常检查和已知问题 |
| async-testing-and-waiting.md | 异步等待、continuations 和回调事件测试 |
| parameterized-testing.md | 单/多参数测试、zip 配对和扩展 |
| parallelization-and-isolation.md | 并行默认设置、随机顺序和 .serialized 使用 |
| performance-and-best-practices.md | 高信号测试默认设置,确保速度、确定性和防止不稳定 |
| traits-and-tags.md | Traits、标签、条件、bug 链接和测试计划过滤 |
| migration-from-xctest.md | 增量 XCTest 共存和迁移策略 |
| xcode-workflows.md | 测试导航器/报告工作流和诊断实践 |
实际效果
作者使用该技能将 RocketSim 的单元测试从 XCTest 迁移到 Swift Testing:
- 迁移阶段:从 XCTest 迁移到 Swift Testing
- 重构阶段:重写测试和业务逻辑以实现更好的并行化
- 优化阶段:通过随机顺序、多次运行分析不稳定测试
使用技能前后的对比:
- 使用前:代理会无缘无故地添加
serialized标签或@MainActor,严重影响测试执行速度 - 使用后:测试主要在并行环境中运行,并出现了令人惊喜的参数化测试重构
"测试越快,代理返回结果的速度就越快。"
GitHub 仓库: AvdLee/Swift-Testing-Agent-Skill
Agent Skills 的工作原理
安装技能
可以使用 openskills CLI 安装技能:
openskills install avdlee/Swift-Concurrency-Agent-Skill然后同步到项目特定的 AGENTS 文件:
openskills syncSKILL.md 作为入口点
SKILL.md 文件是 Agent Skill 的摘要,它指导代理,告诉代理关于特定技能的信息,同时在需要时引用其他文件。
使用示例
安装技能后,可以使用以下提示词:
- "找出我们在不需要的地方使用
@MainActor的地方" - "分析当前项目,看看是否应该使用 @concurrent 将代码移到后台运行"
- "帮助我将文件 X 重构为 Swift Concurrency"
其他相关技能
Antoine van der Lee 还创建了其他 Swift 相关的 Agent Skills:
- Swift Concurrency Expert - Swift 并发编程专业知识
- Core Data Expert - Core Data 数据持久化专业知识
GitHub 仓库: AvdLee/Swift-Concurrency-Agent-Skill
总结
通过安装特定的 Agent Skills,你实际上是在训练代理编写高质量的 Swift 代码。从一开始就获得更高质量的代码意味着花在审查和改进上的时间更少。
Agent Skills 已经极大地改变了作者使用代理进行开发的方式。AGENTS.md 文件变得更简单,而且可以通过技能轻松地在任何项目中共享领域专业知识。
参考链接
- SwiftUI Agent Skill - GitHub
- Swift Testing Agent Skill - GitHub
- Swift Concurrency Agent Skill - GitHub
- Agent Skills 官网
- openskills CLI
- Swift Concurrency 课程
原文作者:Antoine van der Lee - iOS 开发者,自 2010 年开始 iOS 开发,曾任 WeTransfer Staff iOS 工程师,现为全职独立开发者和 SwiftLee 创始人。