iOS開發指南:從Hello World到App Store上架(第5版)

iOS開發指南:從Hello World到App Store上架(第5版)

《iOS開發指南:從Hello World到App Store上架(第5版)》是2020年3月人民郵電出版社出版的圖書,作者是關東升。

基本介紹

  • 書名:iOS開發指南:從Hello World到App Store上架(第5版)
  • 作者:關東升
  • ISBN:9787115450630
  • 頁數:722頁
  • 定價:119元
  • 出版社:人民郵電出版社
  • 出版時間:2020年3月
  • 裝幀:平裝
  • 開本:大16開
內容簡介,圖書目錄,

內容簡介

本書是iOS開發權V教程,以Swift和Objective-C兩種語言進行講解。書中分5部分介紹如何從零起步編寫並上線iOS 套用:第 一部分介紹iOS開發的基礎知識,包括界面構建技術、基本控制項、協定、表視圖、界面布局、螢幕適配、導航、iPad套用開發、iOS設備手勢、Quartz 2D、iOS動畫等;第 二部分介紹本地數據持久化、數據交換格式和Web Service,第三部分為進階篇,介紹了定位服務、蘋果地圖、Contacts框架、套用擴展、用戶通知等內容;第四部分介紹測試、調試和最佳化等相關知識;第五部分為實戰篇,涵蓋代碼版本管理、項目依賴管理、App Store發布流程,以及一個真實iOS套用的設計、編程、測試與發布過程。
與上一版相比,本書不僅基於iOS 10進行了全面更新,還增加並修訂了設備手勢、Quartz 2D、動畫、用戶擴展、用戶通知、Core Data等內容。
本書適合iOS 開發人員閱讀。

圖書目錄

