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