Swift 学习路线指南
欢迎来到 Swift 开发指南!本类目旨在为你提供从基础到高级,甚至是深入到 Apple 生态(如 SwiftUI、Combine、Swift Package Manager)的全套系统化学习资料。
适用对象
- 想成为 iOS / macOS / visionOS 开发者的初学者。
- 有其他语言基础,想深入理解 Swift 现代语法和语言特性的工程师。
- 希望更深一步了解 Swift 并发、并发模型、内存管理(ARC)、面向协议编程(POP)以及现代应用架构(MVVM, TCA)的进阶使用者。
核心章节概览
1. 基础篇 (Basic)
- 变量与数据类型:
let/var不可变性优势、类型推断与 Optional 安全基石。 - 控制流与模式匹配:
for-in、where条件、switch编译期穷尽性与模式匹配。 - 函数与闭包:参数标签设计、
inoutCopy-In Copy-Out 内存模型与逃逸闭包@escaping。 - 集合类型与 COW 写时复制:Array/Set/Dictionary 存储特征、COW 原理与
isKnownUniquelyReferenced。 - 结构体与类:值类型 vs 引用类型、栈与堆内存分配、深浅拷贝与
mutating关键字。 - 错误处理与 Result 类型:
throws/try/catch异常流、rethrows、defer清理块与Result<Success, Failure>范式。 - 访问控制与编译优化:五级访问控制矩阵、
openvspublic继承界限、@inlinable跨模块内联与 WMO 全模块编译器优化。
2. 进阶篇 (Advanced)
- 面向协议编程 (POP):POP 范式、协议扩展默认实现、Protocol Witness Table (PWT) 派发机制。
- 现代并发 (async/await):协作式线程池挂起/恢复原理与
Continuation桥接旧版回调。 - 泛型与不透明类型:泛型约束、
any(Existential Container) 与some(Opaque Type) 性能差异。 - ARC 与内存管理:ARC 引用计数原理、强引用环、
weak(侧表)与unowned对比及 Memory Graph 内存泄漏排查。 - Actor 与结构化并发:
actor隔离防数据竞争、TaskGroup结构化并发、@MainActor与Sendable协议。 - 属性包装器与 Swift 宏:
@propertyWrapper语法糖、projectedValue与 Swift 5.9+ 编译期宏 (#freestanding/@attached)。 - Unsafe Swift 与 C/C++ 互操作:Unsafe 指针体系与裸内存分配、
withUnsafeBytes安全闭包、Swift 5.9+ C++ Interop 原生双向桥接。 - KeyPath、反射与 Result Builders:KeyPath 强类型属性引用与高阶函数应用、
@dynamicMemberLookup、Mirror动态反射及@resultBuilder自定义 DSL。
3. 生态与框架篇 (Frameworks)
- Swift Package Manager (SPM):SPM 清单文件结构、Products、Dependencies 与 Targets 模块依赖管理。
- SwiftUI 声明式 UI 基础:声明式范式、
some View结构类型树与 Diff 视图算法。 - SwiftUI 状态管理与数据流:
@State/@Binding/@StateObject全景矩阵与 iOS 17+ 现代 Observation 框架(@Observable)。 - Combine 与 AsyncSequence:Combine 响应式流水线(Publisher/Subscriber)与现代
AsyncSequence/AsyncStream异步流。 - Swift 应用架构与工程实战:MVVM 范式与现代单向数据流架构 TCA (The Composable Architecture) 落地解析。
- SwiftUI 布局与 UIKit 桥接:三步布局协商算法、iOS 16+
Layout协议自定义容器、视图标识(结构/显式)及UIViewRepresentable/UIHostingController混编。 - 网络与持久化 (Codable & SwiftData):
Codable高级自定义序列化、URLSession+async/await现代网络层拦截器,以及 iOS 17+ SwiftData (@Model) 关联关系与持久化。 - 现代测试与 Instruments 诊断调优:Swift 6 现代测试框架 (
import Testing) 与 XCTest 对比、#expect/#require宏断言,及 Time Profiler / Leaks / SwiftUI Profiler 性能瓶颈排查。