商品簡介
《Swift 5從零到精通iOS開發訓練營》由專業的iOS開發工程師根據新發佈的Swift 5.5程序設計語言精心編撰,書中兼備核心語法、程序設計技巧與應用實踐3大主題。該書第一部分從Xcode開發工具及Swift學習環境的搭建開始,重點介紹Swift的語言特性和應用場景,提供了大量程序設計練習,説明讀者儘快掌握Swift語言的精髓。第二部分介紹Swift開發iOS應用的基本技能,包括獨立UI控制項的應用、視圖接口邏輯的開發、動畫與佈局技術、網絡與資料處理技術以及新的SwiftUI程序設計技術等,旨在帶領讀者獨立開發一款iOS應用程式。第三部分為應用部分,這部分安排了實戰項目(簡易計算器、生活記事本、中國象棋遊戲),項目的安排由簡到難,旨在全面鍛煉讀者的實際開發能力,使用Swift進行開發實踐。該書還在每一章中插入了模擬面試題,以幫助讀者應對iOS開發職位的面試。
通過《Swift 5從零到精通iOS開發訓練營》的學習,讀者可以輕鬆地掌握使用Swift語言開發一款iOS軟件從理論到實踐的全部技術細節。該書適合使用Swift 開發iOS應用的新手,以及有Objective-C基礎,想學習Swift 的iOS開發人員學習,也適合作為培訓機構與大中專院校移動開發課程的教學用書或面試指導書。
作者簡介
張益琿(網名:琿少)
多年iOS開發經驗,51CTO學院、CSDN學院簽約講師 ,主要從事移動端應用開發,曾就職於國內知名電商網站,從事iOS端應用程式的業務開發與性能優化工作。目前在國內知名社交產品公司從事IM系統的架構設計工作。對iOS開發、React Native和Flutter跨平臺開發及JavaScript前端開發都擁有豐富的經驗。已出版《iOS開發實戰:從零基礎到App Store上架》《React Native全教程:移動端跨平臺應用開發》《iOS開發實戰:從零基礎到上架App Store(第3版)》《Swift從零到精通iOS開發》等多本程序設計著作。開源中國特邀技術專家,發表相關技術博客400餘篇,訪問量100萬餘次。
名人/編輯推薦
本書以讀者能夠完全獨立開發iOS應用為目標構建知識體系,全書分為三部分,各部分說明如下:
第一部分 將為讀者介紹Swift語言的語法,這也是本書後面部分的基礎,共12章,每1章都為讀者介紹Swift語言的一些基礎語法點,包括資料類型、流程控制語句、運算子、函數與閉包、枚舉、結構體、類、屬性與方法、物件構造與析構、內存管理、異常處理、擴展與協定以及Swift語言的新特性等。
第二部分 為iOS開發基礎部分,目前Swift語言應用的主要場景是iOS應用的開發。這部分內容將系統地向讀者介紹iOS 開發技能,包括獨立UI控制項的應用、視圖接口邏輯的開發、動畫與佈局技術、網絡與資料處理技術等。掌握了這些技能,理論上講讀者已經具備了獨立開發一款iOS 應用程式的能力。本部分還介紹了Swift 5新增的SwiftUI技術,SwiftUI技術將使得軟件的接口開發更加高效和容易。
第三部分 為實戰部分,學習程序設計,實戰是必經的一關。本書為讀者安排了3個實戰項目,項目的安排由簡入難,並且各個項目的側重點分佈均勻,力圖全面鍛煉讀者的實際開發能力。
除了循序漸進的技能學習外,在每一章的最後還加入了練習題與模擬面試。練習題可以幫助讀者更好地理解和掌握當前章節所學習的內容,類比面試可以幫助讀者增加實戰經驗,進而提高應用能力。
序
自2014年Apple在全球開發者大會上發佈了Swift程序設計語言,至今已經經歷了5個大版本的反覆運算,隨著Swift語言的更新與完善,開發者對其的熱情也越來越高,越來越多的公司在開發iOS軟件項目時都將Swift作為最先選擇的程序設計語言。
從第一版Swift語言的發佈開始,我就一直對這門新興的程序設計語言有著濃厚的興趣,幾年前,當我第一次收到清華大學出版社王金柱編輯的邀請,建議寫一本?明新手入門Swift語言iOS開發的工具書時,忐忑的心情至今還記憶猶新。經過再三的考慮與矛盾,我最終決定接下這個任務。當然,不是我對自己的程序設計技能充滿信心,只是覺得把學習過程中遇到的問題、走過的彎路、積累的經驗整理成冊提供給初學者是一件非常有意義的事情。後來經過半年多的努力,《Swift 3從入門到精通》順利出版並且得到了不錯的響應。儘管在寫作的過程中充滿了艱辛,但是看到自己的作品可以給讀者帶來切實的幫助,我也收穫到了額外的喜悅與慰藉。後來,在各位讀者的幫助下,我對書中出現的錯誤與不合理之處進行了多次糾正與優化,《Swift 4從入門到精通》得以與讀者相見。
截至本書完稿,Swift程序設計語言已經更新到5.5版本,其間Swift語言改變了很多,也優化了很多,從1.0到3.0版本,Swfit語言經歷了質的變化,從3.0到5.0版本,Swift語言也迎來了完善與穩定。Swift語言是少有的在短時間內大版本更迭的程序設計語言,這也體現了這門語言不拘一格、大膽創新的特點。本書在《Swift 4從入門到精通》的基礎上,優化了部分過時的內容,新增了Swift 5.5的新特性與SwiftUI技術的內容,更重要的是,總結了《Swift 4從入門到精通》一書讀者的回饋,本書中的內容更加面向應用,並且插入了大量的面試題,並做了試題解析與面試指導。
本書分為三大部分。
第一部(第1~12章)將為讀者介紹Swift語言的一些基礎語法點,包括資料類型、流程控制語句、運算子、函數與閉包、枚舉、結構體、類、屬性與方法、物件構造與析構、內存管理、異常處理、擴展與協定以及Swift語言的新特性等。這12章內容將竭力為讀者介紹Swift語言的語法特點與應用場景,並且每一章後面都附帶有習題,供讀者對本章所學的知識進行測試與應用。
第二部分(第13~18章)為iOS開發基礎部分,目前Swift語言應用的主要場景為iOS應用的開發。這部分內容將系統地向讀者介紹iOS的開發技能,包括獨立UI控制項的應用、視圖接口邏輯的開發、動畫與佈局技術、網絡與資料處理技術等。掌握了這些技能,理論上讀者已經具備獨立開發一款iOS 應用程式的能力。與《Swift 4從入門到精通》一書不同的是,本書中新增了SwiftUI章節,SwiftUI技術將使得軟件的接口開發更加容易。
第三部分(第19~21章)為實戰部分,學習程序設計,實戰是必經的一關。本書為讀者安排了3個實戰項目,項目的安排由簡入難,並且各個項目的側重點分佈均勻,力圖全面鍛煉讀者的實際開發能力。
除了三大部分循序漸進的技能學習外,在每一章的最後都加入了練習題與模擬面試。練習題可以幫助讀者更好地理解和掌握當前章節所學習的內容,類比面試可以幫助讀者增加實戰經驗,進而提高應用能力。
本書是一本從基礎到實戰的Swift程序設計語言學習教程。如果你符合下面的特點,那麼本書就是為你定制的:
(1)對iOS系統軟件發展感興趣,想要從事iOS軟件發展的人員。
(2)對程序設計感興趣,對Swift程序設計語言感興趣的人員。
(3)熟悉Objective-C語言,想要嘗試Swift語言的開發者。
(4)需要進行面試指導的Swift求職者。
此外,本書還提供了全部原始程式碼,以方便讀者上機演練,讀者掃描以下二維碼即可下載:
如果你在下載過程中遇到問題,可發送郵件至booksaga@126.com獲得幫助,郵件標題為“Swift 5從零到精通iOS開發訓練營”。
程序設計是一門動手性很強的技能,因此在學習本書時,讀者首先需要搭建好自己的開發環境(本書第1章有介紹)。在學習書中內容時要對照代碼進行實際操作,並且本書的配套資源中也有書中所引用的全部代碼,讀者在學習時可以進行參考對照。如果讀者沒有良好的Swift語言基礎,在學習本書時,請務必根據章節的順序安排進行學習,只有有了良好的語言基礎,學習後面章節的時候才能得心應手。
本書能夠順利完成,首先要感謝家人對我寫作的支持,感謝朋友們的無私幫助。最重要的是感謝清華大學出版社的王金柱編輯,王金柱編輯耐心地糾正了我許多寫作中的問題,並且給了我許多非常有價值的建議,指導我完成了本書的編寫。沒有他的辛勤付出,本書不會出現在讀者的面前。最後,感謝所有讀者,我們都是程序設計路途中的學習者,你們的努力和認可讓我堅定不移地去做分享知識這件有意義的事,希望我們能夠一起努力,一起前進!
目次
目 錄
第一部分 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.2 通過GIF檔播放動畫 294
16.3 iOS開發中的CoreAnimation核心動畫技術 297
16.4 炫酷的粒子效果 305
16.5 Autolayout自動佈局技術 309
16.6 使用Autolayout創建自我調整高度的UITextView輸入框 318
16.7 模擬面試 319
第17章 網絡與資料存儲技術 321
17.1 獲取互聯網上公開API所提供的資料 321
17.2 在iOS開發中進行網絡資料請求 324
17.3 使用UserDefaults進行簡單資料的持久化存儲 327
17.4 iOS開發中的歸檔技術應用 331
17.5 資料庫在iOS開發中的應用 334
17.6 使用CoreData框架進行資料管理 344
17.7 模擬面試 348
第18章 SwiftUI技術 349
18.1 視圖的佈局方式 349
18.2 SwiftUI中的列表視圖 354
18.3 使用導航進行頁面跳轉 357
18.4 處理用戶交互 360
18.5 SwiftUI自訂繪製 363
18.6 SwiftUI中的動畫技術 368
18.7 模擬面試 370
第三部分 實戰
第19章 實戰一:簡易計算器 373
19.1 計算器按鍵與操作面板的封裝 373
19.2 計算器顯示板輸入顯示的邏輯開發 377
19.3 計算器計算邏輯的設計 381
19.4 為應用添加圖示與啟動頁 384
第20章 實戰二:點滴生活記事本 386
20.1 項目工程的搭建 386
20.2 主頁記事分組視圖的開發 389
20.3 添加分組功能的開發 392
20.4 資料庫引入與記事分組信息的持久化 394
20.5 記事清單接口的搭建 396
20.6 新建記事功能的開發 399
20.7 更新記事與刪除記事功能的開發 406
第21章 實戰三:《中國象棋》遊戲 411
21.1 項目工程的搭建與音訊模組的開發 411
21.2 《中國象棋》棋子控制項的開發 415
21.3 《中國象棋》棋盤控制項的開發 418
21.4 “兵”與“卒”行棋邏輯的開發 422
21.5 “將”與“士”相關棋子行棋邏輯的開發 429
21.6 “象”與“馬”相關棋子行棋邏輯的開發 432
21.7 “車”與“炮”棋子行棋邏輯的開發 437
21.8 勝負判定邏輯開發與遊戲功能完善 441
21.9 拆分冗長的checkCanMove()方法 446
附錄A CocoaPods庫管理工具的應用 454
附錄B 關鍵概念檢索表 458
主題書展
更多書展本週66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。