iOS開發指南:從零基礎到App Store上架(第2版)

iOS開發指南:從零基礎到App Store上架(第2版)

《iOS開發指南:從零基礎到App Store上架(第2版)》是2015年2月人民郵電出版社出版的圖書,作者是關東升。

基本介紹

  • 書名:iOS開發指南:從零基礎到App Store上架(第2版)
  • 作者:關東升
  • ISBN:9787115348029
  • 頁數:699頁
  • 定價:99元
  • 出版社:人民郵電出版社
  • 出版時間:2015年2月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

《iOS開發指南:從零基礎到App Store上架(第 2版)》採用全新的iOS 7 API,詳細介紹了最新的iOS 7開發相關的知識點。《iOS開發指南:從零基礎到App Store上架(第 2版)》共分為4個部分:第 一部分為基礎篇,介紹了iOS的一些基礎知識;第 二部分為網路篇,介紹了iOS網路開發相關的知識;第三部分為進階篇,介紹了iOS高級內容、商業思考等;第四部分為實戰篇,從無到有地介紹了兩個真實的iOS套用:MyNotes套用和2016里約熱內盧奧運會套用。
《iOS開發指南:從零基礎到App Store上架(第 2版)》適合iOS開發人員閱讀。

圖書目錄

第 一部分 基礎篇
第 1章 開篇綜述 2
1.1 iOS概述 2
1.1.1 iOS介紹 2
1.1.2 iOS 7新特性 2
1.2 開發環境及開發工具 3
1.3 本書中的約定 4
1.3.1 案例代碼約定 5
1.3.2 圖示的約定 5
第 2章 第 一個iOS應用程式 7
2.1 創建HelloWorld工程 7
2.1.1 創建工程 7
2.1.2 Xcode中的iOS工程模板 12
2.1.3 套用剖析 13
2.2 HelloWorld工程中故事板檔案Main.storyboard 16
2.2.1 故事板的導航特點 16
2.2.2 故事板中的Scene和Segue 17
2.3 套用生命周期 17
2.3.1 非運行狀態——套用啟動場景 19
2.3.2 點擊Home鍵——套用退出場景 20
2.3.3 掛起重新運行場景 21
2.3.4 記憶體清除——套用終止場景 22
2.4 視圖生命周期 22
2.4.1 視圖生命周期與視圖控制器關係 23
2.4.2 iOS UI狀態保持和恢復 24
2.5 設定產品屬性 26
2.5.1 Xcode中的Project和Target 26
2.5.2 設定常用的產品屬性 28
2.6 iOS API簡介 30
2.6.1 API概述 30
2.6.2 如何使用API幫助 32
2.7 小結 34
第3章 UIView與控制項 35
3.1 視圖“始祖”——UIView 35
3.1.1 UIView“家族” 35
3.1.2 套用界面的構建層次 37
3.1.3 視圖分類 38
3.2 標籤控制項和按鈕控制項 38
3.2.1 標籤控制項 39
3.2.2 按鈕控制項 39
3.2.3 動作和輸出口 41
3.3 TextField控制項和TextView控制項 43
3.3.1 TextField控制項 44
3.3.2 TextView控制項 44
3.3.3 鍵盤的打開和關閉 45
3.3.4 關閉和打開鍵盤的通知 46
3.3.5 鍵盤的種類 47
3.4 開關控制項、滑塊控制項和分段控制項 48
3.4.1 開關控制項 49
3.4.2 滑塊控制項 49
3.4.3 分段控制項 49
3.5 網頁控制項WebView 50
3.5.1 WebView介紹 50
3.5.2 使用WebView構建Hybrid套用 53
3.6 螢幕滾動控制項ScrollView 58
3.6.1 ScrollView屬性的設定 58
3.6.2 鍵盤與其他控制項的協同 63
3.7 等待相關的控制項與進度條 65
3.7.1 活動指示器ActivityIndicatorView 66
3.7.2 進度條ProgressView 66
3.8 警告框和操作表 67
3.8.1 警告框AlertView 67
3.8.2 操作表ActionSheet 69
3.9 工具列和導航欄 70
3.9.1 工具列 70
3.9.2 導航欄 73
3.10 螢幕布局 77
3.10.1 iPad、iPhone和iPhone 5螢幕布局 77
3.10.2 絕對布局和相對布局 78
3.10.3 使用AutoLayout布局 80
3.10.4 旋轉你的螢幕 82
3.11 選擇器 86
3.11.1 日期選擇器 86
3.11.2 普通選擇器 88
3.11.3 數據源協定與委託協定 90
3.12 集合視圖 92
3.12.1 集合視圖介紹 92
3.12.2 集合視圖單元格 94
3.12.3 數據源協定與委託協定 97
3.13 小結 97
第4章 表視圖 98
4.1 概述 98
4.1.1 表視圖的組成 98
4.1.2 表視圖的相關類 99
4.1.3 表視圖分類 100
4.1.4 單元格的組成和樣式 103
4.1.5 數據源協定與委託協定 105
4.2 簡單表視圖 106
4.2.1 創建簡單表視圖 106
4.2.2 自定義單元格 110
4.2.3 添加搜尋欄 114
4.3 分節表視圖 119
4.3.1 添加索引 119
4.3.2 分組與靜態表 122
4.4 修改單元格 126
4.4.1 刪除和插入單元格 126
4.4.2 移動單元格 132
4.5 表視圖UI設計模式 134
4.5.1 分頁模式 134
4.5.2 下拉刷新模式 134
4.5.3 iOS 7下拉刷新控制項 135
4.6 小結 137
第5章 視圖控制器與導航模式 138
5.1 概述 138
5.1.1 視圖控制器的種類 138
5.1.2 導航模式 138
5.1.3 模態視圖 139
5.2 平鋪導航 145
5.2.1 套用場景 145
5.2.2 基於分屏導航的實現 147
5.2.3 基於分頁導航的實現 150
5.3 標籤導航 156
5.3.1 套用場景 157
5.3.2 實現 157
5.4 樹形結構導航 159
5.4.1 套用場景 160
5.4.2 實現 161
5.5 組合使用導航模式 165
5.5.1 套用場景 166
5.5.2 實現 166
5.6 小結 173
第6章 iOS常用設計模式 174
6.1 單例模式 174
6.1.1 問題提出 174
6.1.2 實現原理 174
6.1.3 套用案例 175
6.2 委託模式 177
6.2.1 問題提出 177
6.2.2 實現原理 178
6.2.3 套用案例 181
6.3 觀察者模式 184
6.3.1 問題提出 184
6.3.2 實現原理 185
6.3.3 通知機制和KVO機制 187
6.4 MVC模式 193
6.4.1 MVC模式概述 193
6.4.2 Cocoa Touch中的MVC模式 194
6.5 小結 196
第7章 iPhone與iPad套用開發的差異 197
7.1 概述 197
7.1.1 套用場景差異 197
7.1.2 設計和開發需注意的問題 197
7.1.3 構建自適應的iPhone和iPad工程 200
7.2 iPad專用API 202
7.2.1 UIPopoverController控制器 202
7.2.2 UISplitViewController控制器 205
7.2.3 模態視圖專用屬性 211
7.3 小結 215
第8章 iOS分層架構設計 216
8.1 低耦合企業級系統架構設計 216
8.2  iOS分層架構設計 217
8.2.1 基於同一工程的分層 217
8.2.2 基於一個工作空間不同工程的分層 222
8.3 小結 227
第9章 iOS 7中文字排版和渲染引擎——Text Kit 228
9.1 Text Kit基礎 228
9.1.1 文字的排版和渲染 228
9.1.2 Text Kit架構 228
9.1.3 Text Kit中的核心類 229
9.1.3 實例:凸版印刷效果 231
9.2 文字圖片混合排版 233
9.3 動態字型 236
9.4 小結 239
第 10章 應用程式設定 240
10.1 概述 240
10.1.1 設定 240
10.1.2 配置 241
10.2 應用程式設定包 243
10.3 設定項目種類 244
10.3.1 文本欄位 247
10.3.2 開關 249
10.3.3 滑塊 250
10.3.4 值列表 252
10.3.5 子界面 253
10.4 讀取設定 255
10.5 小結 256
第 11章 國際化 257
11.1 概述 257
11.1.1 需要國際化的內容 257
11.1.2 國際化結構 259
11.2 文本信息國際化 260
11.2.1 系統按鈕和信息國際化 260
11.2.2 套用名稱國際化 261
11.2.3 程式代碼輸出的靜態文本國際化 263
11.2.4 使用genstring工具 265
11.3 xib和故事板檔案國際化 266
11.3.1 使用Base國際化技術 266
11.3.2 AutoLayout與國際化 268
11.4 資源檔案國際化 270
11.4.1 圖片資源檔案國際化 270
11.4.2 聲音資源檔案國際化 271
11.5 小結 271
第 12章 數據持久化 272
12.1 概述 272
12.1.1 沙箱 272
12.1.2 持久化方式 273
12.2 屬性列表 273
12.3 對象歸檔 278
12.4 使用SQLite資料庫 282
12.4.1 SQLite數據類型 283
12.4.2 創建資料庫 283
12.4.3 查詢數據 285
12.4.4 修改數據 288
12.5 Core Data 290
12.5.1 ORM 290
12.5.2 Core Data堆疊 290
12.5.3 建模和生成實體 294
12.5.4 採用Core Data分層架構設計 297
12.5.5 查詢數據 298
12.5.6 修改數據 300
12.6 小結 301
第 13章 訪問通訊錄 302
13.1 概述 303
13.2 讀取聯繫人信息 303
13.2.1 查詢聯繫人記錄 304
13.2.2 讀取單值屬性 306
13.2.3 讀取多值屬性 308
13.2.4 讀取圖片屬性 310
13.3 寫入聯繫人信息 310
13.3.1 創建聯繫人 312
13.3.2 修改聯繫人 314
13.3.3 刪除聯繫人 315
13.4 高級API 316
13.4.1 選擇聯繫人 316
13.4.2 顯示和修改聯繫人 319
13.4.3 創建聯繫人 322
13.5 小結 325
第 二部分 網路篇
第 14章 訪問Web Service 328
14.1 概述 328
14.2 數據交換格式 328
14.2.1 XML文檔結構 330
14.2.2 解析XML文檔 331
14.2.3 JSON文檔結構 338
14.2.4 JSON數據解碼 339
14.3 REST Web Service 341
14.3.1 HTTP和HTTPS協定 341
14.3.2 同步GET請求方法 342
14.3.3 異步GET請求方法 346
14.3.4 POST請求方式 347
14.3.5 調用REST Web Service的插入、修改和刪除方法 348
14.4 使用輕量級網路請求框架MKNetworkKit 352
14.4.1 ASIHTTPRequest、AFNetworking和MKNetworkKit比較 353
14.4.2 安裝和配置MKNetworkKit框架 353
14.4.3 網路請求 354
14.4.4 下載數據 356
14.4.5 上傳數據 358
14.5 反饋網路信息改善用戶體驗 359
14.5.1 使用下拉刷新控制項改善用戶體驗 359
14.5.2 使用等待指示器控制項 362
14.5.3 使用網路等待指示器 365
14.6 小結 366
第 15章 定位服務與地圖套用 367
15.1 定位服務 367
15.1.1 定位服務編程 368
15.1.2 地理信息反編碼 372
15.1.3 地理信息編碼查詢 373
15.1.4 關於定位服務的測試 375
15.2 使用iOS蘋果地圖 378
15.2.1 顯示地圖 378
15.2.2 添加標註 380
15.2.3 跟蹤用戶位置變化 383
15.3 使用程式外地圖 384
15.3.1 調用iOS蘋果地圖 384
15.3.2 調用谷歌Web地圖 387
15.4 小結 388
第三部分 進階篇
第 16章 升級? 390
16.1 從iOS 6到iOS 7的升級 390
16.1.1 iOS 7全新的扁平化設計 391
16.1.2 螢幕適配問題 394
16.1.3 iOS 7狀態欄隱藏 396
16.1.4 iOS 7狀態欄樣式設定 397
16.2 從Xcode 4到Xcode 5的升級 399
16.2.1 ARC與MRC之爭 399
16.2.2 故事板與xib之爭 402
16.2.3 找回普通顯示屏的模擬器 407
16.2.4 找回老版本的Interface Builder 408
16.2.5 使用資源管理圖片 409
16.3 從iPhone 4到iPhone 5的升級 412
16.3.1 螢幕適配問題 413
16.3.2 從32位到64位的升級 416
16.4 小結 417
第 17章 iOS中的商業模式 418
17.1 收費策略 418
17.1.1 iOS如何賺錢 418
17.1.2 避免定價策略誤區 419
17.1.3 免費軟體的藝術 419
17.1.4 在適當的時間、適當的地點植入廣告 419
17.1.5 嘗試不同的盈利模式 419
17.2 使用蘋果iAd廣告 420
17.2.1 橫幅廣告 420
17.2.2 插頁廣告 425
17.2.3 查看你的收入 430
17.3 使用谷歌AdMob廣告 432
17.3.1 註冊AdMob賬號和管理套用 432
17.3.2 下載谷歌AdMob Ads SDK和示例代碼 435
17.3.3 添加AdMob橫幅廣告 437
17.3.4 添加AdMob插頁廣告 442
17.3.5 為廣告提交用戶和位置信息 445
17.3.6 搜尋廣告 446
17.3.7 查看你的收入 448
17.4 套用內購買 449
17.4.1 概述 449
17.4.2 測試環境搭建 450
17.4.3 在程式中實現套用內購買 455
17.4.4 測試套用內購買 461
17.5 小結 463
第 18章 找出程式中的bug——調試 464
18.1 Xcode調試工具 464
18.1.1 定位編譯錯誤 464
18.1.2 查看和顯示日誌 465
18.1.3 設定和查看斷點 466
18.1.4 調試工具列 470
18.1.5 輸出視窗 471
18.1.6 變數查看視窗 473
18.1.7 查看執行緒 474
18.2 日誌與斷言輸出 475
18.2.1 使用NSLog函式 475
18.2.2 使用NSAssert宏 476
18.2.3 移除NSLog和NSAssert 477
18.3 LLDB調試工具 479
18.3.1 斷點命令 480
18.3.2 觀察點命令 482
18.3.3 查看變數和計算表達式命令 483
18.4 異常堆疊報告分析 485
18.4.1 跟蹤異常堆疊 485
18.4.2 分析堆疊報告 488
18.5 在iOS設備上調試 488
18.5.1 創建開發者證書 489
18.5.2 設備註冊 493
18.5.3 創建App ID 495
18.5.4 創建配置概要檔案 497
18.5.5 設備調試 501
18.6 Xcode設備管理工具 502
18.6.1 管理設備配置概要檔案 503
18.6.2 查看設備上的應用程式 504
18.6.3 設備控制台 505
18.6.4 設備日誌 505
18.7 小結 506
第 19章 測試驅動下的iOS套用開發 507
19.1 測試驅動的軟體開發概述 507
19.1.1 測試驅動的軟體開發流程 507
19.1.2 測試驅動的軟體開發案例 508
19.1.3 iOS 7單元測試框架 513
19.2 使用XCTest測試框架 513
19.2.1 添加XCTest到工程 514
19.2.2 編寫XCTest測試方法 515
19.2.3 運行測試程式 521
19.2.4 分析測試報告 521
19.3 iOS單元測試最佳實踐 523
19.3.1 測試數據持久層 523
19.3.2 測試業務邏輯層 527
19.3.3 測試表示層 529
19.4 小結 531
第 20章 讓你的程式“飛”起來——性能最佳化 532
20.1 記憶體最佳化 532
20.1.1 記憶體泄漏問題的解決 532
20.1.2 查找和解決殭屍對象 540
20.1.3 autorelease的使用問題 543
20.1.4 回響記憶體警告 543
20.1.5 選擇xib還是故事板 545
20.2 最佳化資源檔案 545
20.2.1 圖片檔案最佳化 546
20.2.2 音頻檔案最佳化 548
20.3 延遲載入 549
20.3.1 資源檔案的延遲載入 549
20.3.2 故事板和xib檔案的延遲載入 553
20.4 數據持久化的最佳化 555
20.4.1 使用檔案 555
20.4.2 使用SQLite資料庫 559
20.4.3 使用Core Data 560
20.5 可重用對象的使用 562
20.5.1 表視圖中的可重用對象 562
20.5.2 集合視圖中的可重用對象 564
20.5.3 地圖視圖中的可重用對象 565
20.6 並發處理與多核CPU 565
20.6.1 主執行緒阻塞問題 566
20.6.2 選擇NSThread還是GCD 566
20.7 編譯參數 568
20.8 小結 569
第 21章 管理好你的程式代碼——代碼版本控制 570
21.1 概述 570
21.1.1 版本控制歷史 570
21.1.2 基本概念 571
21.2 Git代碼版本控制 571
21.2.1 伺服器搭建 571
21.2.2 Gitolite伺服器管理 573
21.2.3 Git常用命令 575
21.2.4 Git分支 577
21.2.5 Git協同開發 581
21.2.6 Xcode 5中Git的配置與使用 583
21.3 GitHub代碼託管服務 590
21.3.1 創建和配置GitHub賬號 590
21.3.2 創建代碼庫 592
21.3.3 派生代碼庫 595
21.3.4 使用GitHub協同開發 597
21.3.5 管理組織 601
21.4 小結 605
第 22章 把你的套用放到App Store上 606
22.1 收官 606
22.1.1 在Xcode 5下添加圖示 606
22.1.2 Xcode 5添加啟動界面 608
22.1.3 調整Identity和Deployment Info屬性 611
22.1.4 為發布進行編譯 612
22.1.5 套用打包 618
22.2 發布流程 619
22.2.1 創建套用及基本信息 620
22.2.2 套用定價信息 621
22.2.3 最後的信息輸入 622
22.2.4 上傳套用 625
22.3 審核不通過的常見原因 627
22.4 小結 628
第四部分 實戰篇
第 23章 重構MyNotes套用——iOS網路通信中的設計模式與架構設計 630
23.1 行動網路通信套用的分層架構設計 630
23.2 基於委託模式實現 631
23.2.1 網路通信與委託模式 631
23.2.2 在異步網路通信中使用委託模式實現分層架構設計 631
23.2.3 類圖 632
23.2.4 時序圖 634
23.2.5 數據持久層重構 637
23.2.6 業務邏輯層的代碼實現 640
23.2.7 表示層的代碼實現 642
23.3 基於觀察者模式的通知機制實現 646
23.3.1 觀察者模式的通知機制回顧 646
23.3.2 異步網路通信中通知機制的分層架構設計 647
23.3.3 類圖 647
23.3.4 時序圖 648
23.3.5 數據持久層的重構 651
23.3.6 業務邏輯層的代碼實現 653
23.3.7 表示層的代碼實現 653
23.4 小結 658
第 24章 iOS敏捷開發項目實戰——2016里約熱內盧奧運會套用開發及App Store發布 659
24.1 套用分析與設計 659
24.1.1 套用概述 659
24.1.2 需求分析 659
24.1.3 原型設計 660
24.1.4 資料庫設計 660
24.1.5 架構設計 662
24.2 iOS敏捷開發 662
24.2.1 敏捷開發宣言 662
24.2.2 iOS適合敏捷開發嗎 663
24.2.3 iOS敏捷開發最佳實踐 663
24.3 任務1:創建套用基本工作空間 665
24.4 任務2:信息系統層與持久層開發 666
24.4.1 疊代2.1:編寫資料庫DDL腳本 666
24.4.2 疊代2.2:插入初始數據到資料庫 667
24.4.3 疊代2.3:編寫實體類 667
24.4.4 疊代2.4:DAO類XCTest單元測試 668
24.4.5 疊代2.5:編寫DAO類 672
24.4.6 疊代2.6:發布到GitHub 676
24.5 任務3:業務邏輯層開發 676
24.5.1 疊代3.1:比賽項目業務邏輯類XCTest單元測試 676
24.5.2 疊代3.2:編寫比賽項目業務邏輯類 677
24.5.3 疊代3.3:比賽日程業務邏輯類XCTest單元測試 678
24.5.4 疊代3.4:編寫比賽日程業務邏輯類 679
24.5.5 疊代3.5:發布到GitHub 681
24.6 任務4:表示層開發 681
24.6.1 疊代4.1:使用資源管理圖片和圖示資源 682
24.6.2 疊代4.3:根據原型設計初步設計iPad故事板 683
24.6.3 疊代4.3:根據原型設計初步設計iPhone故事板 684
24.6.4 疊代4.4:首頁模組 684
24.6.5 疊代4.5:比賽項目模組 685
24.6.6 疊代4.6:比賽日程模組 690
24.6.7 疊代4.7:倒計時模組表示層 692
24.6.8 疊代4.8:關於我們模組表示層 694
24.6.9 疊代4.9:發布到GitHub 694
24.7 任務5:收工 694
24.7.1 疊代5.1:添加圖示 695
24.7.2 疊代5.2:設計和添加啟動界面 695
24.7.3 疊代5.3:植入谷歌AdMob橫幅廣告 695
24.7.4 疊代5.4:性能測試與改善 696
24.7.5 疊代5.5:發布到GitHub 697
24.7.6 疊代5.6:在App Store上發布套用 697
24.8 小結 699

相關詞條

熱門詞條

聯絡我們