前 言
第一部分 基礎篇
第1章 開(kāi)篇綜述
1.1 iOS概述
1.2 開(kāi)發(fā)環(huán)境及開(kāi)發(fā)工具
1.3 本書(shū)中的約定
第2章 第一個(gè)iOS應用程序
2.1 創(chuàng )建HelloWorld工程
2.2 HelloWorld工程中的故事板文件
2.3 應用生命周期
2.4 視圖生命周期
2.5 設置產(chǎn)品屬性
2.6 iOS API簡(jiǎn)介
2.7 小結
第3章 UIView與視圖
3.1 視圖“始祖”——UIView
3.2 標簽與按鈕
3.3 動(dòng)作與輸出口
3.4 TextField和TextView
3.5 開(kāi)關(guān)控件、滑塊控件和分段控件
3.6 網(wǎng)頁(yè)視圖WebView
3.7 等待相關(guān)的控件與進(jìn)度條
3.8 警告框和操作表
3.9 工具欄和導航欄
3.10 小結
第4章 iOS 8多分辨率屏幕適配
4.1 iOS 8屏幕的多樣性
4.2 iOS屏幕布局
4.3 Auto Layout布局
4.4 Size Class與iOS 8多屏幕適配
4.5 在屏幕滾動(dòng)視圖中使用Auto Layout和Size Class
4.6 使用資源目錄(asset catalog)管理圖片
4.7 小結
第5章 委托協(xié)議、數據源協(xié)議與高級視圖
5.1 視圖中的委托協(xié)議和數據源協(xié)議
5.2 選擇器
5.3 集合視圖
5.4 小結
第6章 表視圖
6.1 概述
6.2 簡(jiǎn)單表視圖
6.3 分節表視圖
6.4 修改單元格
6.5 表視圖UI設計模式
6.6 小結
第7章 視圖控制器與導航模式
7.1 概述
7.2 平鋪導航
7.3 標簽導航
7.4 樹(shù)形結構導航
7.5 組合使用導航模式
7.6 小結
第8章 iOS常用設計模式
8.1 單例模式
8.2 委托模式
8.3 觀(guān)察者模式
8.4 MVC 模式
8.5 小結
第9章 iPhone與iPad應用開(kāi)發(fā)的差異
9.1 概述
9.2 iPad專(zhuān)用API
9.3 小結
第10章 iOS分層架構設計
10.1 低耦合企業(yè)級系統架構設計
10.2 iOS分層架構設計
10.3 實(shí)例:MyNotes應用
10.4 基于同一工程的分層
10.5 基于同一工作空間靜態(tài)鏈接庫實(shí)現的WLSOO模式
10.6 基于同一工作空間框架實(shí)現的WFSSS模式
10.7 基于同一工作空間框架實(shí)現的WFOOO模式
10.8 基于同一工作空間框架實(shí)現的WFSOO模式
10.9 基于同一工作空間框架實(shí)現的WFOSS模式
10.10 小結
第11章 數據持久化
11.1 概述
11.2 屬性列表
11.3 對象歸檔
11.4 使用SQLite數據庫
11.5 Core Data
11.6 小結
第12章 應用程序設置
12.1 概述
12.2 應用程序設置包
12.3 設置項目種類(lèi)
12.4 讀取設置
12.5 小結
第13章 國際化
13.1 概述
13.2 文本信息國際化
13.3 xib和故事板文件國際化
13.4 資源文件國際化
13.5 小結
第14章 訪(fǎng)問(wèn)聯(lián)系人
14.1 概述
14.2 讀取聯(lián)系人信息
14.3 寫(xiě)入聯(lián)系人信息
14.4 高級API
14.5 小結
第二部分 網(wǎng)絡(luò )篇
第15章 訪(fǎng)問(wèn)Web Service
15.1 概述
15.2 數據交換格式
15.3 REST Web Service
15.4 使用輕量級網(wǎng)絡(luò )請求框架MKNetworkKit
15.5 反饋網(wǎng)絡(luò )信息改善用戶(hù)體驗
15.6 小結
第16章 定位服務(wù)與地圖應用
16.1 定位服務(wù)
16.2 使用iOS蘋(píng)果地圖
16.3 使用程序外地圖
16.4 小結
第三部分 進(jìn)階篇
第17章 iOS中的商業(yè)模式
17.1 收費策略
17.2 使用蘋(píng)果iAd 廣告
17.3 使用谷歌AdMob廣告
17.4 小結
第18章 找出程序中的bug——調試
18.1 Xcode調試工具
18.2 日志與斷言輸出
18.3 異常堆棧報告分析
18.4 在iOS設備上調試
18.5 Xcode設備管理工具
18.6 小結
第19章 測試驅動(dòng)下的iOS應用開(kāi)發(fā)
19.1 測試驅動(dòng)的軟件開(kāi)發(fā)概述
19.2 使用XCTest測試框架
19.3 異步單元測試
19.4 性能測試
19.5 iOS單元測試最佳實(shí)踐
19.6 小結
第20章 讓你的程序“飛”起來(lái)——性能優(yōu)化
20.1 內存優(yōu)化
20.2 優(yōu)化資源文件
20.3 延遲加載
20.4 數據持久化的優(yōu)化
20.5 可重用對象的使用
20.6 并發(fā)處理與多核CPU
20.7 小結
第21章 管理好你的程序代碼——代碼版本控制
21.1 概述
21.2 Git代碼版本控制
21.3 GitHub代碼托管服務(wù)
21.4 小結
第22章 把你的應用放到App Store上
22.1 收官
22.2 發(fā)布流程
22.3 常見(jiàn)審核不通過(guò)的原因
22.4 小結
第四部分 實(shí)戰篇
第23章 重構MyNotes應用——iOS網(wǎng)絡(luò )通信中的設計模式與架構設計
23.1 移動(dòng)網(wǎng)絡(luò )通信應用的分層架構設計
23.2 Objective-C版本:在工作空間中添加和配置MKNetworkKit
23.3 基于委托模式實(shí)現
23.4 基于觀(guān)察者模式的通知機制實(shí)現
23.5 小結
第24章 iOS敏捷開(kāi)發(fā)項目實(shí)戰——2016里約熱內盧奧運會(huì )應用開(kāi)發(fā)及App Store發(fā)布
24.1 應用分析與設計
24.2 iOS敏捷開(kāi)發(fā)
24.3 任務(wù)1:創(chuàng )建應用工作空間和工程
24.4 任務(wù)2:信息系統層與持久層開(kāi)發(fā)
24.5 任務(wù)3:業(yè)務(wù)邏輯層開(kāi)發(fā)
24.6 任務(wù)4:表示層開(kāi)發(fā)
24.7 任務(wù)5:收工
24.8 小結