前言
第1章? 開篇綜述
1.1 本書結構 ?
1.2 本書中的約定 ?
1.2.1 實例程式約定 ?
1.2.2 圖示的約定 ?
第2章? 溝通無限 — 蘋果的網路???
2.1 網路架構 ?
2.1.1 客戶端伺服器架構網路 ?
2.1.2 對等架構網路 ?
2.2 以Socket 為基礎的C/S 架構網路通訊 ?
2.2.1 Socket 概念 ?
2.2.2 Socket 程式設計
2.2.3 實例:NSStream&CFStream 實現TCP Socket 伺服器端 ?
2.2.4 實例:NSStream&CFStream 實現TCP Socket 客戶端 ?
2.3 Bonjour 服務探索 ?
2.3.1 發佈服務 ?
2.3.2 解析服務 ?
2.3.3 尋找服務 ?
2.3.4 實例:以服務探索為基礎的Socket 通訊伺服器端 ?
2.3.5 實例:以服務探索為基礎的Socket 通訊客戶端 ?
2.4 對等架構網路 ?
2.4.1 使用Game Kit 開發對等架構網路應用 ?
2.4.2 實例:基於藍芽對等網路通訊
?? ?
第3章 資料交換格式?? ?
3.1 XML 資料交換格式 ?
3.1.1 文件結構 ?
3.1.2 XML 文件解析與框架效能 ?
3.1.3 實例:MyNotes 應用XML
3.2 JSON 資料交換格式
3.2.1 文件結構 ?
3.2.2 JSON 資料編碼/ 解碼與框架效能 ?
3.2.3 實例:MyNotes 應用JSON 解碼
?? ?
第4章? 使用Web Service —以客戶端伺服器結構網路通訊為基礎?? ?
4.1 REST Web Service
4.1.1 HTTP 和HTTPS 協定
4.1.2 同步GET 方法請求程式設計
4.1.3 非同步GET 方法請求程式設計 ?
4.1.4 POST 方法請求程式設計
4.1.5 實例:REST Web Service 實現的MyNotes 應用
4.2 SOAP Web Service
4.2.1 WSDL 概念 ?
4.2.2 SOAP 協定 ?
4.2.3 實例:SOAP Web Service 實現MyNotes 應用 ?
4.3 ASIHTTPRequest 框架使用 ?
4.3.1 安裝和設定ASIHTTPRequest 框架 ?
4.3.2 同步請求
4.3.3 非同步請求
4.3.4 實例:請求佇列應用 ?
4.3.5 實例:上傳資料應用 ?
4.4 回饋網路資訊改善使用者體驗 ?
4.4.1 iOS 6 表格視圖更新控制項的使用
4.4.2 使用等待指示器控制項
4.4.3 使用網路等待指示器 ?
4.4.4 使用MBProgressHUD 等待指示器
第5章? iCloud 程式設計???????????????????????? ?
5.1 蘋果雲端服務 — iCloud ?
5.2 設定iCloud ?
5.2.1 建立App ID
5.2.2 建立設定概要檔案 ?
5.3 iCloud 資料儲存 ?
5.3.1 iCloud 鍵值資料儲存 ?
5.3.2 iCloud 文件儲存
5.3.3 iCloud 儲存注意事項
5.4 iCloud 鍵值資料儲存程式設計
5.4.1 實例:iCloud 鍵值資料儲存設計 ?
5.4.2 設定Xcode 專案
5.4.3 程式實現
5.5 iCloud 文件儲存程式設計 ?
5.5.1 實例:iCloud 文件儲存程式設計設計 ?
5.5.2 設定Xcode 專案 ?
5.5.3 自訂文件類別 ?
5.5.4 獲得iCloud 文件目錄?? ?
5.5.5 尋找Ubiquity 容器中的文件 ?
5.5.6 儲存文件 ?
5.5.7 解決文件衝突
5.6 在iCloud下使用Core Data 技術 ?
5.6.1 實例:iCloud CoreData 程式設計設計 ?
5.6.2 使用Xcode 建立Core Data 專案 ?
5.6.3 建立持久化儲存協調者 ?
5.6.4 建立被管理的物件上下文 ?
5.6.5 合併iCloud 與本機資料
?? ?
第6章? 社交網路程式設計?? ?
6.1 蘋果的社交網路 ?
6.1.1 設定帳戶資訊 ?
6.1.2 社交網路程式設計API ?
6.2 iOS 6 分享列表—UIActivityViewController
6.2.1 內建活動清單項
6.2.2 自訂活動清單項
6.3 撰寫視圖控制器 — SLComposeViewController ?
6.4 撰寫自己的社交網路客戶端 ?
6.4.1 實例:撰寫新浪微博客戶端 ?
6.4.2 實例:撰寫Twitter 客戶端 ?
6.4.3 實例:撰寫Facebook 客戶端?? ?
第7章? 定位服務與地圖應用程式開發?? ?
7.1定位服務
7.1.1 定位服務程式設計 ?
7.1.2 地理資訊對應地址
7.1.3 地理資訊編碼查詢
7.1.4 關於定位服務的測試 ?
7.2 使用iOS 6 蘋果地圖 ?
7.2.1 顯示地圖 ?
7.2.2 增加標記 ?
7.2.3 追蹤使用者位置變化
7.3 使用程式外地圖
7.3.1 呼叫iOS 6 蘋果地圖
7.3.2 呼叫GoogleWeb 地圖
7.4 使用當地語系化的百度地圖 ?
7.4.1 百度地圖的安裝與初始化
7.4.2 顯示地圖 ?
7.4.3 地理資訊編碼與對應地址 ?
7.4.4 增加標記點
第8章 發佈你的促銷資訊 — 發送通知?? ?
8.1 蘋果中的究竟有少個“通知”?
8.1.1 廣播通知 ?
8.1.2 本機通知 ?
8.1.3 發送通知 ?
8.2 設定發送通知
8.2.1 憑證簽名請求 ?
8.2.2 設定應用程式發送通知
8.2.3 產生SSL 憑證
8.2.4 為SSL 憑證匯出p12 檔案
8.3 iOS 客戶端程式設計 ?
8.3.1 設定Xcode 專案 ?
8.3.2 程式實現 ?
8.4 發送服務端程式設計 ?
8.4.1 使用PHP 實現發送服務
8.4.2 使用Java 發送服務
第9章? 書報攤 — 書報攤應用程式設計?? ?
9.1 iOS 5 中書報攤應用 ?
9.2 書報攤應用程式設計 ?
9.2.1 設定書報攤 ?
9.2.2 使用Newsstand Kit API
9.3 實例:MyNewsstand 雜誌應用 ?
9.3.1 實例設計原型草圖 ?
9.3.2 實例設計類別圖 ?
9.3.3 初始化雜誌畫面 ?
9.3.4 主動式下載資源 ?
9.3.5 後台下載資源 ?
9.3.6 中斷續傳 ?
9.3.7 讀取雜誌內容
?? ?
第10章? 應用程式內購買?? ?
10.1? 應用程式內購買實例設計 ?
10.2 測試環境架設?? ?
10.2.1 增加測試使用者
10.2.2 建立App ID
10.2.3 增加空白應用 ?
10.2.4 為應用增加購買產品資訊 ?
10.3 伺服器產品型態應用程式內購買??????? ?
10.3.1 工作流程 ?
10.3.2 實例:應用程式內購買實例介紹 ?
10.3.3 實例:應用程式內購買iOS 客戶端
10.3.4 實例:PHP 實現的伺服器端
第11章? iOS 6 Passbook 應用程式開發?? ?
11.1 Passbook 與Pass ?
11.1.1 Pass 的5 種風格
11.1.2 Pass 的內部結構
11.2 設計Pass ?
11.2.1 pass.json 檔案結構 ?
11.2.2 Pass 型態和欄位
11.2.3 二維條碼 ?
11.2.4 位置與時間 ?
11.2.5 當地語系化 ?
11.2.6 圖示和圖片的使用 ?
11.3 建立Pass
11.3.1 建立Pass 憑證 ?
11.3.2 數位簽章與包裝Pass 檔案 ?
11.4 發佈Pass
11.4.1 Email 發佈 ?
11.4.2 Web 網站發佈
11.5 Pass Kit 程式設計 ?
11.5.1 實例:MyPass 實例設計與說明 ?
11.5.2 準備工作 ?
11.5.3 存取Passbook ?
11.5.4 增加與取代Pass ?
11.5.5 刪除Pass?? ?
第12章? 重構MyNotes應用程式—iOS網路通訊中的設計模式與架構設計
12.1 行動網路通訊應用程式的分層架構設計????? ?
12.2 基於委派模式實現 ?
12.2.1 網路通訊與委派模式 ?
12.2.2 非同步網路通訊中委派模式實現分層架構設計 ?
12.2.3 類別圖 ?
12.2.4 時序圖 ?
12.2.5 資料持久層程式實現 ?
12.2.6 業務邏輯層程式實現
12.2.7 展現層程式實現 ?
12.3 基於觀察者模式通知機制實現??? ?
12.3.1 觀察者模式的通知機制回顧
12.3.2 非同步網路通訊中通知機制實現分層架構設計
12.3.3 類別圖 ?
12.3.4 時序圖
12.3.5 資料持久層程式實現 ?
12.3.6 業務邏輯層程式實現 ?
12.3.7 展現層程式實現
第13章? iOS 敏捷開發專案實戰 — 價格線酒店預訂iPhone客戶端開發?? ?
13.1 應用程式分析與設計 ?
13.1.1 應用程式概述 ?
13.1.2 需求分析 ?
13.1.3 原型設計
13.1.4 架構設計 ?
13.2 iOS 敏捷開發
13.2.1 敏捷開發宣言 ?
13.2.2 iOS 可以敏捷開發? ?
13.2.3 iOS 敏捷開發一般過程 ?
13.3 工作1:建立應用程式基本工作空間 ?
13.3.1 反覆開發1.1 建立業務邏輯層專案 ?
13.3.2 反覆開發1.2 建立展現層專案
13.4 工作2:業務邏輯層開發 ?
13.4.1 反覆開發2.1 撰寫搜索酒店的業務邏輯層類別 ?
13.4.2 反覆開發2.2 撰寫房間查詢業務邏輯類別
13.5 工作3:展現層開發 ?
13.5.1 反覆開發3.1 根據原型設計初步設計分鏡指令稿 ?
13.5.2 反覆開發3.2 搜索酒店模組 ?
13.5.3 反覆開發3.2.1 選擇城市視圖控制器 ?
13.5.4 反覆開發3.2.2 選擇關鍵字視圖控制器 ?
13.5.5 反覆開發3.2.3 選擇價格和日期拾取器 ?
13.5.6 反覆開發3.2.4 酒店搜索視圖控制器 ?
13.5.7 反覆開發3.2.5 酒店搜索列表視圖控制器 ?
13.5.8 反覆開發3.3 房間查詢模組