Z
ZHANK
现代 Swift

Swift 最佳实践

SwiftLint 代码检查、API 设计指南、命名规范、SwiftUI vs UIKit

Swift 最佳实践

SwiftLint 保证代码风格一致,API 设计指南是 Swift 社区的核心文档。

学完本章你将: 掌握 SwiftLint、API 设计指南、SwiftUI vs UIKit。


SwiftLint

bash
brew install swiftlint
swiftlint              # 检查代码
swiftlint --fix        # 自动修复
yaml
# .swiftlint.yml
line_length: 120
force_cast: warning
force_try: error

API 设计指南

swift
// ✅ 清晰优于简洁
extension List {
    mutating func remove(at position: Index) -> Element
}
// 不是: x.remove(p) —— 不清晰

// ✅ 方法名读起来像英文
list.remove(at: 2)
array.insert("Hello", at: 0)

// ✅ 工厂方法以 make 开头
var iterator = list.makeIterator()

SwiftUI vs UIKit

swift
// UIKit —— 命令式
let label = UILabel()
label.text = "Hello"

// SwiftUI —— 声明式(推荐新项目)
struct ContentView: View {
    var body: some View {
        Text("Hello")
            .font(.title)
            .foregroundColor(.blue)
    }
}

性能提示

swift
// ✅ 优先使用 struct(值类型——栈分配)
// ✅ 需要引用语义时才用 class
// ✅ 用 lazy var 延迟初始化
// ✅ 用 final 标记不可继承的 class(优化派发)
// ✅ 用 private/fileprivate 限制访问(优化编译)