iOS移動開發(fā)從入門到精通-第2版 版權信息
- ISBN:9787302511571
- 條形碼:9787302511571 ; 978-7-302-51157-1
- 裝幀:一般純質紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
iOS移動開發(fā)從入門到精通-第2版 本書特色
全面介紹iOS 11、Xcode 9、Swift 4的新特性,展現(xiàn)開發(fā)一款優(yōu)秀iOS應用程序的核心技術與開發(fā)技巧
本書介紹使用iOS 11+Xcode 9+Swift 4開發(fā)移動應用所需要的主要內容,全書共分三篇,**篇為基礎篇,主要介紹iOS開發(fā)基礎知識,包括iOS系統(tǒng)的歷史、Swift 4.0語言、UI界面構建技術、視圖控制器、常用的控件、表和集合視圖、視圖和層、聲音、視頻、動畫等;第二篇為進階篇,主要介紹Alamofire網(wǎng)絡服務、數(shù)據(jù)的持久化、多線程、CoreText、CoreImage、Storyboard、CoreML機器學習、ARKit增強現(xiàn)實、自動化測試、性能分析、本地化、加密與安全等實用技術;第三篇為實例篇,通過對實體層、表現(xiàn)層和邏輯層三層相關技術的講解,向讀者詳細展示了MVC設計模式在項目開發(fā)中的應用方式,并*終創(chuàng)建一個成熟的商業(yè)項目。
iOS移動開發(fā)從入門到精通-第2版 內容簡介
本書介紹使用iOS 11、Xcode 9和Swift 4.0開發(fā)移動應用所需要的主要內容,全書共分三篇,**篇為基礎篇(第1~10章),主要介紹了iOS開發(fā)基礎知識,包括iOS系統(tǒng)的歷史、Swift 4.0語言、UI界面構建技術、視圖控制器、常用的控件、表和集合視圖、視圖和層、聲音、視頻、動畫等;第二篇為進階篇(第11~23章),主要介紹了Alamofire網(wǎng)絡服務、數(shù)據(jù)的持久化、多線程、CoreText、CoreImage、Storyboard、CoreML機器學習、ARKit增強現(xiàn)實、自動化測試、性能分析、本地化、加密與安全等實用技術;第三篇為實例篇(第24~31章),通過對實體層、表現(xiàn)層和邏輯層三層相關技術的講解,向讀者詳細展示了MVC設計模式在項目開發(fā)中的應用方式,并*終創(chuàng)建一個成熟的商業(yè)項目。本書還提供了豐富的源代碼和教學視頻,可以大幅提高讀者的學習效率。 本書采用豐富的實例和直觀的代碼展示,向讀者形象地講解了在創(chuàng)建一款優(yōu)秀的iOS應用程序時所需要的大部分技巧,可以幫助讀者輕松掌握并高效開發(fā)iOS程序。
iOS移動開發(fā)從入門到精通-第2版 目錄
目 錄
第1章 開始iOS開發(fā)之旅 1
1.1 iOS移動開發(fā)現(xiàn)狀 1
1.1.1 iOS的歷史 2
1.1.2 iOS 11的十一大變化 4
1.1.3 iOS應用開發(fā)的八個特點 6
1.2 iOS 11和Xcode 9新增的開發(fā)技能 6
1.2.1 ARKit增強現(xiàn)實 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 安全區(qū)布局指南 9
1.2.7 Asset UIColor 9
1.2.8 Wireless Development 9
1.2.9 GitHub 10
1.3 成為一名iOS開發(fā)者 10
1.3.1 硬件上的需求 10
1.3.2 加入Apple開發(fā)者計劃 11
1.3.3 下載安裝Xcode和模擬器 12
1.3.4 創(chuàng)建開發(fā)和發(fā)布配置文件Provisioning Profile 13
1.4 創(chuàng)建一個基本的iOS項目 16
1.4.1 項目的創(chuàng)建 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應用程序的狀態(tài) 23
1.5.2 演示iOS應用程序的各種狀態(tài) 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 創(chuàng)建一個組和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 數(shù)據(jù)類型與運算 49
3.2.1 布爾類型 49
3.2.2 整數(shù)類型及實例屬性 50
3.2.3 浮點類型及實例屬性 50
3.2.4 字符和字符串 51
3.2.5 元組類型 54
3.2.6 一元、二元和三元運算符 55
3.2.7 比較運算符 56
3.3 循環(huán)語句和條件判斷語句 56
3.3.1 for循環(huán) 56
3.3.2 while循環(huán)語句 58
3.3.3 repeat-while循環(huán)語句 58
3.3.4 if條件判斷語句 59
3.3.5 switch條件判斷語句 60
3.3.6 continue語句和fallthrough語句 60
3.4 數(shù)組和字典 61
3.4.1 數(shù)組 61
3.4.2 多維數(shù)組 63
3.4.3 數(shù)組的遍歷 64
3.4.4 字典 65
3.5 小結 67
第4章 Swift 4.0的進階內容 68
4.1 函數(shù) 68
4.1.1 函數(shù)的定義和調用 68
4.1.2 為參數(shù)設置默認值 69
4.1.3 設置可變的函數(shù)參數(shù)數(shù)量 70
4.1.4 函數(shù)作為參數(shù)和返回類型 71
4.1.5 元組作為函數(shù)的返回類型實現(xiàn)多個返回值 72
4.1.6 使用函數(shù)類型 73
4.1.7 函數(shù)的輸入輸出參數(shù) 74
4.1.8 函數(shù)的嵌套 74
4.1.9 函數(shù)的遞歸用法 75
4.1.10 常用的內置函數(shù) 76
4.2 枚舉和結構體 78
4.2.1 枚舉 78
4.2.2 結構體 81
4.3 類 84
4.3.1 類的創(chuàng)建 84
4.3.2 類屬性的set和get方法 86
4.3.3 類屬性的willSet和didSet方法 87
4.3.4 類的靜態(tài)方法 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 擴展、協(xié)議和其他 97
4.4.1 擴展 97
4.4.2 協(xié)議 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 創(chuàng)建一個視圖控制器 131
6.1.3 以模態(tài)方式彈出視圖控制器 134
6.1.4 視圖控制器的生命周期 138
6.1.5 視圖控制器和UIScrollView 140
6.2 UITabBarController 144
6.2.1 創(chuàng)建一個UITabBarController 144
6.2.2 改變UITabBarController索引 146
6.2.3 在Tab圖標上顯示角標 147
6.3 UINavigationController 148
6.3.1 創(chuàng)建一個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按鈕的狀態(tài) 166
7.2.3 UIButton按鈕的事件響應 167
7.3 UILabel標簽控件 169
7.3.1 創(chuàng)建一個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 創(chuàng)建一個警告窗口 179
7.6.2 創(chuàng)建一個動作表單 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 創(chuàng)建一個簡單的表格 191
8.1.3 自定義單元格
UITableViewCell 195
8.1.4 自定義單元格的高度 197
8.1.5 給表格添加章節(jié)和索引 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的實現(xiàn)|原理 222
8.2.2 創(chuàng)建一個UICollectionView對象并添加點擊事件 223
8.3 小結 227
第9章 觸屏事件和觸摸手勢 228
9.1 觸摸事件的監(jiān)測 228
9.1.1 對觸摸事件階段的監(jiān)測 229
9.1.2 監(jiān)測是否觸摸到某個視圖 231
9.1.3 實現(xiàn)圖像視圖的拖動 232
9.2 觸摸手勢的使用 234
9.2.1 實現(xiàn)單點觸摸手勢 235
9.2.2 實現(xiàn)雙擊觸摸手勢 237
9.2.3 實現(xiàn)長按手勢的監(jiān)測 237
9.2.4 捏合手勢的監(jiān)測 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 實現(xiàn)影片的畫中畫功能 263
10.4 小結 266
第11章 網(wǎng)絡請求和Alamofire 267
11.1 網(wǎng)絡請求 267
11.1.1 GET和POST請求 267
11.1.2 同步請求和異步請求 268
11.1.3 使用URLSession進行網(wǎng)絡請求 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數(shù)據(jù)映射為對象 281
11.3 小結 283
第12章 UIWebView與HTML 5技術 284
12.1 UIWebView的使用 284
12.1.1 使用UIWebView加載網(wǎng)頁 285
12.1.2 使用UIWebView加載HTML字符串和GIF動畫 287
12.1.3 使用UIWebView加載本地網(wǎng)頁 289
12.1.4 使用JavaScript回調原生程序 293
12.2 創(chuàng)建一個簡單的筆記本 296
12.2.1 創(chuàng)建一個可編輯的div 296
12.2.2 設置網(wǎng)頁的CSS樣式 296
12.2.3 添加插入筆記圖片的方法 297
12.2.4 添加刪除圖片和獲得筆記的方法 299
12.2.5 實現(xiàn)筆記本的用戶界面 299
12.3 小結 302
第13章 數(shù)據(jù)的持久化 303
13.1 解析plist文件 303
13.1.1 創(chuàng)建和解析plist文件 304
13.1.2 將信息寫入plist文件 306
13.2 使用CoreData進行數(shù)據(jù)的持久化 308
13.2.1 創(chuàng)建Core Data實體并插入數(shù)據(jù) 309
13.2.2 檢索Core Data中的數(shù)據(jù) 312
13.2.3 修改和刪除Core Data數(shù)據(jù) 313
13.3 小結 316
第14章 多線程技術 317
14.1 多線程的概念 317
14.1.1 任務、進程和線程 318
14.1.2 線程的Stack Space 318
14.1.3 線程的優(yōu)先級 318
14.1.4 線程的生命周期 319
14.1.5 線程和RunLoop 319
14.2 使用Thread 320
14.2.1 創(chuàng)建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的顯示區(qū)域 335
15.1.2 MKMapView的跟蹤和定位 336
15.1.3 MKMapView的交互選項和裝飾物 336
15.1.4 創(chuàng)建一個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 富文本的創(chuàng)建 351
16.1.4 圖文混排的實現(xiàn) 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實現(xiàn)毛玻璃效果 375
17.2.2 使用CGBlendMode實現(xiàn)顏色混合效果 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開發(fā)用戶界面 395
19.1 Storyboard概述 395
19.1.1 Storyboard的優(yōu)缺點 396
19.1.2 Storyboard的組織形式 397
19.1.3 創(chuàng)建一個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的數(shù)據(jù)源 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的數(shù)據(jù)源和代理 412
19.4.4 修改ViewController.swift文件 413
19.5 Storyboard常見的層次結構 414
19.6 Storyboard之間的頁面跳轉和參數(shù)傳遞 418
19.6.1 單個Storyboard中頁面之間的參數(shù)傳遞 418
19.6.2 多個Storyboard中的頁面跳轉及參數(shù)傳遞 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新增開發(fā)功能 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 實現(xiàn)Drag to paste text功能 497
24.2.2 實現(xiàn)拖放粘貼圖片功能 499
24.3 UISwipeActionsConfiguration的使用 502
24.4 ARKit增強現(xiàn)實框架 505
24.4.1 什么是AR增強現(xiàn)實 506
24.4.2 基于ARKit的應用程序 506
24.4.3 創(chuàng)建一個ARKit項目 507
24.5 CoreML機器學習框架 511
24.6 小結 515
第25章 在iTunes Connect上創(chuàng)建App 516
25.1 創(chuàng)建一款新App 516
25.1.1 登錄iTunes Connect并創(chuàng)建App 517
25.1.2 創(chuàng)建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 創(chuàng)建一個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 項目目錄結構的創(chuàng)建 532
27.1.1 創(chuàng)建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 創(chuàng)建引導頁 539
27.4 制作動態(tài)標簽控制器 545
27.4.1 下載和安裝RAMAnimatedTabBarController 545
27.4.2 創(chuàng)建Tab Bar Controller 546
27.4.3 制作Tab動畫效果 547
27.5 小結 549
第28章 開發(fā)筆試和隨機答題功能應用 550
28.1 開發(fā)筆試答題功能 550
28.1.1 創(chuàng)建自定義視圖 551
28.1.2 FoldingCell的下載和安裝 554
28.1.3 在故事板中搭建界面 554
28.1.4 創(chuàng)建答題頁面QuestionCell 556
28.1.5 創(chuàng)建QuizViewController 559
28.2 開發(fā)隨機答題功能 562
28.2.1 在故事板中搭建界面 562
28.2.2 創(chuàng)建RandomViewController 563
28.3 小結 565
第29章 開發(fā)錯題集和面試題功能應用 566
29.1 開發(fā)錯題集功能 566
29.1.1 在故事板中搭建錯題集界面 567
29.1.2 創(chuàng)建FailedItemsViewController 567
29.2 開發(fā)面試題功能 570
29.2.1 在故事板中搭建面試題界面 570
29.2.2 創(chuàng)建InterviewItemsViewController 571
29.3 小結 574
第30章 開發(fā)App盈利模式和分享傳播應用 575
30.1 App的盈利模式和分享傳播 575
30.1.1 谷歌AdMob廣告的申請和植入 576
30.1.2 在故事板中搭建界面 579
30.1.3 使用Alamofire獲取產(chǎn)品列表 580
30.1.4 實現(xiàn)In App Purchases內購功能 582
30.1.5 使用ShareSDK實現(xiàn)App的社會化分享 585
30.1.6 多種分辨率的適配 591
30.2 小結 594
第31章 應用程序的打包和發(fā)布 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
展開全部
iOS移動開發(fā)從入門到精通-第2版 作者簡介
李發(fā)展,教育網(wǎng)站coolketang.com負責人。擅長移動開發(fā)、Web開發(fā)和游戲開發(fā),有近十年的軟件開發(fā)經(jīng)驗和四年以上的教育工作經(jīng)驗。曾主導過多個手機軟件、游戲項目的開發(fā),具有豐富的教學和實踐經(jīng)驗,授課形式不拘一格。蘋果商店《互動教程》系列App的開發(fā)者和擁有者。曾就職于全球知名企業(yè),主要負責iOS和J2EE開發(fā),服務過的客戶包括:Bentley、Lexus、Hotel Club、Global Blue、REA group、Qatar Airways、Durex等行業(yè)標桿品牌,熟悉iOS、Swift、Cocos2dx、服務器開發(fā)等相關技術。