本書從實戰(zhàn)應用出發(fā),系統(tǒng)地講解SwiftUI開發(fā)的全過程,內容豐富且實用性強,旨在幫助讀者快速上手SwiftUI開發(fā)。
本書共14章,從SwiftUI的基礎概念開始,逐漸深入分析視圖、動畫、自動布局機制、欄目、代碼整理、參數(shù)存儲、網絡請求、架構設計、設備管理、數(shù)據存儲等主題,為讀者提供全面的理論知識和實戰(zhàn)技巧。
本書適合對SwiftUI感興趣的讀者閱讀。無論你是初學者還是有一定經驗的開發(fā)者,都能夠通過本書全面了解SwiftUI的基礎知識和實戰(zhàn)技巧,并將其應用到實際項目中,開發(fā)出優(yōu)秀的iOS應用。
1. 從理論基礎到實戰(zhàn)案例:符合初學者的學習路線,指導讀者快速上手開發(fā)iOS應用。
2. 涵蓋7大關鍵主題:圍繞SwiftUI的七大關鍵主題,幫助讀者全面掌握Swift+SwiftUI 開發(fā)。
3. 涉及10+應用案例:通過案例將抽象的知識具體化,指導讀者體驗完整的SwiftUI開發(fā)流程。
4. 附贈全書源代碼:本書配套贈送每章實戰(zhàn)案例的源代碼,方便讀者邊學邊練。
李智威,iOS 獨立開發(fā)者、高級產品經理、稀土掘金技術社區(qū)簽約作者,擁有6年B端SaaS產品開發(fā)經驗,從零開始負責過國內Top 3上市企業(yè)數(shù)智化項目的產品規(guī)劃工作。獨立開發(fā)并上架“不言筆記”“Linkcard 卡包”等應用,出版過《SwiftUI完全開發(fā)》等圖書。曾獲我愛黑“可頌”AI Hackathon大語言模型應用創(chuàng)新挑戰(zhàn)賽優(yōu)勝獎。
第1章 未來已來:開始使用Swift和SwiftUI 1
1.1 初識SwiftUI 1
1.2 Swift和SwiftUI的關系 2
1.3 學習SwiftUI之前的準備工作 3
1.3.1 Mac計算機 3
1.3.2 Xcode開發(fā)工具 4
1.3.3 iPhone真機 5
1.4 創(chuàng)建第一個SwiftUI項目 5
1.5 Xcode常用功能介紹 8
1.5.1 代碼編輯區(qū)域 9
1.5.2 實時預覽窗口 10
1.5.3 項目預覽操作欄 12
1.6 項目文件結構詳解 16
1.6.1 項目主文件 17
1.6.2 項目入口文件 20
1.6.3 Assets庫 22
1.6.4 Preview Content文件夾 23
第2章 快速入門:創(chuàng)建第一個SwiftUI項目 24
2.1 視圖、視圖修飾符、布局方式 24
2.2 Library 27
2.2.1 Views欄目 27
2.2.2 Modifiers欄目 29
2.2.3 Code Snippet欄目 30
2.2.4 Image和Color欄目 31
2.2.5 SF Symbols欄目 31
2.3 實戰(zhàn)案例:每日一句 32
2.3.1 導入并顯示圖片素材 32
2.3.2 使用Text視圖顯示文字 35
2.3.3 對多個視圖進行布局 36
2.3.4 調整視圖的樣式 37
2.3.5 創(chuàng)建“推薦文字”數(shù)據集 39
2.3.6 實現(xiàn)參數(shù)綁定 40
2.3.7 實現(xiàn)隨機推薦文字 41
第3章 初探動畫:感受SwiftUI獨特的魅力 43
3.1 深入淺出使用Button視圖 43
3.1.1 創(chuàng)建一個Button視圖 43
3.1.2 修改Button視圖樣式 44
3.1.3 組合多個Button視圖 46
3.1.4 自定義按鈕樣式 47
3.2 引入條件判斷語句 49
3.2.1 三元運算符 49
3.2.2 if-else語句 50
3.2.3 條件判斷語句實踐 52
3.3 神奇的SwiftUI動畫 54
3.3.1 給視圖添加動畫效果 54
3.3.2 隱性動畫和顯性動畫 55
3.3.3 轉場動畫 57
第4章 視圖精析:探索SwiftUI自動布局機制 60
4.1 View和some View的區(qū)別 60
4.2 修飾符適用場景 63
4.2.1 Image視圖常用修飾符 63
4.2.2 Text視圖常用修飾符 65
4.2.3 Stack布局容器常用修飾符 66
4.3 創(chuàng)建可交互的按鈕 69
4.4 SwiftUI界面布局規(guī)則 70
4.4.1 視圖的尺寸大小 71
4.4.2 視圖的位置 72
第5章 布局練習:開發(fā)一個“個人簡介”界面 74
5.1 搭建“基本信息”欄目 74
5.1.1 個人頭像 75
5.1.2 個人信息 78
5.1.3 個人介紹 83
5.2 搭建“個人成就”欄目 84
5.2.1 單個數(shù)據指標 84
5.2.2 多個數(shù)據指標 85
5.2.3 視圖背景色 88
5.3 搭建“專欄列表”欄目 89
5.3.1 數(shù)據模型 89
5.3.2 單個文章專欄 91
5.3.3 多個文章專欄 92
5.4 項目預覽 94
第6章 代碼整理:讓項目代碼更加清晰 96
6.1 自定義some View 96
6.1.1 封面圖片視圖 97
6.1.2 Slogan文字視圖 97
6.1.3 快捷登錄入口視圖 98
6.1.4 用戶條款視圖 99
6.2 自定義結構體 102
6.2.1 自定義LoginBtnView視圖 103
6.2.2 使用LoginBtnView視圖 104
6.3 自定義extension方法 105
6.4 項目文件整理 107
6.4.1 代碼塊管理 107
6.4.2 文件夾管理 108
第7章 項目實戰(zhàn):開發(fā)一款“Note筆記”應用 111
7.1 搭建Note數(shù)據模型 111
7.2 搭建“Note筆記”界面 113
7.2.1 筆記列表 114
7.2.2 界面標題 117
7.2.3 新增按鈕 118
7.3 搭建“新增筆記”界面 119
7.3.1 文本框 119
7.3.2 按鈕組 121
7.4 實現(xiàn)App的相關功能 124
7.4.1 打開彈窗 124
7.4.2 關閉彈窗 126
7.4.3 新增筆記 130
7.4.4 刪除筆記 132
第8章 項目實戰(zhàn):開發(fā)一款“BMI計算器”應用 134
8.1 Form視圖介紹 134
8.2 搭建“BMI計算頁”界面 137
8.2.1 信息錄入 137
8.2.2 參考標準 139
8.2.3 計算按鈕 142
8.2.4 界面標題 143
8.3 搭建“BMI結果頁”界面 145
8.3.1 計算結果 145
8.3.2 “重新計算”按鈕 148
8.4 實現(xiàn)App的相關功能 149
8.4.1 界面跳轉 149
8.4.2 返回跳轉 151
8.4.3 BMI計算 152
8.4.4 BMI結果 153
第9章 參數(shù)存儲:初識數(shù)據持久化機制 156
9.1 搭建“常規(guī)設置”欄目 156
9.1.1 消息通知 157
9.1.2 深色模式 158
9.2 搭建“個性化”欄目 160
9.2.1 主題顏色 161
9.2.2 系統(tǒng)語言 162
9.2.3 字體大小 164
9.3 搭建“關于我們”欄目 165
9.3.1 意見反饋 165
9.3.2 去Apple Store評分 167
9.3.3 關于應用 169
9.4 實現(xiàn)參數(shù)持久化方法 170
9.4.1 UserDefaults 171
9.4.2 @AppStorage屬性包裝器 172
第10章 網絡請求:連接這個多彩的世界 174
10.1 從互聯(lián)網上請求一張圖片 174
10.1.1 使用AsyncImage視圖 175
10.1.2 添加默認視圖 175
10.1.3 設置不同狀態(tài)下的視圖 176
10.1.4 實現(xiàn)刷新功能 178
10.2 URLSession網絡請求框架 180
10.2.1 基礎視圖搭建 180
10.2.2 實現(xiàn)網絡請求方法 181
10.3 開發(fā)一個“壁紙推薦”界面 183
10.3.1 數(shù)據模型 184
10.3.2 單張壁紙 185
10.3.3 壁紙列表 187
10.3.4 界面標題 188
10.3.5 網絡請求 189
第11章 架構設計:深入淺出MVVM模式 192
11.1 開發(fā)一個“歷史上的今天”界面 193
11.1.1 數(shù)據模型 193
11.1.2 視圖 194
11.1.3 視圖模型 196
11.2 搭建底部導航欄 200
11.3 開發(fā)一個“日歷”界面 201
11.3.1 搭建當前年月欄目 202
11.3.2 實現(xiàn)更新日期方法 202
11.3.3 實現(xiàn)格式化日期拓展方法 204
11.3.4 搭建工作周欄目 205
11.3.5 搭建日歷時間欄目 206
11.3.6 實現(xiàn)獲得日期數(shù)組方法 207
11.3.7 實現(xiàn)格式化時間拓展方法 209
11.3.8 實現(xiàn)起始日期匹配方法 210
11.3.9 實現(xiàn)選中當前日期方法 212
第12章 設備管理:掌握Core Services的奧秘 215
12.1 開發(fā)一個“身份認證”界面 215
12.1.1 卡片樣式 216
12.1.2 視圖界面 217
12.2 實現(xiàn)“人臉識別”欄目的功能 218
12.2.1 創(chuàng)建FaceIDAuthManager數(shù)據模型 218
12.2.2 實現(xiàn)FaceID認證方法 218
12.2.3 配置FaceID認證權限 219
12.2.4 調用FaceID認證功能 220
12.3 實現(xiàn)上傳證件功能 221
12.3.1 實現(xiàn)拍照和圖片上傳方法 221
12.3.2 配置相冊和相機權限 223
12.3.3 實現(xiàn)選擇上傳方式彈窗 223
12.3.4 調用圖片上傳方法 225
12.3.5 實現(xiàn)顯示上傳圖片邏輯 227
第13章 數(shù)據存儲:使用FileManager 230
13.1 搭建底部導航欄 231
13.2 開發(fā)一個“推薦”界面 232
13.2.1 sentences文字數(shù)組 232
13.2.2 文字卡片 233
13.2.3 滑動卡片 234
13.2.4 “收藏”按鈕 236
13.3 開發(fā)一個“筆記”界面 237
13.3.1 數(shù)據模型 237
13.3.2 視圖模型 237
13.3.3 視圖 238
13.4 實現(xiàn)收藏文字功能 241
13.4.1 實現(xiàn)獲得文字方法 241
13.4.2 實現(xiàn)添加筆記方法 243
13.4.3 實現(xiàn)獲得當前日期方法 243
13.4.4 調用添加筆記方法 244
13.4.5 共享ViewModel實例 245
13.5 實現(xiàn)數(shù)據持久化功能 246
13.5.1 實現(xiàn)存儲筆記方法 246
13.5.2 實現(xiàn)讀取筆記方法 248
13.5.3 實現(xiàn)刪除筆記方法 249
第14章 項目實戰(zhàn):開發(fā)一款“目標人生”應用 252
14.1 開發(fā)一個“啟動頁”界面 252
14.1.1 使用Launch Screen文件 252
14.1.2 設置Launch Screen來源 255
14.1.3 預覽“啟動頁”界面 255
14.2 開發(fā)一個“引導頁”界面 256
14.2.1 功能卡片 256
14.2.2 輪播卡片 257
14.2.3 “開始使用”按鈕 258
14.3 開發(fā)一個“創(chuàng)建目標”界面 259
14.3.1 目標名稱 259
14.3.2 達成日期 260
14.3.3 日期格式化 261
14.3.4 操作按鈕 263
14.4 實現(xiàn)打開/關閉彈窗功能 264
14.4.1 打開彈窗 264
14.4.2 通用設置 265
14.4.3 關閉彈窗 267
14.5 開發(fā)一個“首頁”界面 267
14.5.1 數(shù)據模型 268
14.5.2 單例模式 271
14.5.3 視圖模型 272
14.5.4 視圖 273
14.6 實現(xiàn)新增目標功能 278
14.6.1 實現(xiàn)新增目標方法 278
14.6.2 調用新增目標方法 279