在iOS 應用程式開發中,有很多有關網路程式設計與雲端應用的技術,如:
LBS、Web Service、iCloud 等,本書主要是介紹iOS 網路程式設計和雲端應用程式開發技術書籍,內容涵蓋蘋果網路、資料交換格式、Web Service、iCloud、定位服務、地圖、發送通知、Newsstand、應用程式內購買、Passbook、以及社交網路程式設計,還介紹了網路通訊設計模式和架構設計。
希望有iOS基礎的程式設計師透過本書的學習,能夠開發iOS網路程式設計與雲端應用的程式,系统化地建立端雲整合的各種應用。
作者簡介:
關東升
知名iOS技術顧問、作者,行動開發專家,精通iOS、Android和 WindowsPhone及Html5等行動開發技術。在AppStore發佈多款遊戲和應用軟體,擅長行動平台的應用和遊戲類專案開發。
作者序
全書分為5 部分:網路基礎篇、雲端服務篇、社交篇、電子商務篇和實戰
篇。
網路基礎篇 包含第2章∼第3章,介紹網路結構、Socket 網路通訊、對等結構網路、Bonjour 服務發現,以及JSON 和XML 資料互動格式。
雲端服務篇 包含第4章∼第5章,介紹客戶端伺服器結構網路通訊兩種實作方式方式:REST Web Service 和SOAP Web Service,以及 iCloud 程式設計。
社交篇 包含第6章∼第7章,介紹了Twitter、Facebook、新浪微博社交網路客戶端端程式設計API,以及定位服務與地圖應用程式開發。
電子商務篇 包含第8章∼第11 章,介紹了發送通知、Newsstand 應用程式設計、伺服器產品型態應用內購買、iOS6 Passbook 應用程式開發。
實戰篇 包含第12章∼第13章,透過重構MyNotes 應用介紹了iOS 網路通訊中的設計模式與架構設計,最後透過價格線酒店預訂iPhone 客戶端開發介紹了iOS 敏捷開發過程。
全書分為5 部分:網路基礎篇、雲端服務篇、社交篇、電子商務篇和實戰
篇。
網路基礎篇 包含第2章∼第3章,介紹網路結構、Socket 網路通訊、對等結構網路、Bonjour 服務發現,以及JSON 和XML 資料互動格式。
雲端服務篇 包含第4章∼第5章,介紹客戶端伺服器結構網路通訊兩種實作方式方式:REST Web Service 和SOAP Web Service,以及 iCloud 程式設計。
社交篇 包含第6章∼第7章,介紹了Twitter、Facebook、新浪微博社交網路客戶端端程式設計API,以及定位服務與地圖應用程式開發。
電子商務篇 包含第8章∼第11 章,介紹了發送通知、N...
目錄
前言
第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 房間查詢模組
前言
第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 實例:以服務探...