Swift 5 從零到精通 iOS 開發訓練營

張益琿

  • 出版商: 清華大學
  • 出版日期: 2021-10-01
  • 售價: $714
  • 貴賓價: 9.5$678
  • 語言: 簡體中文
  • 頁數: 462
  • 裝訂: 平裝
  • ISBN: 7302588643
  • ISBN-13: 9787302588641
  • 相關分類: Apple Developer
  • 立即出貨 (庫存 < 3)

  • Swift 5 從零到精通 iOS 開發訓練營-preview-1
  • Swift 5 從零到精通 iOS 開發訓練營-preview-2
  • Swift 5 從零到精通 iOS 開發訓練營-preview-3
Swift 5 從零到精通 iOS 開發訓練營-preview-1

買這商品的人也買了...

商品描述

本書由專業的iOS開發工程師根據新發布的Swift 5.5編程語言精心編撰,書中兼備核心語法、編程技巧與應用實踐3大主題。本書第一部分從Xcode開發工具及Swift學習環境的搭建開始,重點介紹Swift的語言特性和應用場景,提供了大量編程練習,幫助讀者盡快掌握Swift語言的精髓。第二部分介紹Swift開發iOS應用的基本技能,包括獨立UI控件的應用、視圖界面邏輯的開發、動畫與佈局技術、網絡與數據處理技術以及新的SwiftUI編程技術等,旨在帶領讀者獨立開發一款iOS應用程序。第三部分為應用部分,這部分安排了實戰項目(簡易計算器、生活記事本、中國象棋游戲),項目的安排由簡到難,旨在全面鍛煉讀者的實際開發能力,使用Swift進行開發實踐。本書還在每一章中插入了模擬面試題,以幫助讀者應對iOS開發職位的面試。 通過本書的學習,讀者可以輕松地掌握使用Swift語言開發一款iOS軟件從理論到實踐的全部技術細節。本書適合使用Swift 開發iOS應用的新手,以及有Objective-C基礎,想學習Swift 的iOS開發人員學習,也適合作為培訓機構與大中專院校移動開發課程的教學用書或面試指導書。

作者簡介

張益琿(網名:琿少)
多年iOS開發經驗,51CTO學院、CSDN學院簽約講師 ,主要從事移動端應用開發,曾就職於國內知名電商網站,從事iOS端應用程序的業務開發與性能優化工作。
目前在國內知名社交產品公司從事IM系統的架構設計工作。
對iOS開發、React Native和Flutter跨ping台開發及JavaScript前端開發都擁有豐富的經驗。
已出版《iOS開發實戰:從零基礎到App Store上架》《React Native全教程:移動端跨ping台應用開發》《iOS開發實戰:從零基礎到上架App Store(第3版)》《Swift從零到精通iOS開發》等多本編程著作。開源中國特邀技術專家,發表相關技術博客400餘篇,訪問量100萬餘次。

目錄大綱

一部分  Swift語言基礎語法
第1章  學習環境的搭建 3
1.1  申請個人AppleID賬號 3
1.2  下載與安裝Xcode開發工具 4
1.3  Xcode開發工具簡介 5
1.4  使用Playground進行Swift代碼演練 8

第2章  量值與基本數據類型 11
2.1  變量與常量 12
2.1.1  變量與常量的定義和使用 12
2.1.2  變量和常量的命名規範 13
2.2  關於註釋 14
2.3  初識基本數據類型 15
2.3.1  數學進制與計算機存儲原理 15
2.3.2  整型數據 16
2.3.3  浮點型數據 17
2.3.4  布爾型數據 17
2.4  兩種特殊的基本數據類型 18
2.4.1  元組 18
2.4.2  可選值類型 19
2.5  為類型取別名 22
2.6  練習及解析 22
2.7  模擬面試 23

第3章  字符、字符串與集合類型 25
3.1  字符串類型 26
3.1.1  進行字符串的構造 26
3.1.2  字符串的組合 27
3.2  字符類型 27
3.2.1  字符類型簡介 27
3.2.2  轉義字符 28
3.3  字符串類型中的常用方法 29
3.4  集合類型 31
3.4.1  數組(Array)類型 32
3.4.2  集合(Set)類型 35
3.4.3  字典(Dictionary)類型 37
3.5  練習及解析 40
3.6  模擬面試 42

