mcpField
M
moai-lang-swift

moai-lang-swift

github.com/modu-ai开发1.2k65 次安装今天更新
代码仓库

关于 moai-lang-swift

面向 iOS 和 macOS 项目的 Swift 6+ 开发参考 Skill,涵盖 SwiftUI、并发、Combine、测试与包管理,并提供实现模式和模块索引。

主要功能

  1. 01Swift 6 语言特性
  2. 02SwiftUI 状态与导航模式
  3. 03使用 async/await 和 Actor 并发
  4. 04Combine 发布者模式
  5. 05XCTest 与 Swift Package Manager

适用场景

  1. 01开发 iOS 或 macOS 应用
  2. 02设计 Swift 并发代码
  3. 03构建 SwiftUI 视图与状态模型
  4. 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.md
concurrency.md
swift6-features.md
swiftui-patterns.md
references/
examples.md
reference.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 特性

modules/swift6-features.md

  • 使用类型化 throws 实现精准错误处理
  • 完整的并发检查
  • 默认确保数据竞争安全
  • Sendable 一致性要求
SwiftUI 模式

modules/swiftui-patterns.md

  • @Observable 宏与状态管理
  • NavigationStack 与导航模式
  • View 生命周期与 .task 修饰符
  • Environment 与依赖注入
Swift 并发

modules/concurrency.md

  • async/await 基础知识
  • Actor 隔离与 @MainActor
  • 使用 TaskGroup 并行执行
  • 自定义执行器与结构化并发
Combine 框架

modules/combine-reactive.md

  • 发布者与订阅者
  • 运算符与转换
  • 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/Dart
  • moai-domain-backend - API 集成和后端通信
  • moai-foundation-quality - iOS 安全最佳实践
  • moai-workflow-testing - Xcode 调试和性能分析

资源

评论

支持 Markdown