《SwiftUI極簡開發》封麵

內容簡介

本書從實戰應用出發,係統地講解SwiftUI開發的全過程,內容豐富且實用性強,旨在幫助讀者快速上手SwiftUI開發。本書共14章,從SwiftUI的基礎概念開始,逐漸深入分析視圖、動畫、自動布局機製、欄目、代碼整理、參數存儲、網絡請求、架構設計、設備管理、數據存儲等主題,為讀者提供全麵的理論知識和實戰技巧。本書適合對SwiftUI感興趣的讀者閱讀。無論你是初學者還是有一定經驗的開發者,都能夠通過本書全麵了解SwiftUI的基礎知識和實戰技巧,並將其應用到實際項目中,開發出優秀的iOS應用。

作者簡介

李智威,iOS 獨立*、*產品經理、稀土掘金技術社區簽約作者,擁有6年B端SaaS產品開發經驗,從*開始負責過國內Top 3上市企業數智化項目的產品規劃工作。獨立開發並上架“不言筆記”“Linkcard 卡包”等應用,出版過《SwiftUI完全開發》等圖書。曾獲我愛黑“可頌”AI Hackathon大語言模型應用創新挑戰賽優勝獎。

目錄

第1章未來已來:開始使用Swift和SwiftUI1
1.1初識SwiftUI1
1.2Swift和SwiftUI的關係2
1.3學習SwiftUI之前的準備工作3
1.3.1Mac計算機3
1.3.2Xcode開發工具4
1.3.3iPhone真機5
1.4創建*個SwiftUI項目5
1.5Xcode常用功能介紹8
1.5.1代碼編輯區域9
1.5.2實時預覽窗口10
1.5.3項目預覽操作欄12
1.6項目文件結構詳解16
1.6.1項目主文件17
1.6.2項目入口文件20
1.6.3Assets庫22
1.6.4PreviewContent文件夾23
第2章快速入門:創建*個SwiftUI項目24
2.1視圖、視圖修飾符、布局方式24
2.2Library27
2.2.1Views欄目27
2.2.2Modifiers欄目29
2.2.3CodeSnippet欄目30
2.2.4Image和Color欄目31
2.2.5SFSymbols欄目31
2.3實戰案例:每日一句32
2.3.1導入並顯示圖片素材32
2.3.2使用Text視圖顯示文字35
2.3.3對多個視圖進行布局36
2.3.4調整視圖的樣式37
2.3.5創建“推薦文字”數據集39
2.3.6實現參數綁定40
2.3.7實現隨機推薦文字41
第3章初探動畫:感受SwiftUI獨特的魅力43
3.1深入淺出使用Button視圖43
3.1.1創建一個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.2if-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.1View和someView的區別60
4.2修飾符適用場景63
4.2.1Image視圖常用修飾符63
4.2.2Text視圖常用修飾符65
4.2.3Stack布局容器常用修飾符66
4.3創建可交互的按鈕69
4.4SwiftUI界麵布局規則70
4.4.1視圖的尺寸大小71
4.4.2視圖的位置72
第5章布局練習:開發一個“個人簡介”界麵74
5.1搭建“基本信息”欄目74
5.1.1個人頭像75
5.1.2個人信息78
5.1.3個人介紹83
5.2搭建“個人成*”欄目84
5.2.1單個數據指標84
5.2.2多個數據指標85
5.2.3視圖背景色88
5.3搭建“專欄列表”欄目89
5.3.1數據模型89
5.3.2單個文章專欄91
5.3.3多個文章專欄92
5.4項目預覽94
第6章代碼整理:讓項目代碼更加清晰96
6.1自定義someView96
6.1.1封麵圖片視圖97
6.1.2Slogan文字視圖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章項目實戰:開發一款“Note筆記”應用111
7.1搭建Note數據模型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實現App的相關功能124
7.4.1打開彈窗124
7.4.2關閉彈窗126
7.4.3新增筆記130
7.4.4刪除筆記132
第8章項目實戰:開發一款“BMI計算器”應用134
8.1Form視圖介紹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實現App的相關功能149
8.4.1界麵跳轉149
8.4.2返回跳轉151
8.4.3BMI計算152
8.4.4BMI結果153
第9章參數存儲:初識數據持久化機製156
9.1搭建“常規設置”欄目156
9.1.1消息通知157
9.1.2深色模式158
9.2搭建“個性化”欄目160
9.2.1主題顏色161
9.2.2係統語言162
9.2.3字體大小164
9.3搭建“關於我們”欄目165
9.3.1意見反饋165
9.3.2去AppleStore評分167
9.3.3關於應用169
9.4實現參數持久化方法170
9.4.1UserDefaults171
9.4.2@AppStorage屬性包裝器172
第10章網絡請求:連接這個多彩的世界174
10.1從互聯網上請求一張圖片174
10.1.1使用AsyncImage視圖175
10.1.2添加默認視圖175
10.1.3設置不同狀態下的視圖176
10.1.4實現刷新功能178
10.2URLSession網絡請求框架180
10.2.1基礎視圖搭建180
10.2.2實現網絡請求方法181
10.3開發一個“壁紙推薦”界麵183
10.3.1數據模型184
10.3.2單張壁紙185
10.3.3壁紙列表187
10.3.4界麵標題188
10.3.5網絡請求189
第11章架構設計:深入淺出MVVM模式192
11.1開發一個“歷史上的*”界麵193
11.1.1數據模型193
11.1.2視圖194
11.1.3視圖模型196
11.2搭建底部導航欄200
11.3開發一個“日歷”界麵201
11.3.1搭建當前年月欄目202
11.3.2實現更新日期方法202
11.3.3實現格式化日期拓展方法204
11.3.4搭建工作周欄目205
11.3.5搭建日歷時間欄目206
11.3.6實現獲得日期數組方法207
11.3.7實現格式化時間拓展方法209
11.3.8實現起始日期匹配方法210
11.3.9實現選中當前日期方法212
第12章設備管理:掌握CoreServices的奧秘215
12.1開發一個“身份認證”界麵215
12.1.1卡片樣式216
12.1.2視圖界麵217
12.2實現“人臉識別”欄目的功能218
12.2.1創建FaceIDAuthManager數據模型218
12.2.2實現FaceID認證方法218
12.2.3配置FaceID認證權限219
12.2.4調用FaceID認證功能220
12.3實現上傳證件功能221
12.3.1實現拍照和圖片上傳方法221
12.3.2配置相冊和相機權限223
12.3.3實現選擇上傳方式彈窗223
12.3.4調用圖片上傳方法225
12.3.5實現顯示上傳圖片邏輯227
第13章數據存儲:使用FileManager230
13.1搭建底部導航欄231
13.2開發一個“推薦”界麵232
13.2.1sentences文字數組232
13.2.2文字卡片233
13.2.3滑動卡片234
13.2.4“收藏”按鈕236
13.3開發一個“筆記”界麵237
13.3.1數據模型237
13.3.2視圖模型237
13.3.3視圖238
13.4實現收藏文字功能241
13.4.1實現獲得文字方法241
13.4.2實現添加筆記方法243
13.4.3實現獲得當前日期方法243
13.4.4調用添加筆記方法244
13.4.5共享ViewModel實例245
13.5實現數據持久化功能246
13.5.1實現存儲筆記方法246
13.5.2實現讀取筆記方法248
13.5.3實現刪除筆記方法249
第14章項目實戰:開發一款“目標人生”應用252
14.1開發一個“啟動頁”界麵252
14.1.1使用LaunchScreen文件252
14.1.2設置LaunchScreen來源255
14.1.3預覽“啟動頁”界麵255
14.2開發一個“引導頁”界麵256
14.2.1功能卡片256
14.2.2輪播卡片257
14.2.3“開始使用”按鈕258
14.3開發一個“創建目標”界麵259
14.3.1目標名稱259
14.3.2達成日期260
14.3.3日期格式化261
14.3.4操作按鈕263
14.4實現打開/關閉彈窗功能264
14.4.1打開彈窗264
14.4.2通用設置265
14.4.3關閉彈窗267
14.5開發一個“*頁”界麵267
14.5.1數據模型268
14.5.2單例模式271
14.5.3視圖模型272
14.5.4視圖273
14.6實現新增目標功能278
14.6.1實現新增目標方法278
14.6.2調用新增目標方法279
······

最後修改:2025 年 10 月 30 日