关于 moai-lang-swift
面向 iOS 和 macOS 项目的 Swift 6+ 开发参考 Skill,涵盖 SwiftUI、并发、Combine、测试与包管理,并提供实现模式和模块索引。
主要功能
- 01Swift 6 语言特性
- 02SwiftUI 状态与导航模式
- 03使用 async/await 和 Actor 并发
- 04Combine 发布者模式
- 05XCTest 与 Swift Package Manager
适用场景
- 01开发 iOS 或 macOS 应用
- 02设计 Swift 并发代码
- 03构建 SwiftUI 视图与状态模型
- 04使用 XCTest 测试异步代码
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ modu-ai/ moai-adk --skill moai-lang-swift安装后在 Claude Code 中输入/moai-lang-swift确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
modules/combine-reactive.mdconcurrency.mdswift6-features.mdswiftui-patterns.mdreferences/examples.mdreference.md详细介绍
Swift 6+ 开发专家
面向 iOS/macOS 的 Swift 6.0+ 开发专家,涵盖 SwiftUI、Combine 和 Swift 并发。
自动触发:Swift 文件(.swift)、iOS/macOS 项目、Xcode 工作区
快速参考
核心能力
- Swift 6.0:类型化 throws、完整并发、默认确保数据竞争安全
- SwiftUI 6:@Observable 宏、NavigationStack、现代声明式 UI
- Combine:通过发布者和订阅者实现响应式编程
- Swift 并发:async/await、actors、TaskGroup、隔离
- XCTest:单元测试、UI 测试、异步测试支持
- Swift Package Manager:依赖管理
版本要求
- Swift:6.0+
- Xcode:16.0+
- iOS:17.0+(推荐),最低 15.0
- macOS:14.0+(推荐)
项目设置
Package.swift 配置:先添加 swift-tools-version 注释并设为 6.0。导入 PackageDescription。使用 Package 初始化器定义 let package。设置 name、包含 .iOS 和 .macOS 最低版本的 platforms 数组、包含库定义的 products 数组、包含软件包 URL 和版本要求的 dependencies 数组,以及包含 target 和 testTarget 条目(包括依赖项)的 targets 数组。
基本模式
基本的 @Observable ViewModel:导入 Observation 框架。为 final class 添加 @Observable 和 @MainActor 属性。声明用于状态的 private(set) var 属性。创建异步函数,将 isLoading 设为 true,使用 defer 将其设回 false,并通过 try? await 和 nil 合并运算符赋值获取的数据。
基本 SwiftUI View:定义遵循 View 的 struct。声明 @State private var 属性来保存 viewModel。在 body 计算属性中,使用 NavigationStack 包含一个 List,并遍历 viewModel 的条目。添加 .task 修饰符以调用 await viewModel.load,并添加 .refreshable 修饰符以支持下拉刷新。
保证线程安全的基本 Actor:定义 actor 类型,并使用私有字典作为缓存。创建 get 函数,按键查找并返回可选的 Data。创建 set 函数,接收 key 和 data 参数以存储缓存。
模块索引
Swift 6 特性
- 使用类型化 throws 实现精准错误处理
- 完整的并发检查
- 默认确保数据竞争安全
- Sendable 一致性要求
SwiftUI 模式
- @Observable 宏与状态管理
- NavigationStack 与导航模式
- View 生命周期与 .task 修饰符
- Environment 与依赖注入
Swift 并发
- async/await 基础知识
- Actor 隔离与 @MainActor
- 使用 TaskGroup 并行执行
- 自定义执行器与结构化并发
Combine 框架
- 发布者与订阅者
- 运算符与转换
- async/await 桥接模式
- 与 SwiftUI 集成
Context7 库映射
Swift 核心库
/apple/swift- Swift 语言与标准库/apple/swift-evolution- Swift 演进提案/apple/swift-package-manager- SwiftPM 文档/apple/swift-async-algorithms- 异步序列算法
常用库
/Alamofire/Alamofire- HTTP 网络通信/onevcat/Kingfisher- 图片下载与缓存/realm/realm-swift- 移动数据库/pointfreeco/swift-composable-architecture- TCA 架构/Quick/Quick- BDD 测试框架/Quick/Nimble- 匹配器框架
测试快速入门
使用 MainActor 的异步测试:为继承 XCTestCase 的测试类添加 @MainActor 属性。定义带有 async throws 的测试函数。创建模拟 API 并设置模拟数据。使用模拟对象初始化被测系统。对异步方法调用 await。使用 XCTAssertEqual 验证数量,使用 XCTAssertFalse 检查布尔状态。
配合使用
moai-lang-kotlin- 用于跨平台项目的 Android 对应方案moai-lang-flutter- 用于跨平台移动开发的 Flutter/Dartmoai-domain-backend- API 集成和后端通信moai-foundation-quality- iOS 安全最佳实践moai-workflow-testing- Xcode 调试和性能分析
资源
- reference.md - 架构模式、网络层、SwiftData
- examples.md - 可用于生产环境的代码示例