天天看點

《iOS開發指南》正式出版-源碼-樣章-目錄,歡迎大家提出寶貴意見

我的最新作品:《iOS開發指南-從0基礎到AppStore上線》正式出版了

iOS架構設計、iOS性能優化、iOS測試驅動、iOS調試、iOS團隊協作版本控制。。。。。。應有盡有

京東銷售位址:http://item.jd.com/11288969.html

當當銷售位址:http://product.dangdang.com/product.aspx?product_id=23290237

亞馬遜銷售:位址太長了,直接連接配接了

圖靈社群線上閱讀,購買位址:http://www.ituring.com.cn/book/1160

源碼和章節和大家分享一下!

《iOS開發指南-從0基礎到AppStore上線》書籍×××位址(免費下載下傳):

源碼比較大,打了3個包。

http://down.51cto.com/data/830337

http://down.51cto.com/data/830338

http://down.51cto.com/data/830339

試讀章節下載下傳位址

http://down.51cto.com/data/830349

iOS入門開發,iOS進階開發相關教學視訊,請觀看,51CTO視訊課程

http://edu.51cto.com/lecturer/user_id-701759.html

  可以通過微網誌線上溝通

  讀書交流群:286411514/204462948

  本書最新動态可以關注我的微網誌@tony_關東升  或者@智捷iOS課堂

  新浪微網誌:http://weibo.com/516inc

  本書網站:http://www.iosbook1.com,有部分内容和勘誤問題讨論區等

《iOS開發指南》正式出版-源碼-樣章-目錄,歡迎大家提出寶貴意見

目錄大綱

基礎篇

1 開篇綜述

1.1iOS概述

1.1.1iOS是什麼?

1.1.2iOS6新特性

1.2 開發環境及開發工具

1.3 本書中的約定

1.3.1 案例代碼約定

1.3.2 圖示的約定

2 第一個iOS應用程式

2.1 建立基于nib的HelloWorld工程

2.1.1 建立工程

2.1.2Xcode中的iOS工程模闆

2.1.3 應用剖析

2.2 基于故事闆的HelloWorld工程

2.2.1 使用故事闆重構HelloWorld

2.2.2nib、xib與故事闆

2.2.3 故事闆中的Scene和Segue

2.3 應用生命周期

2.3.1 非運作狀态——應用啟動場景

2.3.2 點選Home鍵——應用退出場景

2.3.3 挂起重新運作場景

2.3.4 記憶體清除——應用終止場景

2.4 視圖生命周期

2.4.1 視圖生命周期與視圖控制器關系

2.4.2 iOS6 UI狀态保持和恢複

2.5 設定産品屬性

2.5.1Xcode中Project和Target

2.5.2 設定常用的産品屬性

2.6iOS API的介紹

2.6.1API概述

2.6.2 如何使用API幫助

3 iOS常用設計模式

3.1 單例模式

3.1.1 問題提出

3.1.2 實作原理

3.1.3 應用案例

3.2 委托模式

3.2.1 問題提出

3.2.2 實作原理

3.2.3 應用案例

3.3 觀察者模式

3.3.1 問題提出

3.3.2 實作原理

3.3.3 通知機制

3.3.4KVO機制

3.4MVC模式

3.4.1MVC模式概述

3.4.2Cocoa Touch中的MVC模式

4 UIView與控件

4.1 視圖“始祖”——UIView

4.1.1UIView“家族”

4.1.2 應用畫面的建構層次

4.1.3 視圖分類

4.2 标簽控件和按鈕控件

4.2.1 标簽控件

4.2.2 按鈕控件

4.2.3 動作和輸出口

4.3TextField控件和TextView控件

4.3.1TextField控件

4.3.2TextView控件

4.3.3 鍵盤的打開和關閉

4.3.4 關閉和打開鍵盤的通知

4.3.5 鍵盤的種類

4.4 開關控件、滑塊控件和分段控件

4.4.1 開關控件

4.4.2 滑塊控件

4.4.3 分段控件

4.5 網頁控件WebView

4.5.1WebView介紹

4.5.2 使用WebView建構Hybrid應用

4.5.3 本地代碼調用JavaScript

4.5.4JavaScript調用本地代碼

