文章目录
-
- 一、整体学习路线图
- 下面我们按这个路线,一步一步展开。
- 二、准备阶段:你需要什么
- [三、第一步:Swift 语言基础(1--2 周)](#三、第一步:Swift 语言基础(1–2 周))
-
- [1. 必学的基础语法点](#1. 必学的基础语法点)
- [四、UI 入门:优先选择 SwiftUI](#四、UI 入门:优先选择 SwiftUI)
-
- [1. SwiftUI 核心概念](#1. SwiftUI 核心概念)
- [2. 你的第一个 SwiftUI App:一个"今天吃啥"小工具](#2. 你的第一个 SwiftUI App:一个“今天吃啥”小工具)
- [3. 常用 SwiftUI 控件(新手先搞熟这些)](#3. 常用 SwiftUI 控件(新手先搞熟这些))
- [五、理解 iOS 平台的核心概念(不要直接跳到复杂框架)](#五、理解 iOS 平台的核心概念(不要直接跳到复杂框架))
- 六、项目实践:从入门到能拿出手的东西
-
- [1. 待办清单(Todo List)](#1. 待办清单(Todo List))
- [2. 简单天气 App(调用公开 API)](#2. 简单天气 App(调用公开 API))
- [3. 记账小工具 / 计数器](#3. 记账小工具 / 计数器)
- 七、工具链与最佳实践(一开始就养成好习惯)
-
- [1. 版本控制:Git](#1. 版本控制:Git)
- [2. 依赖管理:SPM 与 CocoaPods](#2. 依赖管理:SPM 与 CocoaPods)
- [3. 代码风格与调试习惯](#3. 代码风格与调试习惯)
- 八、常见新手问题(提前帮你踩坑)
适合读者 :有一点点编程基础(哪怕是 js / Python),想从零开始写自己的第一个 iOS App 的人。
一句话重点:现在的入门路线是「Swift 语言 → SwiftUI(声明式 UI)+ 核心平台概念 → 实战小项目 → 慢慢补 UIKit 和系统机制」。SwiftUI 门槛低、反馈快,非常适合作为第一站。
一、整体学习路线图
先给你一张"从 0 到第一个 iOS App"的路线图,方便把握全局:
iOS 开发入门路线
准备阶段
装一台 Mac
安装 Xcode
注册 Apple ID
语言基础
Swift 语法
变量与常量
类型与 Optional
控制流与函数
集合与错误处理
小练习
控制台小程序
LeetCode 基础题
UI 入门
SwiftUI
常用视图
布局与预览
@State / @Binding
仅了解
UIViewController
XIB/Storyboard
平台与系统概念
App 生命周期
视图控制器生命周期
常用系统框架
实战小项目
待办清单 App
简单天气 App
记账 / 计数器
进阶与工具
Git 版本控制
CocoaPods / SPM
设计模式与架构
排查性能与崩溃
下面我们按这个路线,一步一步展开。
二、准备阶段:你需要什么
- 一台 Mac:macOS 较新版本即可(通常 Xcode 会要求最近一两年的系统)。
- Xcode:从 Mac App Store 搜索 "Xcode" 安装即可。它自带 Swift、模拟器、Interface Builder 等一整套开发工具。
- 一个 Apple ID:免费账号就可以在模拟器和自己的真机上运行 App;要上架 App Store 再考虑付费开发者账号。
三、第一步:Swift 语言基础(1--2 周)
Swift 是一门现代、安全、表达力很强的语言,入门难度其实不高。
推荐资源:
- Apple 官方 "Develop in Swift" 教程(含基础 Swift 和 App 开发)。
1. 必学的基础语法点
- 变量与常量:
- var:可变变量
- let:常量(尽量多使用)
- 基本类型:Int / Double / String / Bool
- Optional(重点):? 和 ! 的使用、if let / guard let 安全解包
- 控制流:if / switch / for-in / while
- 函数:参数、返回值、闭包基础
- 集合:Array / Dictionary / Set
- 错误处理:do-catch、throws / throw、try? / try!
示例(控制台小程序):
swift
func greet(name: String?) -> String {
guard let name = name else {
return "你好,陌生人"
}
return "你好,\(name)"
}
print(greet(name: nil)) // 你好,陌生人
print(greet(name: "小明")) // 你好,小明
四、UI 入门:优先选择 SwiftUI
iOS UI 开发有两套主流方式:
- UIKit:传统命令式 UI(Storyboard / XIB / 纯代码),成熟但学习曲线陡。
- SwiftUI:Apple 推出的声明式 UI,代码更少、预览实时、跨平台,非常适合新手入门。
新人的优先级建议:SwiftUI 第一站,UIKit 了解基本概念即可。
1. SwiftUI 核心概念
- View:一切界面元素都是 View(Text、Button、Image、VStack...)。
- 声明式写法:你描述"界面长什么样 + 数据怎么驱动界面",而不是自己一步步修改它。
- 三大常用包装器(先记这三个):
- @State:本地状态驱动 UI 刷新
- @Binding:子视图修改父视图的状态
- @ObservedObject / @StateObject:稍复杂的共享状态(后面再深入)
官方 SwiftUI 教程非常友好,一步一步带你做一个列表、导航、表单等常用界面。
2. 你的第一个 SwiftUI App:一个"今天吃啥"小工具
在 Xcode 中新建 iOS 项目,选择 Interface = SwiftUI,然后粘贴如下代码:
swift
import SwiftUI
func randomEmoji() -> String {
["🍏", "🍎", "🍐", "🍊", "🍋", "🍌", "🍉", "🍇", "🍓", "🫐", "🍑", "🍍"].randomElement()!
}
struct ContentView: View {
@State private var emoji = randomEmoji()
var body: some View {
VStack(spacing: 24) {
Text("今天吃啥?")
.font(.title)
Text(emoji)
.font(.system(size: 80))
Button("选一个") {
emoji = randomEmoji()
}
.padding()
.background(Color.teal)
.foregroundColor(.white)
.cornerRadius(12)
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
要点理解:
- struct ContentView: View:定义一个"视图",描述界面长什么样;
- @State private var emoji:一个"状态",当它改变时,SwiftUI 会自动重新绘制界面;
- VStack:垂直排列子视图;
- Preview:右侧实时预览你的界面,改动立刻可见。
试着多改几个参数,比如字体大小、颜色、按钮文案,感受声明式 UI 的节奏。
3. 常用 SwiftUI 控件(新手先搞熟这些)
- 文本:Text
- 图片:Image
- 按钮:Button
- 输入框:TextField / SecureField
- 布局:VStack / HStack / ZStack / LazyVStack
- 列表:List(类似 UITableView 的替代)
- 导航:NavigationView / NavigationStack(iOS 16 更推荐 NavigationStack)
Apple 的 SwiftUI 官方教程和示例代码里,这些控件都有完整示例。
五、理解 iOS 平台的核心概念(不要直接跳到复杂框架)
新手最容易踩的坑之一:只会 UI 壳子,但不懂 App 生命周期、内存管理等基础概念,后面一遇到真机调试和复杂项目就懵。
建议先搞清楚:
- App 的生命周期:
- 入口:AppDelegate / SceneDelegate(新项目基本是 SwiftUI App,这点对你暂时是黑箱,但知道有这些概念会有帮助);
- 前台/后台切换、应用被系统杀死等场景。
- 视图控制器(UIViewController)的生命周期:
- viewDidLoad / viewWillAppear / viewDidAppear / viewDidDisappear 等;
- 即使 SwiftUI 为主,后面读 UIKit 代码、用一些 SDK 也会碰到。
- 常用系统框架:
- Foundation:字符串、日期、文件系统、集合等基础能力;
- UIKit:传统 UI 框架,很多第三方 SDK 仍基于它;
- SwiftUI / Combine:新 UI + 响应式数据流;
- SwiftUI + Core Data / SwiftData:持久化存储(可以在第二个小项目中尝试)。
这些内容在 Apple 官方"Develop in Swift Tutorials"和文档里都有覆盖。
六、项目实践:从入门到能拿出手的东西
建议做 2--3 个"有头有尾"的小项目,每个项目控制在 1--3 周。
1. 待办清单(Todo List)
功能建议:
- 添加、删除、标记完成;
- 用 List 展示;
- 用 @State 或 @ObservedObject 管理待办数组;
- 本地持久化先选择:
- User Defaults(最简单)
- 或后面再升级到 Core Data / SwiftData
这个项目会帮你练习:
- SwiftUI 中 List / ForEach 的使用;
- 数据驱动 UI 的思想;
- 基本的数据模型设计。
2. 简单天气 App(调用公开 API)
- 学会使用 URLSession 发起网络请求;
- 解析 JSON(Codable);
- 用 SwiftUI 做一个天气卡片列表。
你可以直接用一个免费的公共天气 API(很多博客都有示例),重点是"网络 + 解析 + 展示"这一整套流程。
3. 记账小工具 / 计数器
- 多个 Tab(使用 TabView);
- 简单表单(TextField / Picker / DatePicker);
- 图表展示(可以用现成的 SwiftUI 图表库)。
做完这些,你基本可以独立做"简单但完整"的 App 了。
七、工具链与最佳实践(一开始就养成好习惯)
1. 版本控制:Git
- 把每个项目都放到 Git 里(GitHub / GitLab 都行);
- 学会基本命令:
- git add / commit / push / pull
- 简单的分支操作(branch / checkout / merge)
2. 依赖管理:SPM 与 CocoaPods
- Swift Package Manager(SPM):
- 内置在 Xcode,直接在 "File > Add Package Dependencies..." 添加第三方库即可;
- 新项目推荐优先使用 SPM。
- CocoaPods:
- 老牌依赖管理工具,很多成熟库(例如 Alamofire 等)仍然支持;
- 学习基本的 Podfile 写法、pod install 即可。
3. 代码风格与调试习惯
- 打开 Xcode 的静态分析、Warnings;
- 尽量使用 "Option + 点击" 查看符号文档;
- 学会使用断点和 Console 输出来调试;
- 写代码前稍微"画一下界面结构"和"数据模型设计",不要上来就胡乱堆 UI。
八、常见新手问题(提前帮你踩坑)
- 1)要不要学 Objective-C?
- 如果你没有特殊需求(维护老项目),可以先跳过,专注 Swift。
- 2)UIKit 还要不要学?
- 建议先学好 SwiftUI,对 iOS 开发有整体认识之后,再慢慢了解 UIKit 基本控件和生命周期。
- 3)真机调试麻烦吗?
- 用免费 Apple ID 也可以在自己设备上跑 App,只是有效期短一点;正式上架才需要付费开发者账号。
- 4)一定要买付费课吗?
- 不一定。Apple 官方教程 + 免费社区资源已经足够完成从 0 到能独立做小 App 的过程。