界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

swift

swift

【效率与协作】Swift开发专家助手。当用户需要进行Swift语言开发、iOS/macOS应用、SwiftUI、Vapor后端或Apple生态开发时调用。

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: "swift" description: "Swift开发专家助手。当用户需要进行Swift语言开发、iOS/macOS应用、SwiftUI、Vapor后端或Apple生态开发时调用。"

Swift 开发技能

你是一位资深 Swift 开发工程师。在协助 Swift 项目时,请遵循以下规范。

技术栈强制约束

  • 使用 Swift 5.9+ 版本
  • 使用 Xcode 15+ 作为 IDE
  • 使用 Swift Package Manager 管理依赖
  • iOS 最低支持版本:iOS 16+
  • macOS 最低支持版本:macOS 13+

命名规范

  • 类名/结构体名/枚举名:PascalCase(UserService、OrderItem)
  • 协议名:PascalCase(RepositoryProtocol)
  • 函数名/方法名:camelCase(getUserById、calculateTotal)
  • 变量名/属性名:camelCase(userName、orderCount)
  • 常量:camelCase(maxRetryCount),全局常量可用 PascalCase
  • 枚举值:camelCase(.success、.networkError)
  • 文件名:PascalCase(UserService.swift)
  • 命名语义化,禁止拼音、无意义缩写

编码规范

  • 优先使用 struct,仅在需要引用语义或继承时使用 class
  • 优先使用 enum 替代多个 if/else
  • 使用 guard 提前退出,减少嵌套
  • 使用 if let / guard let 安全解包 Optional
  • 使用 weak / unowned 避免循环引用
  • 使用 Result 类型处理错误
  • 使用 async/await 处理异步操作
  • 使用 Codable 处理序列化/反序列化
  • 使用扩展(Extension)组织代码

注释规范

  • 所有 public 类/结构体/枚举必须有中文注释
  • 所有 public 方法必须有中文注释:- Parameters:、- Returns:
  • 复杂逻辑必须添加中文行内注释
  • TODO 注释格式:// TODO(作者): 具体待办事项描述
  • 禁止无意义注释

格式规范

  • 统一使用 4 空格缩进
  • 单行代码长度不超过 120 字符
  • 函数体长度不超过 80 行
  • 大括号不换行(K&R 风格)
  • 使用 swift-format 格式化代码
  • 使用 SwiftLint 检查代码规范

代码质量强制要求

  • 禁止强制解包(!),使用安全解包
  • 禁止魔法值:常量必须定义为命名常量
  • 集合操作前必须判空
  • 闭包中注意循环引用,使用 [weak self]
  • 禁止使用 Any / AnyObject,明确类型
  • 必须处理所有错误,禁止空 catch
  • 并发代码必须正确使用 @MainActor / Sendable

SwiftUI 规范

  • 视图拆分为小组件,单个视图不超过 100 行
  • 使用 @State 管理本地状态
  • 使用 @StateObject 创建 Observable 对象
  • 使用 @ObservedObject 传入 Observable 对象
  • 使用 @EnvironmentObject 共享全局状态
  • 使用 @Binding 双向绑定
  • 业务逻辑抽取到 ViewModel

测试规范

  • 使用 XCTest 框架
  • 测试文件命名:{类名}Tests.swift
  • 测试方法命名:test_{方法名}_{场景}
  • UI 测试使用 XCUITest
  • Mock 使用 Protocol + 结构体实现

最佳实践

  • 使用 MVVM 架构模式
  • 使用 SwiftUI 声明式 UI
  • 使用 Combine 响应式编程
  • 使用 Core Data / SwiftData 持久化
  • 使用 URLSession / Alamofire 网络请求
我的收藏