4.6 螢幕滾動控件ScrollView

4.6.1ScrollView屬性的設定

4.6.2 鍵盤與其它控件的協同

4.7 等待相關的控件與進度條

4.7.1 等待控件ActivityIndicatorView

4.7.2 進度條ProgressView

4.7 警告和動作選單

4.7.1 警告框AlertView

4.7.2 動作選單ActionSheet

4.8 工具欄和導航欄

4.8.1 工具欄

4.8.2 導航欄

4.9 螢幕布局

4.9.1iPad與iPhone螢幕布局

4.9.2 絕對布局和相對布局

4.9.3 使用iOS6 AutoLayout布局

4.9.4 旋轉你的螢幕

4.10 撥選器

4.10.1 日期撥選器

4.10.2 普通撥選器

4.10.3 資料源協定與委托協定

4.11iOS6中的Collection視圖

4.11.1Collection視圖介紹

4.11.2Collection視圖單元格

4.11.3 資料源協定與委托協定

5 表視圖

5.1 概述

5.1.1 表視圖的組成

5.1.2 表視圖相關類的構成

5.1.3 表視圖分類

5.1.4 單元格組成和樣式

5.1.5 資料源協定與委托協定

5.2 簡單表視圖

5.2.1 建立簡單表視圖

5.2.2 自定義單元格

5.2.3 添加搜尋欄

5.3 分節表視圖

5.3.1 添加索引

5.3.2 分組與靜态表

5.4 修改單元格

5.4.1 删除和插入

5.4.2 移動

5.5 表視圖UI設計模式

5.5.1 分頁模式

5.5.2 下拉重新整理模式

5.5.3iOS6下來重新整理控件

6 視圖控制器與導航模式

6.1 概述

6.1.1 視圖控制器種類

6.1.2 導航模式

6.1.3 模态視圖

6.2 平鋪頁面導航

6.2.1 應用場景

6.2.2 基于分屏控件的導航實作

6.2.3 基于Page的導航實作

6.3 标簽導航

6.3.1 應用場景

6.3.2nib實作

6.3.3 故事闆實作

6.4 樹形結構導航

6.4.1 應用場景

6.4.2nib實作

6.4.3 故事闆實作

6.5 組合使用導航模式

6.5.1 應用場景

6.5.2 故事闆實作

7 iPhone與iPad應用開發的差異

7.1 概述

7.1.1 應用場景差異

7.1.2 設計和開發需注意的問題

7.1.3 建構自适應iPhone和iPad工程

7.2iPad專用API

7.2.1UIPopoverController控制器

7.2.2UISplitViewController控制器

7.2.3 模态視圖專用屬性

7.3Master-Detail應用程式模闆

7.3.1nib實作模闆

7.3.2 故事闆實作模闆

7.4Utility應用程式模闆

7.4.1nib實作模闆

7.4.2 故事闆實作模闆

7.5 移動平台的分層架構設計

7.5.1 低耦合企業級系統架構設計

7.5.2 移動平台的分層架構設計

7.5.3 基于同一工程的分層

7.5.4 基于一個工作空間不同工程的分層

8 應用程式的設定

8.1 概述

8.1.1 設定

8.1.2 配置

8.2 應用程式設定包

8.3 設定項目種類

8.3.1 文本字段

8.3.2 開關

8.3.3 滑塊

8.3.4 值清單

8.3.5 子畫面

8.4 讀取設定

9 應用程式本地化

9.1 概述

9.1.1 本地化内容

9.1.2 本地化目錄結構

9.2 文本資訊本地化

9.2.1 系統按鈕和資訊本地化

9.2.2 應用名稱本地化

9.2.3 程式代碼輸出的靜态文本本地化

9.2.4 使用genstring工具

9.3nib和故事闆檔案本地化

9.3.1 添加本地化

9.3.2 開關使用ibtool工具

9.4 資源檔案本地化

10 資料持久化

10.1 概述

10.1.1 沙箱目錄

10.1.2 持久化方式

10.2 屬性清單

10.3 對象歸檔

10.4 使用SQLite資料庫

10.4.1SQLite資料類型

10.4.2 建立資料庫

10.4.3 查詢資料

10.4.4 修改資料