第4章  基本運算符與程序流程控制 44
4.1  初識運算符 45
4.1.1  賦值運算符 45
4.1.2  基本算術運算符 45
4.1.3  基本邏輯運算符 46
4.1.4  比較運算符 47
4.1.5  條件運算符 48
4.2  Swift語言中兩種特殊的運算符 48
4.2.1  空合併運算符 48
4.2.2  區間運算符 49
4.3  循環結構 50
4.3.1  for-in循環結構 50
4.3.2  while與repeat-while條件循環結構 51
4.4  條件選擇與多分支選擇結構 52
4.4.1  if與if-else條件選擇結構 52
4.4.2  switch-case多分支選擇結構 53
4.5  Swift語言中的流程跳轉語句 56
4.6  練習及解析 59
4.7  模擬面試 62

第5章  函數與閉包技術 64
5.1  函數的基本應用 65
5.1.1  函數的創建與調用 65
5.1.2  關於函數的參數名 66
5.1.3  函數中參數的默認值、不定數量參數與inout類型參數 68
5.2  函數的類型與函數嵌套 69
5.3  理解閉包結構 71
5.3.1  閉包的語法結構 71
5.3.2  通過實現一個排序函數來深入理解閉包 72
5.4  將閉包作為參數傳遞時的寫法優化 74
5.5  後置閉包、逃逸閉包與自動閉包 75
5.6  練習及解析 77
5.7  模擬面試 80

第6章  高#級運算符與枚舉 81
6.1  位運算符與溢出運算符 82
6.1.1  位運算符的應用 82
6.1.2  溢出運算符 83
6.2  運算符的重載與自定義 84
6.2.1  重載運算符 84
6.2.2  自定義運算符 86
6.3  運算符的優先級與結合性 87
6.4  枚舉類型的創建與應用 89
6.5  枚舉的原始值與相關值 91
6.5.1  枚舉的原始值 91
6.5.2  枚舉的相關值 92
6.5.3  遞歸枚舉 93
6.6  練習及解析 96
6.7  模擬面試 97

第7章  類與結構體 99
7.1  類與結構體的定義 99
7.1.1  結構體 100
7.1.2  類 101
7.2  設計一個交通工具類 103
7.3  開發中類與結構體的應用場景 105
7.4  練習及解析 106
7.5  模擬面試 108

第8章  屬性與方法 110
8.1  存儲屬性與計算屬性 111
8.1.1  存儲屬性的意義及應用 111
8.1.2  計算屬性的意義及應用 113
8.2  屬性監聽器 115
8.3  屬性包裝器 116
8.4  實例屬性與類屬性 119
8.5  實例方法與類方法 119
8.5.1  實例方法的意義與應用 120
8.5.2  類方法 121
8.6  下標方法 122
8.7  練習及解析 124
8.8  模擬面試 124

第9章  構造方法與析構方法 126
9.1  構造方法的設計與使用 126
9.2  指定構造方法與便利構造方法 129
9.3  構造方法的繼承關係 131
9.4  構造方法的安全性檢查 132
9.5  可失敗構造方法與必要構造方法 134
9.6  析構方法 135
9.7  練習與解析 135
9.8  模擬面試 137

第10章  內存管理與異常處理 138
10.1  自動引用計數 139
10.2  循環引用及其解決方法 141
10.3  閉包中的循環引用 146
10.4  異常的拋出與傳遞 147
10.5  異常的捕獲與處理 148
10.6  延時執行結構 149
10.7  練習與解析 150
10.8  模擬面試 151

第11章  類型轉換、泛型、擴展與協議 152
11.1  類型檢查與轉換 153
11.1.1  Swift語言中的類型檢查 153
11.1.2  Swift語言中的類型轉換 154
11.2  Any與AnyObject類型 155
11.3  泛型 156
11.3.1  初識泛型 156
11.3.2  對泛型進行約束 158
11.4  擴展與協議 160
11.4.1  使用擴展對已經存在的數據類型進行補充 160
11.4.2  協議的特點與應用 162
11.4.3  協議與擴展的結合 165
11.5  模擬面試 165

