出版時間:2012-8 出版社:海洋出版社 作者:DevDiv移動開發(fā)社區(qū) 頁數(shù):324
Tag標(biāo)簽:無
前言
蘋果iOS系統(tǒng)已經(jīng)歷5年多17個版本的更新,其在多代iPhone、iPad和iPod設(shè)備上取得巨大成功,目前已經(jīng)成長為市場上影響力最大、功能最豐富、生態(tài)最完整的移動操作系統(tǒng)?! OS的成功得益于蘋果公司對移動互聯(lián)網(wǎng)的深刻理解,蘋果公司始終專注于用戶體驗(yàn)與服務(wù),并通過平臺整合構(gòu)建了完整的應(yīng)用生態(tài)鏈。iOS從誕生之初即專注用戶體驗(yàn)與服務(wù)的提升,通過不斷的技術(shù)革新,一次次引領(lǐng)著UI交互方式的變革。比如,Siri技術(shù)就是 iOS5 最大的亮點(diǎn),實(shí)現(xiàn)了語音控制輸入功能,可以通過Siri使用語音提問和評論,并且可以與包括日歷等在內(nèi)的所有應(yīng)用通信。同時,新“retina”顯示屏像素要比歷史版本的顯示屏像素高出3倍左右,將用戶體驗(yàn)提升到前所未有的高度,同時,也拉大了與競爭對手之間的距離! APP Store是蘋果公司構(gòu)建應(yīng)用生態(tài)鏈的關(guān)鍵形式,它讓眾多的開發(fā)者找到了自己的商業(yè)模式和商業(yè)機(jī)會,而蘋果公司因此積累了龐大數(shù)量的應(yīng)用。云服務(wù)iCloud讓所有的iOS設(shè)備實(shí)現(xiàn)了互聯(lián)互通,通過iCloud,使用同一賬號的用戶可以在不同iOS設(shè)備上同步信息和APP,實(shí)現(xiàn)文件備份、存儲等功能。可以看出,以iCloud為“媒”,統(tǒng)一不同設(shè)備系統(tǒng)平臺是蘋果公司的既定戰(zhàn)略,蘋果公司在平臺整合上已經(jīng)邁出了堅實(shí)的一步?! ≡趇OS過去 5 年多時間里,業(yè)界對蘋果公司的疑問從“這是智能手機(jī)嗎”發(fā)展到了“它可以代替PC”嗎,可見其對智能手機(jī)發(fā)展的貢獻(xiàn),現(xiàn)在已經(jīng)沒有人懷疑以iOS引領(lǐng)的新一代智能手機(jī)將成為最重要的個人計算終端、個人娛樂終端和個人通信終端,其地位將與傳統(tǒng) PC分庭抗禮。蘋果公司依靠其強(qiáng)大的垂直一體化戰(zhàn)略,不僅通過iPhone、iPad等產(chǎn)品賺取了高額的利潤,同時,通過吸引開發(fā)者不斷地提供創(chuàng)新的應(yīng)用,為蘋果公司源源不斷地注入活力?! 〈送猓档藐P(guān)注的是,蘋果公司并不單純是“以質(zhì)取勝”,在數(shù)量上,蘋果公司也有望在未來幾年實(shí)現(xiàn)對Windows 設(shè)備(安裝微軟Windows操作系統(tǒng)的設(shè)備)的反超。相關(guān)統(tǒng)計數(shù)據(jù)顯示:過去,Windows設(shè)備在同蘋果設(shè)備的銷量對比上,一直占據(jù)絕對優(yōu)勢,這一優(yōu)勢在2000年左右曾經(jīng)達(dá)到過一個峰值,每銷售50臺Windows設(shè)備才售出一款蘋果設(shè)備。但是,隨著iPad和iPhone等一系列基于移動互聯(lián)產(chǎn)品的問世,這一數(shù)字比例在急劇減小,截止目前,Windows設(shè)備與蘋果設(shè)備的銷量比例約為2∶1,分析師稱,蘋果設(shè)備數(shù)量有望在未來兩年內(nèi)超過微軟?! ‘?dāng)前,基于iOS的應(yīng)用具有廣闊的前景和良好的發(fā)展趨勢。希望廣大開發(fā)者借iOS之勢,利用《iOS開發(fā)實(shí)戰(zhàn)體驗(yàn)》及書中提供的相關(guān)代碼,快速進(jìn)入iOS開發(fā)領(lǐng)域,實(shí)現(xiàn)開發(fā)者夢想! 中國科學(xué)院博士、博士生導(dǎo)師,軟件研究所研究員 金蓓弘
內(nèi)容概要
iOS是移動開發(fā)三大平臺之一。本書是DevDiv移動開發(fā)社區(qū)版主、資深會員繼成功推出《移動開發(fā)全平臺解決方案——Android/iOS/Windows
Phone》和《Windows
Phone開發(fā)實(shí)戰(zhàn)體驗(yàn)(應(yīng)用+游戲)》后的又一力作。該書章節(jié)設(shè)置全面涵蓋iOS應(yīng)用開發(fā)技術(shù)要點(diǎn),原創(chuàng)案例細(xì)致呈現(xiàn)作者實(shí)際開發(fā)經(jīng)驗(yàn)。具體包括iOS開發(fā)框架、Object-C高級知識、MVC設(shè)計和Push消息、視圖高級使用技巧、數(shù)據(jù)持久化、TableView使用、文件I/O、硬件和通信、iOS多媒體、定位和地圖、網(wǎng)絡(luò)編程、連接到互聯(lián)網(wǎng)、多線程編程、2D和3D繪圖編程、調(diào)試和優(yōu)化等內(nèi)容。
作者簡介
DevDiv覆蓋移動開發(fā)主流平臺Android、iOS、Windows Phone、Windows
8、HTML5和Symbian等,集資訊、論壇、博客、獵頭服務(wù)、技術(shù)培訓(xùn)于一體,是國內(nèi)最具人氣的綜合性移動開發(fā)社區(qū)。
書籍目錄
第1章 iOS開發(fā)框架
1.1 蘋果產(chǎn)品和重要的事件
1.2 應(yīng)用商店——App Store
1.3 iOS軟件的體系結(jié)構(gòu)
1.3.1 核心操作系統(tǒng)層(Core OS)
1.3.2 核心服務(wù)層(Core Service)
1.3.3 媒體層(Media)
1.3.4 可輕觸層(Cocoa Touch)
1.4 應(yīng)用程序運(yùn)行周期
1.4.1 應(yīng)用程序的生命周期
1.4.2 應(yīng)用程序的入口
1.4.3 應(yīng)用程序的委托
1.4.4 加載主Nib文件
1.4.5 事件處理周期
1.5 應(yīng)用程序運(yùn)行環(huán)境
1.5.1 應(yīng)用程序沙箱
1.5.2 自動休眠定時器
1.6 iOS軟件設(shè)計規(guī)范
1.6.1 平臺間的差異
1.6.2 3種應(yīng)用程序樣式
1.7 iOS開發(fā)工具——Xcode
第2章 Object-C高級知識
2.1 Object-C語言介紹
2.1.1 數(shù)據(jù)類型與表達(dá)式
2.1.2 流程控制
2.1.3 類與結(jié)構(gòu)
2.2 類別(Category)介紹
2.2.1 認(rèn)識類別(Category)
2.2.2 擴(kuò)展NSString
2.2.3 擴(kuò)展NSDictionary
2.2.4 擴(kuò)展NSArray
2.2.5 Object-C與C++混合編程
2.2.6 靜態(tài)庫
第3章 MVC設(shè)計和Push消息
3.1 MVC框架設(shè)計
3.1.1 MVC設(shè)計思想
3.1.2 iPhone開發(fā)中的MVC
3.1.3 iPhone中MVC的實(shí)現(xiàn)
3.2 通知中心
3.2.1 NSNotification類
3.2.2 Notifications的常見誤解
3.3 Push機(jī)制
3.3.1 Push消息需要的條件
3.3.2 在代碼中使用Push消息
3.3.3 通過Mac發(fā)送Push消息
3.3.4 通過iPhone發(fā)送Push消息
第4章 視圖高級使用技巧
4.1 界面工具Interface Builder
4.2 定制基礎(chǔ)控件
4.2.1 定制UIButton
4.2.2 定制UIPickerView以實(shí)現(xiàn)隱
藏功能
4.3 動畫特效
4.3.1 UIViewAnimation動畫
4.3.2 使用公有CATransition實(shí)現(xiàn)
動畫效果
4.3.3 使用私有CATransition實(shí)現(xiàn)
動畫效果
4.4 頁面布局——橫豎屏處理
第5章 數(shù)據(jù)持久化
5.1 Plist文件操作
5.2 NSUserDefaults操作
5.3 SQLite數(shù)據(jù)庫操作
5.4 Core Data文件操作
5.4.1 CoreData特性
5.4.2 為何要使用Core Data
5.4.3 關(guān)于Core Data的常見誤解
5.4.4 建立數(shù)據(jù)庫模型
5.4.5 創(chuàng)建實(shí)體類
5.4.6 數(shù)據(jù)庫操作
第6章 TableView使用
6.1 UITableView的組成及樣式
6.2 UITableView的定義
6.3 UITableView的數(shù)據(jù)源
6.3.1 UITableViewDataSource協(xié)
議
6.3.2 表格視圖的實(shí)現(xiàn)
6.3.3 表格單元
6.3.4 創(chuàng)建表格單元的數(shù)據(jù)源
6.4 UITableView的委托
6.5 UITableView的編輯
6.6 UITableView實(shí)現(xiàn)氣泡效果的表格
6.7 UITableView拖動以顯示更多數(shù)據(jù)
第7章 文件I/O
7.1 文件系統(tǒng)
7.2 文件管理
7.2.1 讀取并顯示對應(yīng)目錄下的文
件
7.2.2 獲取文件屬性信息
7.2.3 創(chuàng)建文件夾
7.2.4 創(chuàng)建文件
7.2.5 刪除文件
7.3 本地數(shù)據(jù)存儲規(guī)則
第8章 硬件和通信
8.1 攝像頭
8.1.1 拍照
8.1.2 攝像
8.1.3 定制拍照界面
8.2 加速度計
8.2.1 加速度計原理
8.2.2 加速度計使用
8.3 陀螺儀
8.3.1 陀螺儀原理
8.3.2 陀螺儀使用
8.4 調(diào)用通訊錄
8.4.1 讀取通訊錄
8.4.2 編輯通訊錄
8.5 打電話
8.6 發(fā)短信
8.7 發(fā)郵件
第9章 iOS多媒體
9.1 圖像
9.1.1 加載UIImage
9.1.2 UIImageView
9.1.3 訪問照片
9.2 聲音
9.2.1 System Sound Services
9.2.2 音頻
9.3 視頻
第10章 定位和地圖
10.1 基礎(chǔ)知識
10.2 iPhone定位方法
10.3 MKReverseGeocoder地理位置反
向編碼
10.4 LBS應(yīng)用的類型
10.5 谷歌地圖
10.5.1 在地圖上增加大頭針標(biāo)注
的方法
10.5.2 在地圖上畫線
第11章 網(wǎng)絡(luò)編程
11.1 iOS網(wǎng)絡(luò)編程
11.1.1 NSURLConnection
11.1.2 網(wǎng)絡(luò)編程示例
11.2 ASIHTTPRequest
11.2.1 使用ASIHTTPRequest
11.2.2 ASIHTTPRequest使用示
例
11.3 檢查網(wǎng)絡(luò)狀態(tài)
11.3.1 SCNetworkReachability
11.3.2 Reachability
第12章 連接到互聯(lián)網(wǎng)
12.1 使用UIWebView
12.2 解析XML
12.2.1 iOS下的XML解析庫
12.2.2 NSXMLParser
12.2.3 第三方解析器
12.2.4 編寫簡單天氣解析應(yīng)用
12.3 解析JSON
12.3.1 iPhone的JSON
12.3.2 JSON解析庫
第13章 多線程編程
13.1 UNIX多線程機(jī)制的使用
13.2 NSThread創(chuàng)建多線程的方法
13.2.1 線程的創(chuàng)建與啟動
13.2.2 線程的同步與鎖
13.2.3 線程的交互和其他控制方
法
13.2.4 線程的睡眠
13.3 線程池NSOperationQueue
13.3.1 創(chuàng)建線程操作NSOperation
13.3.2 任務(wù)控制
13.4 生產(chǎn)者—消費(fèi)者模型
13.4.1 使用@synchronized
13.4.2 使用NSLocking協(xié)議
第14章 2D和3D繪圖編程
14.1 Quartz 2D
14.1.1 畫布(Canvas)
14.1.2 繪圖上下文(Graphics
Context)
14.1.3 Quartz 2D數(shù)據(jù)類型
14.1.4 圖形狀態(tài)
14.1.5 Quartz 2D坐標(biāo)系統(tǒng)
14.1.6 內(nèi)存管理
14.1.7 繪制圖形圖像
14.1.8 繪制OpenFlow效果的倒
影
14.2 3D繪圖OpenGL ES
14.2.1 OpenGL與OpenGL ES簡
介
14.2.2 OpenGL ES在iPhone繪圖
中的應(yīng)用
第15章 調(diào)試和優(yōu)化
15.1 常見錯誤
15.1.1 版本錯誤
15.1.2 證書錯誤
15.1.3 編寫錯誤
15.1.4 導(dǎo)入錯誤
15.2 調(diào)試跟蹤
15.2.1 使用調(diào)試器
15.2.2 使用日志
15.3 使用Instruments
章節(jié)摘錄
版權(quán)頁: 插圖: 業(yè)務(wù)模型還有一個很重要的模型,那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫,需要時從數(shù)據(jù)庫獲取訂單。我們可以將這個模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中。 (2)視圖(View)層 視圖即為用戶交互界面。對于Web應(yīng)用來說,可以是HTML界面,也有可能是XHTML、XML和Applet界面。隨著應(yīng)用復(fù)雜程度和規(guī)模的提升,界面的處理也變得越來越有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖,MVC僅限于視圖上數(shù)據(jù)的采集、處理以及用戶的請求,而不包括視圖上業(yè)務(wù)流程的處理。業(yè)務(wù)流程交由模型(Model)處理。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并進(jìn)行顯示,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制器和模型。 (3)控制器(Controller)層 控制器主要負(fù)責(zé)從用戶接收請求,并將模型與視圖整合在一起,共同完成相關(guān)任務(wù)。它像一個分發(fā)器,清楚地告訴開發(fā)者,可以選擇什么樣的模型和什么樣的視圖,完成什么樣的用戶請求??刂茖颖旧聿蛔鋈魏蔚臄?shù)據(jù)處理,例如用戶點(diǎn)擊一個鏈接,控制層接受請求后,并不處理業(yè)務(wù)信息,只是把用戶的信息傳遞給模型,告訴模型做什么,然后選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖,一個視圖也可能對應(yīng)多個模型。 2)MVC的優(yōu)點(diǎn) MVC要求對應(yīng)用分層,雖然會增加額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,其應(yīng)用通過模型可以得到更好的體現(xiàn)。具體表現(xiàn)如下: ①具有多個視圖對應(yīng)一個模型的能力。在目前用戶需求快速變化的情況下,可能希望通過多種方式訪問應(yīng)用。例如,訂單模型可能有本系統(tǒng)的訂單,也有網(wǎng)上訂單,或者其他系統(tǒng)的訂單,不管是哪種,對訂單的處理都是一樣的,也就是說訂單的處理是一致的。按MVC設(shè)計模式,一個訂單模型及多個視圖即可解決問題。這樣既減少了代碼的重復(fù),又減少了代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。 ②由于模型返回的數(shù)據(jù)不帶任何顯示格式,為此這些模型也可直接應(yīng)用于接口。 ③由于一個應(yīng)用被分離為三層,因此有時僅改變其中的一層就能滿足應(yīng)用的變化需求。當(dāng)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則改變時只需改動MVC的模型層,其他兩層可保持不變。 ④由于控制層是把不同的模型和不同的視圖組合在一起完成不同的請求,因此,控制層可以說是包含了用戶請求權(quán)限的概念。 ⑤MVC模式有利于軟件工程化管理。由于不同的層各司其職,每一層的不同應(yīng)用間具有某些相同的特征,有利于通過工程化、工具化產(chǎn)生管理程序代碼。 3)MVC的不足 MVC的不足體現(xiàn)在以下幾個方面: ①增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對于簡單的界面,如果嚴(yán)格遵循MVC模式,使模型、視圖與控制器分離,會增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過多的更新操作,降低運(yùn)行效率。 ②視圖與控制器的聯(lián)系仍過于緊密。視圖與控制器是既相互分離又確實(shí)聯(lián)系緊密的部件,沒有控制器,視圖的應(yīng)用會很有限,反之亦然,這樣就妨礙了它們的獨(dú)立重用。 ③視圖對模型數(shù)據(jù)的訪問效率比較低。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對未變化數(shù)據(jù)的不必要的頻繁訪問,也降低了操作性能。
編輯推薦
《移動開發(fā)技術(shù)叢書:iOS開發(fā)實(shí)戰(zhàn)體驗(yàn)》適用于iOS初中級開發(fā)者參考用書、高等院校及社會培訓(xùn)機(jī)構(gòu)教材、自學(xué)人員學(xué)習(xí)用書。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
ios開發(fā)實(shí)戰(zhàn)體驗(yàn) PDF格式下載