10.5Core Data

10.5.1ORM(對象關系映射)

10.5.2CoreData堆棧

10.5.3 模組化和生成實體

10.5.4 采用Core Data分層架構設計

10.5.5 查詢資料

10.5.6 修改資料

11 通路通訊錄

11.1 概述

11.2 讀取聯系人資訊

11.2.1 查詢聯系人記錄

11.2.2 讀取單值屬性

11.2.3 讀取多值屬性

11.2.4 讀取圖檔屬性

11.3 寫入聯系人資訊

11.3.1 建立聯系人

11.3.2 修改聯系人

11.3.3 删除聯系人

11.4AddressBook進階API

11.4.1 選擇聯系人

11.4.2 顯示和修改聯系人

11.4.3 建立聯系人

網絡篇

12 通路Web Service

12.1 概述

12.2 資料交換格式

12.2.1XML文檔結構

12.2.2 解析XML文檔

12.2.3JSON文檔結構

12.2.4JSON資料解碼

12.3REST Web Service

12.3.1HTTP和HTTPS協定

12.3.2 同步GET方法請求程式設計

12.3.3 異步GET方法請求程式設計

12.3.4POST方法請求程式設計

12.3.5 調用REST Web Service的插入、修改和删除方法

12.4ASIHTTPRequest架構使用

12.4.1 安裝和配置ASIHTTPRequest架構

12.4.2 同步請求

12.4.3 異步請求

12.4.4 使用請求隊列

12.4.5 上傳資料

12.5 回報網絡資訊改善使用者體驗

12.5.1iOS6表視圖重新整理控件的使用

12.5.2 使用等待訓示器控件

12.5.3 使用網絡等待訓示器

13 定位服務與地圖應用開發

13.1 定位服務

13.1.1 定位服務程式設計

13.1.2 地理資訊反編碼

13.1.3 地理資訊編碼查詢

13.1.4 關于定位服務的測試

13.2 使用iOS6蘋果地圖

13.2.1 顯示地圖

13.2.2 添加标注

13.2.3 跟蹤使用者位置變化

13.3 使用程式外地圖

13.3.1 調用iOS6蘋果地圖

13.3.2 調用谷歌Web地圖

進階篇

14 iOS中的商業模式

14.1 收費政策

14.1.1iOS如何賺錢

14.1.2 避免定價政策誤區

14.1.3 免費軟體的藝術

14.1.4 适當的時間适當的地點植入你的廣告

14.1.5 嘗試不同的盈利模式

14.2 使用蘋果iAd廣告

14.2.1 橫幅廣告

14.2.2 插頁廣告

14.2.3 檢視你的收入

14.3 使用谷歌AdMob廣告

14.3.1 注冊AdMob帳号和管理應用

14.3.2 下載下傳谷歌AdMob Ads SDK和示例代碼

14.3.3 添加AdMob橫幅廣告

14.3.4 添加AdMob插頁廣告

14.3.5 為廣告送出使用者和位置資訊

14.3.6 搜尋廣告

14.3.7 檢視你的收入

14.4 應用内購買

14.4.1 概述

14.4.2 測試環境搭建

14.4.3 在程式中添加實作應用内購買

14.4.4 測試應用内購買

15 找出你程式中的BUG-調試

15.1Xcode調試工具

15.1.1 定位編譯錯誤

15.1.2 檢視和顯示日志

15.1.3 設定和檢視斷點

15.1.4 調試工具欄

15.1.5 輸出視窗

15.1.6 變量檢視視窗

15.1.7 檢視線程

15.2 日志與斷言輸出

15.2.1 使用NSLog函數

15.2.2 使用NSAssert宏

15.2.3 移除NSLog和NSAssert

15.3LLDB調試工具

15.3.1 斷點指令

15.3.2 觀察點指令

15.3.3 檢視變量和計算表達式指令

15.4 異常堆棧報告分析

15.4.1 跟蹤異常堆棧

15.4.2 分析堆棧報告

15.5iOS裝置上調試

15.5.1 建立開發者證書

15.5.2 裝置注冊

15.5.3 建立App ID

15.5.4 建立配置概要檔案

15.5.5 裝置調試

15.6Xcode裝置管理工具