第12章  Swift的高#級特性 167
12.1  內存安全檢查(獨占訪問權限) 167
12.2  關聯類型可以添加where約束子句 170
12.3  增強字符串和區間運算符的功能 170
12.4  動態成員查找與動態方法調用 172
12.5  泛型與協議功能的增強 173
12.6  模擬面試 175

第二部分  iOS開發基礎
第13章  UI控件與邏輯交互(1) 179
13.1  iOS項目工程簡介 180
13.1.1  創建iOS項目工程 180
13.1.2  運行第#一個iOS程序 181
13.2  標籤控件——UILabel 184
13.2.1  使用代碼創建一個UILabel控件 184
13.2.2  自定義UILable控件的展示效果 185
13.2.3  定義更加豐富多彩的UILabel控件 186
13.3  按鈕控件——UIButton 188
13.3.1  創建UIButton按鈕控件 188
13.3.2  為按鈕添加觸發事件 190
13.3.3  為UIButton添加自定義圖片 191
13.4  圖片顯示控件——UIImageView 192
13.4.1  圖片類UIImage 193
13.4.2  使用UIImageView進行圖片的展示 193
13.4.3  使用UIImageView播放動畫 194
13.5  文本輸入框控件——UITextField 196
13.5.1  創建文本輸入框控件 196
13.5.2  為UITextField設置左右視圖 198
13.5.3  UITextField控件的代理方法 199
13.6  開關控件UISwitch 201
13.7  分頁控制器——UIPageControl 203
13.8  分部控制器——UISegmentedControl 204
13.8.1  創建分佈控制器控件 204
13.8.2  UISegmentedControl控件中按鈕的增、刪、改操作 205
13.8.3  關於UISegmentedControl控件中按鈕的尺寸問題 206
13.9  模擬面試 207

第14章  UI控件與邏輯交互(2) 208
14.1  滑塊控件UISlider 208
14.1.1  UISlider控件的創建與設置 209
14.1.2  UISlider控件的外觀自定義與用戶交互 209
14.2  活動指示器控件UIActivityIndicatorView 211
14.3  進度條控件UIProgressView 212
14.4  步進器控件UIStepper 213
14.5  選擇器控件UIPickerView 215
14.6  時間選擇器控件UIDataPicker 219
14.7  搜索欄控件UISearchBar 221
14.7.1  創建UISearchBar控件 221
14.7.2  UISearchBar控件的更多功能按鈕 224
14.7.3  UISearchBar控件的附件視圖 225
14.7.4  UISearchBarDelegate協議詳解 226
14.8  模擬面試 227

第15章  視圖控制器與高#級UI視圖控件 229
15.1  應用程序的界面管理器UIViewController 230
15.1.1  關於MVC設計模式 230
15.1.2  UIViewController的生命週期 231
15.1.3  UIViewController之間的切換與傳值 232
15.2  導航視圖控制器UINavigationController 238
15.2.1  理解導航結構 238
15.2.2  搭建使用導航結構的項目 238
15.2.3  對導航欄進行自定義設置 240
15.2.4  使用導航進行視圖控制器的切換管理 243
15.3  標籤欄控制器UITabBarController 244
15.3.1  創建以UITabBarController為項目結構的工程 244
15.3.2  對UITabBarController中的標籤進行自定義配置 247
15.3.3  標籤欄上標籤的溢出與排序功能 249
15.4  警告視圖控制器的應用 251
15.4.1  認識UIAlertAction類 251
15.4.2  使用UIAlertController創建警告框彈窗 252
15.4.3  使用UIAlertController創建抽屜彈窗 254
15.5  網頁視圖的應用 254
15.5.1  網頁視圖UIWebView 255
15.5.2  認識WebKit框架 258
15.5.3  使用WKWebViewConfiguration對網頁視圖進行配置 259
15.5.4  WKWebView中重要的屬性和方法解析 261
15.5.5  關於WKUIDelegate協議 262
15.6  滾動視圖UIScrollView的應用 263
15.6.1  創建UIScrollView滾動視圖 263
15.6.2  UIScrollViewDelegate協議介紹 265
15.6.3  UIScrollView的縮放操作 266
15.7  列表視圖UITableView的應用 267
15.7.1  創建UITableView列表 267
15.7.2  進行數據載體UITableViewCell的自定義 271
15.7.3  UITableView的編輯模式 274
15.7.4  為UITableView添加索引欄 277
15.8  集合視圖UICollectionView的應用 279
15.8.1  使用UICollectionView實現簡單的九宮格佈局 279
15.8.2  使用FlowLayout進行更加靈活的九宮格佈局 281
15.8.3  實現炫酷的瀑布流佈局 283
15.9  模擬面試 286

