iOS移動開發從入門到精通(第2版)

iOS移動開發從入門到精通(第2版)

《iOS移動開發從入門到精通(第2版)》是2018年10月清華大學出版社出版的圖書,作者是李發展。

基本介紹

  • 中文名:iOS移動開發從入門到精通(第2版)
  • 作者:李發展
  • 出版社:清華大學出版社
  • 出版時間:2018年10月
  • 定價:118 元
  • ISBN:9787302511571
內容簡介,圖書目錄,

內容簡介

本書介紹使用iOS 11、Xcode 9和Swift 4.0開發移動套用所需要的主要內容,全書共分三篇,第一篇為基礎篇(第1~10章),主要介紹了iOS開發基礎知識,包括iOS系統的歷史、Swift 4.0語言、UI界面構建技術、視圖控制器、常用的控制項、表和集合視圖、視圖和層、聲音、視頻、動畫等;第二篇為進階篇(第11~23章),主要介紹了Alamofire網路服務、數據的持久化、多執行緒、CoreText、CoreImage、Storyboard、CoreML機器學習、ARKit增強現實、自動化測試、性能分析、本地化、加密與安全等實用技術;第三篇為實例篇(第24~31章),通過對實體層、表現層和邏輯層三層相關技術的講解,向讀者詳細展示了MVC設計模式在項目開發中的套用方式,並最終創建一個成熟的商業項目。本書還提供了豐富的原始碼和教學視頻,可以大幅提高讀者的學習效率。
本書採用豐富的實例和直觀的代碼展示,向讀者形象地講解了在創建一款優秀的iOS應用程式時所需要的大部分技巧,可以幫助讀者輕鬆掌握並高效開發iOS程式。

圖書目錄