第 一部分 基 礎 篇
第 1章 開篇綜述 2
1.1 iOS概述 2
1.1.1 iOS介紹 2
1.1.2 iOS 10新特性 2
1.2 開發環境及開發工具 3
1.3 本書約定 4
1.3.1 案例代碼約定 4
1.3.2 圖示的約定 5
1.3.3 方法命名約定 6
1.3.4 構造函式命名約定 7
1.3.5 錯誤處理約定 7
第 2章 第 一個iOS應用程式 8
2.1 創建HelloWorld工程 8
2.1.1 通過Xcode創建工程 9
2.1.2 添加標籤 11
2.1.3 運行套用 13
2.1.4 Xcode中的iOS工程模板 13
2.1.5 套用剖析 14
2.2 套用生命周期 16
2.2.1 非運行狀態——套用啟動場景 18
2.2.2 點擊Home鍵——套用退出場景 18
2.2.3 掛起重新運行場景 21
2.2.4 記憶體清除:套用終止場景 21
2.3 設定產品屬性 22
2.3.1 Xcode中的工程和目標 22
2.3.2 設定常用的產品屬性 24
2.4 iOS API簡介 26
2.4.1 API概述 26
2.4.2 如何使用API幫助文檔 26
2.5 小結 28
第3章 Cocoa Touch框架與構建套用界面 29
3.1 視圖控制器 29
3.1.1 視圖控制器種類 29
3.1.2 視圖的生命周期 29
3.2 視圖 30
3.2.1 UIView繼承層次結構 30
3.2.2 視圖分類 32
3.2.3 套用界面構建層次 33
3.3 使用故事板構建界面 34
3.3.1 什麼是故事板 34
3.3.2 場景和過渡 37
3.4 使用XIB檔案構建界面 38
3.4.1 重構HelloWorld 38
3.4.2 XIB與故事板比較 42
3.5 使用純代碼構建界面 42
3.5.1 重構HelloWorld 42
3.5.2 視圖的幾個重要屬性 44
3.6 三種構建界面技術討論 46
3.6.1 所見即所得 46
3.6.2 原型驅動開發 46
3.6.3 團隊協同開發 47
3.7 小結 47
第4章 UIView與視圖 48
4.1 標籤與按鈕 48
4.1.1 Interface Builder實現 48
4.1.2 代碼實現 51
4.2 事件處理 53
4.2.1 Interface Builder實現 53
4.2.2 代碼實現 55
4.3 訪問視圖 57
4.3.1 Interface Builder實現 57
4.3.2 代碼實現 58
4.4 TextField和TextView 60
4.4.1 Interface Builder實現 60
4.4.2 代碼實現 62
4.4.3 鍵盤的打開和關閉 64
4.4.4 關閉和打開鍵盤的通知 64
4.4.5 鍵盤的種類 65
4.5 開關控制項、分段控制項和滑塊控制項 67
4.5.1 開關控制項 67
4.5.2 分段控制項 69
4.5.3 滑塊控制項 70
4.6 Web視圖:WKWebView類 72
4.7 警告框和操作表 77
4.7.1 使用UIAlertController實現警告框 77
4.7.2 使用UIAlertController實現操作表 79
4.8 等待相關的控制項與進度條 81
4.8.1 活動指示器ActivityIndicatorView 81
4.8.2 進度條ProgressView 83
4.9 工具列和導航欄 86
4.9.1 工具列 86
4.9.2 導航欄 90
4.10 小結 95
第5章 委託協定、數據源協定與高 級視圖 96
5.1 視圖中的委託協定和數據源協定 96
5.2 選擇器 96
5.2.1 日期選擇器 96
5.2.2 普通選擇器 101
5.2.3 數據源協定與委託協定 106
5.3 集合視圖 108
5.3.1 集合視圖的組成 108
5.3.2 集合視圖數據源協定與委託協定 109
5.4 案例:奧運會比賽項目 109
5.4.1 創建工程 110
5.4.2 自定義集合視圖單元格 110
5.4.3 添加集合視圖 112
5.4.4 實現數據源協定 114
5.4.5 實現委託協定 115
5.5 小結 115
第6章 表視圖 116
6.1 概述 116
6.1.1 表視圖的組成 116
6.1.2 表視圖的相關類 117
6.1.3 表視圖分類 117
6.1.4 單元格的組成和樣式 119
6.1.5 數據源協定與委託協定 121
6.2 簡單表視圖 122
6.2.1 實現協定方法 122
6.2.2 UIViewController根視圖控制器 123
6.2.3 UITableViewController根視圖控制器 129
6.3 自定義表視圖單元格 133
6.3.1 Interface Builder實現 133
6.3.2 代碼實現 137
6.4 添加搜尋欄 138
6.5 分節表視圖 143
6.5.1 添加索引 143
6.5.2 分組 146
6.6 插入和刪除單元格 147
6.6.1 Interface Builder實現 149
6.6.2 代碼實現 154
6.7 移動單元格 155
6.8 表視圖UI設計模式 157
6.8.1 分頁模式 157
6.8.2 下拉刷新模式 158
6.8.3 下拉刷新控制項 159
6.9 小結 160
第7章 界面布局 161
7.1 界面布局概述 161
7.1.1 表單布局模式 161
7.1.2 列表布局模式 161
7.1.3 格線布局模式 162
7.2 iOS中各種“欄” 162
7.3 傳統界面布局問題 163
7.4 Auto Layout布局技術 164
7.4.1 在Interface Builder中管理Auto Layout約束 164
7.4.2 案例:Auto Layout布局 164
7.5 靜態表布局 169
7.5.1 什麼是靜態表 169
7.5.2 案例:iMessage套用登錄界面 170
7.6 使用堆視圖StackView 174
7.6.1 堆視圖與布局 174
7.6.2 案例:堆視圖布局 175
7.7 小結 180
第8章 螢幕適配 181
8.1 iOS 螢幕的多樣性 181
8.1.1 iOS螢幕介紹 181
8.1.2 iOS的3種解析度 182
8.1.3 獲得iOS設備的螢幕信息 183
8.2 Size Class與iOS多螢幕適配 184
8.2.1 在Xcode 6和Xcode 7中使用Size Class技術 184
8.2.2 Size Class的九宮格 185
8.2.3 Size Class的四個象限 186
8.2.4 在Xcode 8中使用Size Class 187
8.2.5 案例:使用Size Class 190
8.3 資源與圖片資源適配 192
8.4 小結 195
第9章 視圖控制器與導航模式 196
9.1 概述 196
9.1.1 視圖控制器的種類 196
9.1.2 導航模式 196
9.2 模態視圖 197
9.2.1 Interface Builder實現 199
9.2.2 代碼實現 205
9.3 平鋪導航 206
9.3.1 套用場景 206
9.3.2 基於分屏導航的實現 208
9.3.3 基於電子書導航的實現 213
9.4 標籤導航 219
9.4.1 套用場景 219
9.4.2 Interface Builder實現 220
9.4.3 代碼實現 223
9.5 樹形結構導航 225
9.5.1 套用場景 225
9.5.2 Interface Builder實現 226
9.5.3 代碼實現 233
9.6 組合使用導航模式 235
9.6.1 套用場景 235
9.6.2 Interface Builder實現 236
9.6.3 代碼實現 243
9.7 小結 246
第 10章 iPad套用開發 247
10.1 iPad與iPhone套用開發的差異 247
10.1.1 套用場景不同 247
10.1.2 導航模式不同 247
10.1.3 API不同 247
10.2 iPad樹形結構導航 248
10.2.1 “郵件”套用中的樹形結構導航 248
10.2.2 Master-Detail應用程式模板 249
10.2.3 使用Interface Builder實現SplitViewSample案例 254
10.2.4 使用代碼實現SplitViewSample案例 258
10.3 iPad模態視圖 261
10.3.1 “郵件”套用中的模態導航 261
10.3.2 iPad模態導航相關API 262
10.3.3 使用Interface Builder實現ModalViewSample案例 264
10.3.4 使用代碼實現ModalViewSample案例 268
10.4 Popover視圖 271
10.4.1 Popover相關API 272
10.4.2 PopoverViewSample案例 272
10.5 分屏多任務 276
10.5.1 Slide Over多任務 276
10.5.2 分屏視圖多任務 278
10.5.3 畫中畫多任務 280
10.6 iPad分屏多任務適配開發 280
10.6.1 分屏多任務前提條件 280
10.6.2 分屏多任務適配 281
10.7 小結 282
第 11章 手勢識別 283
11.1 手勢種類 283
11.2 手勢識別器 284
11.2.1 視圖對象與手勢識別 284
11.2.2 手勢識別狀態 285
11.2.3 實例:識別Tap手勢 285
11.2.4 實例:識別Long Press手勢 290
11.2.5 實例:識別Pan手勢 291
11.2.6 實例:Swipe手勢 293
11.2.7 實例:Rotation手勢 295
11.2.8 實例:Pinch手勢 297
11.2.9 實例:Screen Edge Pan手勢 299
11.3 小結 301
第 12章 Quartz 2D繪圖技術 302
12.1 繪製技術基礎 302
12.1.1 視圖繪製周期 302
12.1.2 實例:填充螢幕 302
12.1.3 填充與描邊 305
12.1.4 繪製圖像和文本 306
12.2 Quartz圖形上下文 308
12.3 Quartz路徑 309
12.3.1 Quartz路徑概述 309
12.3.2 實例:使用貝塞爾曲線 311
12.4 Quartz坐標變換 312
12.4.1 坐標系 312
12.4.2 2D圖形的基本變換 315
12.4.3 CTM變換 317
12.4.4 仿射變換 322
12.5 小結 322
第 13章 動畫技術 323
13.1 視圖動畫 323
13.1.1 動畫塊 323
13.1.2 動畫結束的處理 325
13.1.3 過渡動畫 326
13.2 Core Animation框架 329
13.2.1 圖層 329
13.2.2 隱式動畫 331
13.2.3 顯式動畫 333
13.2.4 關鍵幀動畫 335
13.2.5 使用路徑 336
13.3 小結 338
第 二部分 數據與網路通信篇
第 14章 數據持久化 340
14.1 概述 340
14.1.1 沙箱 340
14.1.2 持久化方式 341
14.2 實例:MyNotes套用 341
14.3 屬性列表 343
14.4 使用SQLite資料庫 349
14.4.1 SQLite數據類型 350
14.4.2 添加SQLite3庫 350
14.4.3 配置Swift環境 351
14.4.4 創建資料庫 351
14.4.5 查詢數據 353
14.4.6 修改數據 355
14.5 iOS 10中的Core Data技術 357
14.5.1 對象關係映射技術 357
14.5.2 添加Core Data支持 358
14.5.3 Core Data棧 359
14.6 案例:採用Core Data重構MyNotes套用 360
14.6.1 建模和生成實體 360
14.6.2 Core Data棧DAO 366
14.6.3 查詢數據 367
14.6.4 修改數據 369
14.7 小結 370
第 15章 數據交換格式 371
15.1 XML數據交換格式 372
15.1.1 XML文檔結構 372
15.1.2 解析XML文檔 373
15.2 案例:MyNotes套用讀取XML數據 374
15.2.1 使用NSXML解析 376
15.2.2 使用TBXML解析 379
15.3 JSON數據交換格式 385
15.3.1 JSON文檔結構 385
15.3.2 JSON數據編碼/解碼 386
15.4 案例:MyNotes套用JSON解碼 387
15.5 小結 388
第 16章 REST Web Service 389
16.1 概述 389
16.1.1 REST Web Service概念 389
16.1.2 HTTP協定 389
16.1.3 HTTPS協定 390
16.1.4 蘋果ATS限制 390
16.2 使用NSURLSession 391
16.2.1 NSURLSession API 392
16.2.2 簡單會話實現GET請求 393
16.2.3 默認會話實現GET請求 396
16.2.4 實現POST請求 397
16.2.5 下載數據 398
16.3 實例:使用NSURLSession重構MyNotes
案例 400
16.3.1 插入方法 401
16.3.2 修改方法 402
16.3.3 刪除方法 402
16.4 使用AFNetworking框架 405
16.4.1 比較ASIHTTPRequest、AFNetworking和MKNetworkKit 405
16.4.2 安裝和配置AFNetworking框架 405
16.4.3 實現GET請求 407
16.4.4 實現POST請求 408
16.4.5 下載數據 408
16.4.6 上傳數據 410
16.5 使用為Swift設計的網路框架:Alamofire 412
16.5.1 安裝和配置Alamofire框架 412
16.5.2 實現GET請求 413
16.5.3 實現POST請求 414
16.5.4 下載數據 414
16.5.5 上傳數據 415
16.6 反饋網路信息改善用戶體驗 416
16.6.1 使用下拉刷新控制項改善用戶體驗 416
16.6.2 使用活動指示器控制項 419
16.6.3 使用網路活動指示器 420
16.7 小結 421
第三部分 進 階 篇
第 17章 定位服務 424
17.1 定位服務概述 424
17.1.1 定位服務編程 425
17.1.2 測試定位服務 428
17.2 管理定位服務 432
17.2.1 套用啟動與停止下的定位服務管理 432
17.2.2 視圖切換下的定位服務管理 432
17.2.3 套用前後台切換下的定位服務管理 433
17.2.4 設定自動暫停位置服務 436
17.2.5 後台位置服務管理 436
17.3 地理信息編碼與反編碼 437
17.3.1 地理信息反編碼 437
17.3.2 實例:地理信息反編碼 437
17.3.3 地理信息編碼查詢 438
17.3.4 實例:地理信息編碼查詢 439
17.4 小結 440
第 18章 蘋果地圖套用 441
18.1 使用iOS蘋果地圖 441
18.1.1 顯示地圖 441
18.1.2 顯示3D地圖 445
18.2 添加標註 446
18.2.1 實現查詢 447
18.2.2 在地圖上添加標註 449
18.3 跟蹤用戶位置變化 450
18.4 使用程式外地圖 451
18.5 小結 454
第 19章 訪問通訊錄 455
19.1 通訊錄的安全訪問設定 455
19.2 使用Contacts框架讀取聯繫人信息 456
19.2.1 查詢聯繫人 457
19.2.2 讀取單值屬性 460
19.2.3 讀取多值屬性 461
19.2.4 讀取圖片屬性 464
19.3 使用Contacts框架寫入聯繫人信息 464
19.3.1 創建聯繫人 465
19.3.2 修改聯繫人 467
19.3.3 刪除聯繫人 468
19.4 使用系統提供的界面 469
19.4.1 選擇聯繫人 470
19.4.2 顯示和修改聯繫人 472
19.5 小結 475
第 20章 iOS 10套用擴展 476
20.1 套用擴展概述 476
20.1.1 iOS 10套用擴展種類 476
20.1.2 套用擴展工作原理 477
20.1.3 套用擴展的生命周期 478
20.2 Today套用擴展 478
20.2.1 使用Today套用擴展 479
20.2.2 實例:奧運會倒 計時牌 480
20.3 開發表情包 483
20.3.1 iMessage套用 483
20.3.2 表情包 484
20.3.3 實例:開發表情包 484
20.4 Message框架 488
20.4.1 Message框架的主要API 488
20.4.2 訊息布局 488
20.4.3 訊息擴展界面的收縮和展開 489
20.4.4 訊息套用的生命周期 490
20.4.5 訊息會話 490
20.4.6 實例:高斯模糊濾鏡 491
20.5 小結 494
第 21章 重裝上陣的iOS 10用戶通知 495
21.1 用戶通知概述 495
21.1.1 通知種類 495
21.1.2 通知界面 495
21.1.3 設定通知 497
21.2 開發本地通知 498
21.2.1 開發本地通知案例 498
21.2.2 請求授權 500
21.2.3 通知的創建與傳送 501
21.2.4 通知接收後的處理 503
21.3 開發推送通知 503
21.3.1 推送通知機理 504
21.3.2 生成SSL證書 504
21.3.3 iOS客戶端編程 513
21.3.4 在iOS設備上運行客戶端 515
21.3.5 內容提供者推送通知 518
21.4 小結 519
第四部分 測試、調試和最佳化篇
第 22章 找出程式中的bug——調試 522
22.1 Xcode調試工具 522
22.1.1 定位編譯錯誤 522
22.1.2 查看和顯示日誌 523
22.1.3 設定和查看斷點 524
22.1.4 調試工具 530
22.1.5 輸出視窗 532
22.1.6 變數查看視窗 532
22.1.7 查看執行緒 533
22.2 LLDB調試工具 535
22.2.1 斷點命令 535
22.2.2 觀察點命令 537
22.2.3 查看變數和計算表達式命令 538
22.3 日誌與斷言輸出 541
22.3.1 使用NSLog函式 541
22.3.2 使用斷言 542
22.4 異常棧報告分析 543
22.4.1 跟蹤異常棧 543
22.4.2 分析棧報告 545
22.5 在iOS設備上調試 546
22.5.1 Xcode設定 546
22.5.2 設備設定 546
22.6 Xcode設備管理工具 548
22.6.1 查看設備上的應用程式 548
22.6.2 設備日誌 550
22.7 小結 551
第 23章 iOS測試驅動與單元測試 552
23.1 測試驅動的軟體開發概述 552
23.1.1 測試驅動的軟體開發流程 552
23.1.2 測試驅動的軟體開發案例 553
23.1.3 iOS單元測試框架 555
23.2 使用XCTest測試框架 555
23.2.1 添加XCTest到工程 555
23.2.2 編寫XCTest測試方法 558
23.2.3 運行測試用例目標 561
23.2.4 分析測試報告 562
23.3 異步單元測試 564
23.4 性能測試 567
23.4.1 測試用例代碼 568
23.4.2 分析測試結果 568
23.5 小結 571
第 24章 iOS套用UI測試 572
24.1 UI測試概述 572
24.2 添加UI測試到工程 572
24.2.1 創建工程時添加UI測試框架 572
24.2.2 在現有工程中添加UI測試用例目標 573
24.3 錄製腳本 575
24.3.1 錄製之前的準備 575
24.3.2 錄製過程 575
24.3.3 修改錄製腳本 577
24.4 訪問UI元素 577
24.4.1 UI元素的層次結構樹 577
24.4.2 UI測試中相關API 579
24.5 表示邏輯組件測試最佳實踐 579
24.5.1 備忘錄查詢操作 580
24.5.2 增加備忘錄操作 580
24.5.3 刪除備忘錄操作 581
24.5.4 顯示備忘錄詳細信息操作 582
24.6 小結 582
第 25章 讓你的程式“飛”起來——性能最佳化 583
25.1 記憶體最佳化 583
25.1.1 記憶體管理 583
25.1.2 使用Analyze工具檢查記憶體泄漏 583
25.1.3 使用Instruments工具檢查記憶體泄漏 587
25.1.4 使用Instruments工具檢查殭屍對象 592
25.1.5 autorelease的使用問題 594
25.1.6 回響記憶體警告 595
25.2 最佳化資源檔案 596
25.2.1 圖片檔案最佳化 597
25.2.2 音頻檔案最佳化 598
25.3 延遲載入 599
25.3.1 資源檔案的延遲載入 599
25.3.2 故事板檔案的延遲載入 603
25.3.3 XIB檔案的延遲載入 605
25.4 數據持久化的最佳化 607
25.4.1 使用檔案 607
25.4.2 使用SQLite資料庫 611
25.4.3 使用Core Data 612
25.5 可重用對象的使用 613
25.5.1 表視圖中的可重用對象 614
25.5.2 集合視圖中的可重用對象 615
25.5.3 地圖視圖中的可重用對象 617
25.6 並發處理 618
25.6.1 一些概念 618
25.6.2 主執行緒阻塞問題 618
25.6.3 選擇NSThread、NSOperation還是GCD 619
25.6.4 GCD技術 619
25.7 小結 620
第五部分 實 戰 篇
第 26章 管理好你的程式代碼——代碼版本控制 622
26.1 概述 622
26.1.1 版本控制歷史 622
26.1.2 基本概念 623
26.2 Git代碼版本控制 623
26.2.1 伺服器搭建 623
26.2.2 Gitolite伺服器管理 625
26.2.3 Git常用命令 627
26.2.4 Git分支 628
26.2.5 Git協同開發 632
26.2.6 Xcode中Git的配置與使用 634
26.3 GitHub代碼託管服務 642
26.3.1 創建和配置GitHub賬號 642
26.3.2 創建代碼庫 645
26.3.3 刪除代碼庫 646
26.3.4 派生代碼庫 647
26.3.5 管理組織 650
26.4 小結 653
第 27章 項目依賴管理 654
27.1 使用CocoaPods工具管理依賴 654
27.1.1 安裝CocoaPods 654
27.1.2 搜尋庫 655
27.1.3 項目與第三方庫搭配形式 656
27.1.4 實例:靜態程式庫形式管理依賴 657
27.1.5 實例:框架形式管理依賴 659
27.2 使用Carthage工具管理依賴 660
27.2.1 安裝Carthage 660
27.2.2 項目與第三方庫搭配形式 661
27.2.3 Cartfile檔案 661
27.2.4 實例:重構MyNotes依賴關係 662
27.3 小結 664
第 28章 把套用放到App Store上 665
28.1 收官 665
28.1.1 在Xcode 中添加圖示 665
28.1.2 在Xcode中添加啟動界面 668
28.1.3 調整Identity和Deployment Info屬性 671
28.2 為發布進行編譯 672
28.2.1 創建開發 者證書 672
28.2.2 創建App ID 675
28.2.3 創建描述檔案 676
28.2.4 發布編譯 679
28.3 發布上架 680
28.3.1 創建套用 681
28.3.2 套用定價 683
28.3.3 基本信息輸入 684
28.3.4 上傳套用 687
28.3.5 提交審核 689
28.4 常見審核不通過的原因 691
28.4.1 功能問題 691
28.4.2 用戶界面問題 691
28.4.3 商業問題 691
28.4.4 不當內容 691
28.4.5 其他問題 692
28.5 小結 692
第 29章 iOS開發項目實戰——2020東京奧運會套用開發及 App Store發布 693
29.1 套用分析與設計 693
29.1.1 套用概述 693
29.1.2 需求分析 693
29.1.3 原型設計 694
29.1.4 資料庫設計 694
29.2 任務1:創建套用工程 695
29.2.1 疊代1.1:創建工程 696
29.2.2 疊代1.2:發布到GitHub 696
29.3 任務2:資料庫與數據持久化邏輯組件
開發 696
29.3.1 疊代2.1:編寫資料庫DDL腳本 696
29.3.2 疊代2.2:插入初始數據到資料庫 697
29.3.3 疊代2.3:資料庫版本控制 697
29.3.4 疊代2.4:配置數據持久化邏輯組件 698
29.3.5 疊代2.5:編寫實體類 698
29.3.6 疊代2.6:編寫DAO類 700
29.3.7 疊代2.7:資料庫幫助類DBHelper 704
29.3.8 疊代2.8:發布到GitHub 706
29.4 任務3:表示邏輯組件開發 706
29.4.1 疊代3.1:使用資源管理圖片和圖示資源 707
29.4.2 疊代3.2:根據原型設計初步設計故事板 708
29.4.3 疊代3.3:“首頁”模組 709
29.4.4 疊代3.4:“比賽項目”模組 710
29.4.5 疊代3.5:“比賽日程”模組 714
29.4.6 疊代3.6:“倒 計時”模組 718
29.4.7 疊代3.7:“關於我們”模組 719
29.4.8 疊代3.8:發布到GitHub 720
29.5 任務4:收工 720
29.5.1 疊代4.1:添加圖示 720
29.5.2 疊代4.2:設計和添加啟動界面 720
29.5.3 疊代4.3:性能測試與改善 721
29.5.4 疊代4.4:發布到GitHub 722
29.5.5 疊代4.5:在App Store上發布套用 722
29.6 小結 722

相關詞條

熱門詞條

聯絡我們