第16章  動畫與界面佈局技術 288
16.1  使用UIView層動畫實現屬性漸變效果 289
16.1.1  UIView層的屬性過渡動畫 289
16.1.2  UIView層的轉場動畫 292
16.2  通過GIF文件播放動畫 294
16.2.1  使用原生的UIImageView來播放GIF動態圖 294
16.2.2  使用UIWebView進行GIF動態圖的播放 296
16.3  iOS開發中的CoreAnimation核心動畫技術 297
16.3.1  初識CoreAnimation框架 297
16.3.2  錨點對視圖幾何屬性的影響 297
16.3.3  幾種常用的CALayer子類介紹 298
16.3.4  CoreAnimation框架中的屬性動畫介紹 302
16.3.5  CoreAnimation框架中的轉場動畫與組合動畫 303
16.4  炫酷的粒子效果 305
16.4.1  粒子發射引擎與粒子單元 305
16.4.2  創建火焰粒子效果 307
16.5  Autolayout自動佈局技術 309
16.5.1  使用Storyboard或者XIB文件進行界面的自動佈局 309
16.5.2  進行視圖間的約束佈局 312
16.5.3  使用原生代碼進行Autolayout自動佈局 313
16.5.4  使用第三方框架SnapKit進行Autolayout自動佈局 316
16.6  使用Autolayout創建自適應高度的UITextView輸入框 318
16.7  模擬面試 319

第17章  網絡與數據存儲技術 321
17.1  獲取互聯網上公開API所提供的數據 321
17.1.1  註冊天行API會員 322
17.1.2  進行API接口測試 322
17.1.3  關於JSON數據格式 323
17.2  在iOS開發中進行網絡數據請求 324
17.2.1  關於HTTP網絡請求協議 325
17.2.2  使用URLSesstion進行網絡請求 325
17.3  使用UserDefaults進行簡單數據的持久化存儲 327
17.3.1  使用UserDefaults與Plist文件進行常見類型數據的存儲 328
17.3.2  使用Plist文件進行數據持久化處理 329
17.4  iOS開發中的歸檔技術應用 331
17.4.1  對簡單數據類型的歸檔操作 331
17.4.2  對自定義數據類型進行歸檔操作 333
17.5  數據庫在iOS開發中的應用 334
17.5.1  操作數據庫常用語句 334
17.5.2  可視化數據庫管理工具MesaSQLite的簡單應用 337
17.5.3  libsqlite3數據庫操作庫簡介 338
17.5.4  在iOS工程中調用libsqlite3庫操作數據庫 340
17.6  使用CoreData框架進行數據管理 344
17.6.1  使用CoreData框架進行數據模型設計 344
17.6.2  使用CoreData進行數據的添加與查詢操作 346
17.7  模擬面試 348

第18章  SwiftUI技術 349
18.1  視圖的佈局方式 349
18.1.1  SwiftUI佈局初體驗 350
18.1.2  使用圖片組件 353
18.1.3  在SwiftUI中使用UIKit中的組件 354
18.2  SwiftUI中的列表視圖 354
18.2.1  編寫行視圖 354
18.2.2  將數據關聯到視圖 355
18.2.3  構建列表視圖 356
18.3  使用導航進行頁面跳轉 357
18.4  處理用戶交互 360
18.4.1  SwiftUI中的按鈕組件 360
18.4.2  SwiftUI中的狀態 361
18.4.3  使用環境對象 362
18.5  SwiftUI自定義繪製 363