第1章 開始iOS開發之旅 1
1.1 iOS移動開發現狀 1
1.1.1 iOS的歷史 2
1.1.2 iOS 11的十一大變化 4
1.1.3 iOS套用開發的八個特點 6
1.2 iOS 11和Xcode 9新增的開發技能 6
1.2.1 ARKit增強現實 7
1.2.2 CoreML機器學習 7
1.2.3 Face ID 7
1.2.4 拖放操作 8
1.2.5 Core NFC 8
1.2.6 安全區布局指南 9
1.2.7 Asset UIColor 9
1.2.8 Wireless Development 9
1.2.9 GitHub 10
1.3 成為一名iOS開發者 10
1.3.1 硬體上的需求 10
1.3.2 加入Apple開發者計畫 11
1.3.3 下載安裝Xcode和模擬器 12
1.3.4 創建開發和發布配置檔案Provisioning Profile 13
1.4 創建一個基本的iOS項目 16
1.4.1 項目的創建 16
1.4.2 設定項目的信息 18
1.4.3 設定套用的Icon圖示 19
1.4.4 設定套用的Launch圖片 20
1.4.5 編譯並運行項目 22
1.5 iOS套用的生命周期 23
1.5.1 iOS應用程式的狀態 23
1.5.2 演示iOS應用程式的各種狀態 24
1.6 小結 25
第2章 Xcode 9 IDE和iOS模擬器 27
2.1 Xcode 9的使用 27
2.1.1 工具列的使用 28
2.1.2 導航器的功能介紹 29
2.1.3 項目導航器中的內容 29
2.1.4 創建一個組和Swift檔案 30
2.1.5 在項目中搜尋檔案 33
2.1.6 代碼的查找和替換 36
2.1.7 代碼的Debug調試 36
2.2 iOS模擬器的使用 39
2.2.1 使用多種iOS模擬器 39
2.2.2 iOS模擬器方向的切換 40
2.2.3 iOS模擬器語言的切換 41
2.2.4 截取模擬器螢幕 41
2.2.5 應用程式的退出和刪除 41
2.3 小結 42
第3章 Swift 4.0的基礎知識 43
3.1 Swift的基本概念 43
3.1.1 Swift語言的特點 44
3.1.2 Swift常量和變數的定義 44
3.1.3 常量和變數的輸出 45
3.1.4 注釋 46
3.1.5 Playground 47
3.2 數據類型與運算 49
3.2.1 布爾類型 49
3.2.2 整數類型及實例屬性 50
3.2.3 浮點類型及實例屬性 50
3.2.4 字元和字元串 51
3.2.5 元組類型 54
3.2.6 一元、二元和三元運算符 55
3.2.7 比較運算符 56
3.3 循環語句和條件判斷語句 56
3.3.1 for循環 56
3.3.2 while循環語句 58
3.3.3 repeat-while循環語句 58
3.3.4 if條件判斷語句 59
3.3.5 switch條件判斷語句 60
3.3.6 continue語句和fallthrough語句 60
3.4 數組和字典 61
3.4.1 數組 61
3.4.2 多維數組 63
3.4.3 數組的遍歷 64
3.4.4 字典 65
3.5 小結 67
第4章 Swift 4.0的進階內容 68
4.1 函式 68
4.1.1 函式的定義和調用 68
4.1.2 為參數設定默認值 69
4.1.3 設定可變的函式參數數量 70
4.1.4 函式作為參數和返回類型 71
4.1.5 元組作為函式的返回類型實現多個返回值 72
4.1.6 使用函式類型 73
4.1.7 函式的輸入輸出參數 74
4.1.8 函式的嵌套 74
4.1.9 函式的遞歸用法 75
4.1.10 常用的內置函式 76
4.2 枚舉和結構體 78
4.2.1 枚舉 78
4.2.2 結構體 81
4.3 類 84
4.3.1 類的創建 84
4.3.2 類屬性的set和get方法 86
4.3.3 類屬性的willSet和didSet方法 87
4.3.4 類的靜態方法 89
4.3.5 類的析構 89
4.3.6 類的繼承 90
4.3.7 類的延遲載入屬性lazy 92
4.3.8 類的引用特徵 93
4.3.9 類型檢查 94
4.3.10 Any和AnyObject 96
4.4 擴展、協定和其他 97
4.4.1 擴展 97
4.4.2 協定 99
4.4.3 問號和感嘆號 101
4.5 小結 103
第5章 視圖UIView和層CALayer 104
5.1 視圖UIView 104
5.1.1 UIView概述 104
5.1.2 UIView的外觀屬性 106
5.1.3 UIView的幾何屬性 110
5.1.4 UIView的嵌套和層次關係 112
5.1.5 UIView的互動屬性 114
5.1.6 UIView的變形操作 116
5.1.7 自定義UIView視圖 118
5.2 CALayer層 122
5.2.1 CALayer框線 122
5.2.2 CALayer投影 123
5.2.3 CALayer圓角 124
5.2.4 CALayer漸變 126
5.3 小結 128
第6章 視圖控制器UIViewController 129
6.1 UIViewController視圖控制器概述 129
6.1.1 視圖控制器與MVC 130
6.1.2 創建一個視圖控制器 131
6.1.3 以模態方式彈出視圖控制器 134
6.1.4 視圖控制器的生命周期 138
6.1.5 視圖控制器和UIScrollView 140
6.2 UITabBarController 144
6.2.1 創建一個UITabBarController 144
6.2.2 改變UITabBarController索引 146
6.2.3 在Tab圖示上顯示角標 147
6.3 UINavigationController 148
6.3.1 創建一個UINavigationController 148
6.3.2 UINavigationController視圖入棧和出棧 151
6.3.3 導航欄和工具列的顯示和隱藏 155
6.3.4 導航欄樣式的修改 155
6.4 導航控制器和標籤控制器 156
6.5 小結 159
第7章 UIKit常用控制項 160
7.1 UIKit框架和Foundation框架 160
7.1.1 UIKit框架的結構 161
7.1.2 UIKit框架和視圖對象的互動 163
7.2 UIButton按鈕控制項 164
7.2.1 不同樣式的UIButton按鈕 164
7.2.2 UIButton按鈕的狀態 166
7.2.3 UIButton按鈕的事件回響 167
7.3 UILabel標籤控制項 169
7.3.1 創建一個UILabel標籤 170
7.3.2 長文本標籤的換行 170
7.3.3 標籤文字樣式的自定義 172
7.4 UISwitch開關控制項 172
使用開關控制項 173
7.5 UITextField文本輸入控制項的使用 174
7.5.1 自定義UITextField的外觀和鍵盤 174
7.5.2 回響UITextField的鍵盤通知 177
7.6 UIAlertController 178
7.6.1 創建一個警告視窗 179
7.6.2 創建一個動作表單 180
7.7 UIDatePicker 182
7.8 UIStackView 184
使用UIStackView組織視圖 184
7.9 小結 187
第8章 UITableView和UICollectionView 188
8.1 UITableView概述 188
8.1.1 UITableViewCell單元格 189
8.1.2 創建一個簡單的表格 191
8.1.3 自定義單元格
UITableViewCell 195
8.1.4 自定義單元格的高度 197
8.1.5 給表格添加章節和索引 200
8.1.6 單元格的選擇與取消選擇 203
8.1.7 單元格的插入和刪除 206
8.1.8 移動單元格的位置 211
8.1.9 表格之間的嵌套 214
8.2 UICollectionView概述 221
8.2.1 UICollectionView的實現|原理 222
8.2.2 創建一個UICollectionView對象並添加點擊事件 223
8.3 小結 227
第9章 觸屏事件和觸摸手勢 228
9.1 觸摸事件的監測 228
9.1.1 對觸摸事件階段的監測 229
9.1.2 監測是否觸摸到某個視圖 231
9.1.3 實現圖像視圖的拖動 232
9.2 觸摸手勢的使用 234
9.2.1 實現單點觸摸手勢 235
9.2.2 實現雙擊觸摸手勢 237
9.2.3 實現長按手勢的監測 237
9.2.4 捏合手勢的監測 239
9.3 3D Touch的使用 241
9.4 小結 244
第10章 動畫、聲音與視頻 245
10.1 製作動畫 245
10.1.1 UIView的動畫 245
10.1.2 使用UIImageView播放幀動畫 251
10.1.3 位移關鍵幀動畫的製作 253
10.2 音頻的播放 255
10.2.1 使用System Sound Services播放簡短聲音 257
10.2.2 使用AVAudioPlayer播放音樂 258
10.3 視頻的播放 261
10.3.1 使用AVPlayer播放影片 262
10.3.2 實現影片的畫中畫功能 263
10.4 小結 266
第11章 網路請求和Alamofire 267
11.1 網路請求 267
11.1.1 GET和POST請求 267
11.1.2 同步請求和異步請求 268
11.1.3 使用URLSession進行網路請求 268
11.1.4 使用URLSession下載圖片並顯示進度 270
11.2 Alamofire的使用 273
11.2.1 Alamofire的安裝 274
11.2.2 使用Alamofire進行GET和POST請求 275
11.2.3 使用Alamofire上傳圖片 277
11.2.4 使用AlamofireImage快取圖像 278
11.2.5 使用AlamofireObjectMapper將JSON數據映射為對象 281
11.3 小結 283
第12章 UIWebView與HTML 5技術 284
12.1 UIWebView的使用 284
12.1.1 使用UIWebView載入網頁 285
12.1.2 使用UIWebView載入HTML字元串和GIF動畫 287
12.1.3 使用UIWebView載入本地網頁 289
12.1.4 使用JavaScript回調原生程式 293
12.2 創建一個簡單的筆記本 296
12.2.1 創建一個可編輯的div 296
12.2.2 設定網頁的CSS樣式 296
12.2.3 添加插入筆記圖片的方法 297
12.2.4 添加刪除圖片和獲得筆記的方法 299
12.2.5 實現筆記本的用戶界面 299
12.3 小結 302
第13章 數據的持久化 303
13.1 解析plist檔案 303
13.1.1 創建和解析plist檔案 304
13.1.2 將信息寫入plist檔案 306
13.2 使用CoreData進行數據的持久化 308
13.2.1 創建Core Data實體並插入數據 309
13.2.2 檢索Core Data中的數據 312
13.2.3 修改和刪除Core Data數據 313
13.3 小結 316
第14章 多執行緒技術 317
14.1 多執行緒的概念 317
14.1.1 任務、進程和執行緒 318
14.1.2 執行緒的Stack Space 318
14.1.3 執行緒的優先權 318
14.1.4 執行緒的生命周期 319
14.1.5 執行緒和RunLoop 319
14.2 使用Thread 320
14.2.1 創建Thread下載圖片 320
14.2.2 給Thread加鎖使執行緒同步 322
14.3 Operation技術的使用 325
14.4 Grand Central Dispatch的使用 328
14.4.1 使用GCD查詢IP位址信息 329
14.4.2 DispatchGroup調度組的使用 331
14.5 小結 333
第15章 MapKit地圖 334
15.1 MapKit的概念 334
15.1.1 MKMapView的顯示區域 335
15.1.2 MKMapView的跟蹤和定位 336
15.1.3 MKMapView的互動選項和裝飾物 336
15.1.4 創建一個MKMapView地圖 337
15.1.5 MKMapView代理的使用 339
15.1.6 自定義annotationView和calloutView 341
15.1.7 Camera的使用 344
15.2 小結 346
第16章 iOS的圖文混排技術 347
16.1 Core Text的使用 347
16.1.1 文字排版方面的一些基本概念 348
16.1.2 列出設備中的所有字型 350
16.1.3 富文本的創建 351
16.1.4 圖文混排的實現 353
16.2 Text Kit的使用 358
16.2.1 使用Text Kit對文字進行分欄 358
16.2.2 使用Text Kit製作圖文混排效果 360
16.3 小結 362
第17章 iOS的圖像和視頻處理技術 363
17.1 Core Image概述 363
17.1.1 使用Core Image的三個類製作單色調效果 364
17.1.2 使用Core Image給圖片添加馬賽克 366
17.1.3 使用Core Image處理視頻畫面 367
17.1.4 輸出Core Image的所有濾鏡 372
17.1.5 使用CIDetector和CIFeature進行人臉檢測 373
17.2 UIBlurEffect和CGBlendMode 375
17.2.1 使用UIBlurEffect實現毛玻璃效果 375
17.2.2 使用CGBlendMode實現顏色混合效果 376
17.3 小結 378
第18章 iOS常用設備的使用 379
18.1 照片和相機的使用 379
18.1.1 讀取照片中的圖片 380
18.1.2 調用相機拍攝照片 384
18.2 定位設備的使用 385
18.2.1 使用定位設備獲取設備地理位置 386
18.2.2 將地理坐標轉換為實際地名 389
18.3 陀螺儀和加速計設備的使用 391
18.3.1 陀螺儀的原理和套用 391
18.3.2 加速計的原理和套用 392
18.3.3 檢測iOS設備的晃動 392
18.4 小結 394
第19章 使用Storyboard開發用戶界面 395
19.1 Storyboard概述 395
19.1.1 Storyboard的優缺點 396
19.1.2 Storyboard的組織形式 397
19.1.3 創建一個Storyboard 398
19.1.4 更改Storyboard的初始視圖控制器 400
19.2 在Storyboard中使用標準控制項 401
19.2.1 添加三個控制項 401
19.2.2 對控制項進行連線 403
19.3 在Storyboard中使用表格控制項 406
19.3.1 在Storyboard中添加Table View 406
19.3.2 添加Table View Cell 406
19.3.3 設定Table View的數據源 408
19.3.4 修改ViewController.swift檔案 409
19.4 在Storyboard中使用集合控制項 410
19.4.1 添加Collection View 410
19.4.2 設定Collection View Cell 410
19.4.3 設定Collection View的數據源和代理 412
19.4.4 修改ViewController.swift檔案 413
19.5 Storyboard常見的層次結構 414
19.6 Storyboard之間的頁面跳轉和參數傳遞 418
19.6.1 單個Storyboard中頁面之間的參數傳遞 418
19.6.2 多個Storyboard中的頁面跳轉及參數傳遞 421
19.7 使用約束功能適配多解析度 426
19.7.1 打開並運行示例項目 427
19.7.2 給父視圖MainView添加約束 428
19.7.3 給三條分隔線添加約束 430
19.7.4 給兩個小箭頭添加約束 432
19.7.5 給“添加新的會員”按鈕添加約束 434
19.7.6 給圖示添加約束 435
19.8 小結 437
第20章 單元測試和界面測試 438
20.1 單元測試概述 438
20.1.1 Xocde的XCTest框架 439
20.1.2 對自定義類的方法進行單元測試 442
20.1.3 使用XCTest框架進行性能測試 445
20.2 UI Testing界面測試 446
20.2.1 往項目中插入UI Testing 446
20.2.2 製作UI測試的程式 448
20.2.3 錄製UI Testing的步驟 450
20.2.4 播放UI Testing的錄製步驟 450
20.3 小結 451
第21章 iOS套用記憶體泄漏的檢測 452
21.1 Allocations工具的使用 452
21.2 Leaks工具的使用 459
21.3 小結 462
第22章 iOS應用程式的本地化 463
22.1 應用程式的本地化 463
22.1.1 應用程式名稱的本地化 464
22.1.2 應用程式文字內容的本地化 468
22.1.3 Storyboard的本地化 472
22.1.4 圖片素材的本地化 474
22.2 小結 477
第23章 加密與安全 478
23.1 加密與安全 478
23.1.1 對稱加密和非對稱加密 479
23.1.2 3DES加密 479
23.1.3 SHA1加密 485
23.1.4 MD5加密 487
23.1.5 越獄情況的判斷 489
23.2 小結 491
第24章 iOS 11新增開發功能 492
24.1 Assets.xcassets的新特性 492
24.1.1 在Assets.xcassets中添加Color Set 493
24.1.2 在Assets.xcassets中添加矢量圖片 495
24.2 UIPasteConfiguration和Drag and Drop 496
24.2.1 實現Drag to paste text功能 497
24.2.2 實現拖放貼上圖片功能 499
24.3 UISwipeActionsConfiguration的使用 502
24.4 ARKit增強現實框架 505
24.4.1 什麼是AR增強現實 506
24.4.2 基於ARKit的應用程式 506
24.4.3 創建一個ARKit項目 507
24.5 CoreML機器學習框架 511
24.6 小結 515
第25章 在iTunes Connect上創建App 516
25.1 創建一款新App 516
25.1.1 登錄iTunes Connect並創建App 517
25.1.2 創建In-App Purchase內購項目 519
25.1.3 為IAP內購添加沙箱技術測試賬號 521
25.2 小結 522
第26章 版本控制和開源類庫安裝 523
26.1 將項目添加到GitHub 523
26.1.1 Git和GitHub 523
26.1.2 創建一個GitHub賬號 524
26.1.3 將新建項目上傳到GitHub 525
26.2 使用CocoaPods安裝第三方類庫 528
26.2.1 安裝CocoaPods 528
26.2.2 安裝第三方開源類庫 529
26.3 小結 531
第27章 App項目結構的搭建 532
27.1 項目結構的創建 532
27.1.1 創建New Group新組 532
27.1.2 Utils中的工具類 533
27.1.3 Models中的實體類 535
27.2 完成項目的信息配置 536
27.2.1 設定項目的通用屬性 536
27.2.2 設定應用程式的圖示 537
27.2.3 設定應用程式的啟動圖 538
27.3 製作引導頁 539
27.3.1 下載和安裝BWWalkthrough 539
27.3.2 創建引導頁 539
27.4 製作動態標籤控制器 545
27.4.1 下載和安裝RAMAnimatedTabBarController 545
27.4.2 創建Tab Bar Controller 546
27.4.3 製作Tab動畫效果 547
27.5 小結 549
第28章 開發筆試和隨機答題功能套用 550
28.1 開發筆試答題功能 550
28.1.1 創建自定義視圖 551
28.1.2 FoldingCell的下載和安裝 554
28.1.3 在故事板中搭建界面 554
28.1.4 創建答題頁面QuestionCell 556
28.1.5 創建QuizViewController 559
28.2 開發隨機答題功能 562
28.2.1 在故事板中搭建界面 562
28.2.2 創建RandomViewController 563
28.3 小結 565
第29章 開發錯題集和面試題功能套用 566
29.1 開發錯題集功能 566
29.1.1 在故事板中搭建錯題集界面 567
29.1.2 創建FailedItemsViewController 567
29.2 開發面試題功能 570
29.2.1 在故事板中搭建面試題界面 570
29.2.2 創建InterviewItemsViewController 571
29.3 小結 574
第30章 開發App盈利模式和分享傳播套用 575
30.1 App的盈利模式和分享傳播 575
30.1.1 谷歌AdMob廣告的申請和植入 576
30.1.2 在故事板中搭建界面 579
30.1.3 使用Alamofire獲取產品列表 580
30.1.4 實現In App Purchases內購功能 582
30.1.5 使用ShareSDK實現App的社會化分享 585
30.1.6 多種解析度的適配 591
30.2 小結 594
第31章 應用程式的打包和發布 595
31.1 iOS套用商店概述 595
31.1.1 App Store的重大更新 596
31.1.2 在iTunes Connect配置一個App 598
31.1.3 打包App為IPA檔案 600
31.1.4 自動化打包App 602
31.1.5 上傳App至App Store 604
31.1.6 配置構建版本並提交審核 605
31.2 小結 606

相關詞條

熱門詞條

聯絡我們