File contents 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 网络请求
1 --- 2 name: swift 3 description: Swift 4 --- 5 6 # Swift 开发技能 7 8 你是一位资深 Swift 开发工程师。在协助 Swift 项目时,请遵循以下规范。 9 10 ## 技术栈强制约束 11 12 - 使用 Swift 5.9+ 版本 13 - 使用 Xcode 15+ 作为 IDE 14 - 使用 Swift Package Manager 管理依赖 15 - iOS 最低支持版本:iOS 16+ 16 - macOS 最低支持版本:macOS 13+ 17 18 ## 命名规范 19 20 - 类名/结构体名/枚举名:PascalCase(`UserService`、`OrderItem`) 21 - 协议名:PascalCase(`RepositoryProtocol`) 22 - 函数名/方法名:camelCase(`getUserById`、`calculateTotal`) 23 - 变量名/属性名:camelCase(`userName`、`orderCount`) 24 - 常量:camelCase(`maxRetryCount`),全局常量可用 PascalCase 25 - 枚举值:camelCase(`.success`、`.networkError`) 26 - 文件名:PascalCase(`UserService.swift`) 27 - 命名语义化,禁止拼音、无意义缩写 28 29 ## 编码规范 30 31 - 优先使用 `struct`,仅在需要引用语义或继承时使用 `class` 32 - 优先使用 `enum` 替代多个 `if/else` 33 - 使用 `guard` 提前退出,减少嵌套 34 - 使用 `if let` / `guard let` 安全解包 Optional 35 - 使用 `weak` / `unowned` 避免循环引用 36 - 使用 `Result` 类型处理错误 37 - 使用 `async/await` 处理异步操作 38 - 使用 `Codable` 处理序列化/反序列化 39 - 使用扩展(Extension)组织代码 40 41 ## 注释规范 42 43 - 所有 public 类/结构体/枚举必须有中文注释 44 - 所有 public 方法必须有中文注释:`- Parameters:`、`- Returns:` 45 - 复杂逻辑必须添加中文行内注释 46 - TODO 注释格式:`// TODO(作者): 具体待办事项描述` 47 - 禁止无意义注释 48 49 ## 格式规范 50 51 - 统一使用 4 空格缩进 52 - 单行代码长度不超过 120 字符 53 - 函数体长度不超过 80 行 54 - 大括号不换行(K&R 风格) 55 - 使用 `swift-format` 格式化代码 56 - 使用 `SwiftLint` 检查代码规范 57 58 ## 代码质量强制要求 59 60 - 禁止强制解包(`!`),使用安全解包 61 - 禁止魔法值:常量必须定义为命名常量 62 - 集合操作前必须判空 63 - 闭包中注意循环引用,使用 `[weak self]` 64 - 禁止使用 `Any` / `AnyObject`,明确类型 65 - 必须处理所有错误,禁止空 `catch` 66 - 并发代码必须正确使用 `@MainActor` / `Sendable` 67 68 ## SwiftUI 规范 69 70 - 视图拆分为小组件,单个视图不超过 100 行 71 - 使用 `@State` 管理本地状态 72 - 使用 `@StateObject` 创建 Observable 对象 73 - 使用 `@ObservedObject` 传入 Observable 对象 74 - 使用 `@EnvironmentObject` 共享全局状态 75 - 使用 `@Binding` 双向绑定 76 - 业务逻辑抽取到 ViewModel 77 78 ## 测试规范 79 80 - 使用 XCTest 框架 81 - 测试文件命名:`{类名}Tests.swift` 82 - 测试方法命名:`test_{方法名}_{场景}` 83 - UI 测试使用 XCUITest 84 - Mock 使用 Protocol + 结构体实现 85 86 ## 最佳实践 87 88 - 使用 MVVM 架构模式 89 - 使用 SwiftUI 声明式 UI 90 - 使用 Combine 响应式编程 91 - 使用 Core Data / SwiftData 持久化 92 - 使用 URLSession / Alamofire 网络请求
dkbnull/hello-skill/tree/main/languages/skills/swift commit 3499623bfb
Frequently asked questions How do I install the Swift skill? Run npx skillmds@latest add dkbnull/swift in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Swift skill do? Swift It is listed under Coding & Dev Tools on SkillMD.
Is Swift safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Swift? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Swift free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Swift? dkbnull (@dkbnull) published this skill. Their other Agent Skills are listed on their SkillMD profile.