15.6.1 管理裝置配置概要檔案

15.6.2 檢視裝置上應用程式

15.6.3 裝置控制台

15.6.4 裝置日志

16 基于測試驅動的iOS開發

16.1 測試驅動的軟體開發概述

16.1.1 測試驅動的軟體開發流程

16.1.2 測試驅動的軟體開發案例

16.2 使用OCUnit測試架構

16.2.1iOS單元測試架構

16.2.2 添加OCUnit到工程

16.2.3 應用測試和邏輯測試

16.2.4 編寫OCUnit測試方法

16.2.5 分析測試報告

16.3 使用GHUnit測試架構

16.3.1 添加GHUnit到工程

16.3.2 編寫GHUnit測試用例

16.3.3 分析測試報告

16.4 使用僞對象

16.4.1 添加OCMock到工程

16.4.2 使用OCMock

16.5iOS單元測試最佳實踐

16.5.1iOS單元測試政策

16.5.2 測試資料持久層

16.5.3 測試業務邏輯層

16.5.4 測試表示層

17 讓你的程式“飛”起來——性能優化

17.1 記憶體優化

17.1.1 記憶體洩漏問題的解決

17.1.2 查找和解決僵屍對象

17.1.3autorelease的使用問題

17.1.4 響應記憶體警告

17.1.5 選擇nib還是故事闆?

17.2 優化資源檔案

17.2.1 圖檔檔案優化

17.2.2 音頻檔案優化

17.3 延遲加載

17.3.1 資源檔案的延遲加載

17.3.2 故事闆和nib檔案的延遲加載

17.4 資料持久化的優化

17.4.1 使用檔案

17.4.2 使用SQLite資料庫

17.4.3 使用CoreData

17.5 可重用對象的使用

17.5.1 表視圖中的重用對象

17.5.2Collection視圖中的重用對象

17.5.3 地圖視圖中的重用對象

17.6 并發處理與多核CPU

17.6.1 主線程阻塞問題

17.6.2 選擇NSThread還是GCD?

17.7 編譯器和編譯參數

17.7.1GCC、LLVM GCC與Apple LLVM比較

17.7.2ARM架構

17.7.3Optimization Level

18 管理好你的程式代碼——代碼版本控制

18.1 概述

18.1.1 版本控制曆史

18.1.2 基本概念

18.2Git代碼版本控制

18.2.1 伺服器搭建

18.2.2Gitolite伺服器管理

18.2.3Git常用指令

18.2.3Git分支

18.2.4Git協同開發

18.2.5Xcode中Git的配置與使用

18.3GitHub代碼托管服務

18.3.1 建立和配置GitHub賬号

18.3.2 建立代碼庫

18.3.3 派生(fork)代碼庫

18.3.4 使用GitHub協同開發

18.3.5 管理組織

19 把你的應用放到App Store

19.1 收官

19.1.1 添加圖示

19.1.2 添加啟動畫面

19.1.3 調整應用Target屬性

19.1.4 為釋出編譯

19.1.5 應用打包

19.2 釋出流程

19.2.1建立應用及基本資訊

19.2.2應用定價資訊

19.2.3最後資訊輸入

19.2.4上傳應用

19.3常見稽核不通過的原因

19.3.1 功能問題

19.3.2 使用者界面問題

19.3.3 商業問題

19.3.4 不當内容

19.3.5 其它問題

實戰篇

20 重構MyNotes應用——iOS網絡通信中的設計模式與架構設計

20.1 移動網絡通訊應用的分層架構設計

20.2 基于委托模式實作

20.2.1 網絡通訊與委托模式

20.2.2 異步網絡通訊中委托模式實作分層架構設計

20.2.3 類圖

20.2.4 時序圖

20.2.5 資料持久層代碼實作

20.2.6 業務邏輯層代碼實作

20.2.7 表示層代碼實作

20.3 基于觀察者模式通知機制實作

20.3.1 觀察者模式的通知機制回顧

20.3.2 異步網絡通訊中通知機制實作分層架構設計

20.3.3 類圖

20.3.4 時序圖

20.3.5 資料持久層代碼實作

20.3.6 業務邏輯層代碼實作

20.3.7 表示層代碼實作