出版時(shí)間:2012-8 出版社:海洋出版社 作者:DevDiv移動(dòng)開發(fā)社區(qū) 頁(yè)數(shù):324
Tag標(biāo)簽:無(wú)
前言
蘋果iOS系統(tǒng)已經(jīng)歷5年多17個(gè)版本的更新,其在多代iPhone、iPad和iPod設(shè)備上取得巨大成功,目前已經(jīng)成長(zhǎng)為市場(chǎng)上影響力最大、功能最豐富、生態(tài)最完整的移動(dòng)操作系統(tǒng)?! OS的成功得益于蘋果公司對(duì)移動(dòng)互聯(lián)網(wǎng)的深刻理解,蘋果公司始終專注于用戶體驗(yàn)與服務(wù),并通過(guò)平臺(tái)整合構(gòu)建了完整的應(yīng)用生態(tài)鏈。iOS從誕生之初即專注用戶體驗(yàn)與服務(wù)的提升,通過(guò)不斷的技術(shù)革新,一次次引領(lǐng)著UI交互方式的變革。比如,Siri技術(shù)就是 iOS5 最大的亮點(diǎn),實(shí)現(xiàn)了語(yǔ)音控制輸入功能,可以通過(guò)Siri使用語(yǔ)音提問(wèn)和評(píng)論,并且可以與包括日歷等在內(nèi)的所有應(yīng)用通信。同時(shí),新“retina”顯示屏像素要比歷史版本的顯示屏像素高出3倍左右,將用戶體驗(yàn)提升到前所未有的高度,同時(shí),也拉大了與競(jìng)爭(zhēng)對(duì)手之間的距離! APP Store是蘋果公司構(gòu)建應(yīng)用生態(tài)鏈的關(guān)鍵形式,它讓眾多的開發(fā)者找到了自己的商業(yè)模式和商業(yè)機(jī)會(huì),而蘋果公司因此積累了龐大數(shù)量的應(yīng)用。云服務(wù)iCloud讓所有的iOS設(shè)備實(shí)現(xiàn)了互聯(lián)互通,通過(guò)iCloud,使用同一賬號(hào)的用戶可以在不同iOS設(shè)備上同步信息和APP,實(shí)現(xiàn)文件備份、存儲(chǔ)等功能??梢钥闯?,以iCloud為“媒”,統(tǒng)一不同設(shè)備系統(tǒng)平臺(tái)是蘋果公司的既定戰(zhàn)略,蘋果公司在平臺(tái)整合上已經(jīng)邁出了堅(jiān)實(shí)的一步?! ≡趇OS過(guò)去 5 年多時(shí)間里,業(yè)界對(duì)蘋果公司的疑問(wèn)從“這是智能手機(jī)嗎”發(fā)展到了“它可以代替PC”嗎,可見其對(duì)智能手機(jī)發(fā)展的貢獻(xiàn),現(xiàn)在已經(jīng)沒(méi)有人懷疑以iOS引領(lǐng)的新一代智能手機(jī)將成為最重要的個(gè)人計(jì)算終端、個(gè)人娛樂(lè)終端和個(gè)人通信終端,其地位將與傳統(tǒng) PC分庭抗禮。蘋果公司依靠其強(qiáng)大的垂直一體化戰(zhàn)略,不僅通過(guò)iPhone、iPad等產(chǎn)品賺取了高額的利潤(rùn),同時(shí),通過(guò)吸引開發(fā)者不斷地提供創(chuàng)新的應(yīng)用,為蘋果公司源源不斷地注入活力?! 〈送?,值得關(guān)注的是,蘋果公司并不單純是“以質(zhì)取勝”,在數(shù)量上,蘋果公司也有望在未來(lái)幾年實(shí)現(xiàn)對(duì)Windows 設(shè)備(安裝微軟Windows操作系統(tǒng)的設(shè)備)的反超。相關(guān)統(tǒng)計(jì)數(shù)據(jù)顯示:過(guò)去,Windows設(shè)備在同蘋果設(shè)備的銷量對(duì)比上,一直占據(jù)絕對(duì)優(yōu)勢(shì),這一優(yōu)勢(shì)在2000年左右曾經(jīng)達(dá)到過(guò)一個(gè)峰值,每銷售50臺(tái)Windows設(shè)備才售出一款蘋果設(shè)備。但是,隨著iPad和iPhone等一系列基于移動(dòng)互聯(lián)產(chǎn)品的問(wèn)世,這一數(shù)字比例在急劇減小,截止目前,Windows設(shè)備與蘋果設(shè)備的銷量比例約為2∶1,分析師稱,蘋果設(shè)備數(shù)量有望在未來(lái)兩年內(nèi)超過(guò)微軟?! ‘?dāng)前,基于iOS的應(yīng)用具有廣闊的前景和良好的發(fā)展趨勢(shì)。希望廣大開發(fā)者借iOS之勢(shì),利用《iOS開發(fā)實(shí)戰(zhàn)體驗(yàn)》及書中提供的相關(guān)代碼,快速進(jìn)入iOS開發(fā)領(lǐng)域,實(shí)現(xiàn)開發(fā)者夢(mèng)想! 中國(guó)科學(xué)院博士、博士生導(dǎo)師,軟件研究所研究員 金蓓弘
內(nèi)容概要
iOS是移動(dòng)開發(fā)三大平臺(tái)之一。本書是DevDiv移動(dòng)開發(fā)社區(qū)版主、資深會(huì)員繼成功推出《移動(dòng)開發(fā)全平臺(tái)解決方案——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高級(jí)知識(shí)、MVC設(shè)計(jì)和Push消息、視圖高級(jí)使用技巧、數(shù)據(jù)持久化、TableView使用、文件I/O、硬件和通信、iOS多媒體、定位和地圖、網(wǎng)絡(luò)編程、連接到互聯(lián)網(wǎng)、多線程編程、2D和3D繪圖編程、調(diào)試和優(yōu)化等內(nèi)容。
作者簡(jiǎn)介
DevDiv覆蓋移動(dòng)開發(fā)主流平臺(tái)Android、iOS、Windows Phone、Windows
8、HTML5和Symbian等,集資訊、論壇、博客、獵頭服務(wù)、技術(shù)培訓(xùn)于一體,是國(guó)內(nèi)最具人氣的綜合性移動(dòng)開發(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 自動(dòng)休眠定時(shí)器
1.6 iOS軟件設(shè)計(jì)規(guī)范
1.6.1 平臺(tái)間的差異
1.6.2 3種應(yīng)用程序樣式
1.7 iOS開發(fā)工具——Xcode
第2章 Object-C高級(jí)知識(shí)
2.1 Object-C語(yǔ)言介紹
2.1.1 數(shù)據(jù)類型與表達(dá)式
2.1.2 流程控制
2.1.3 類與結(jié)構(gòu)
2.2 類別(Category)介紹
2.2.1 認(rèn)識(shí)類別(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)庫(kù)
第3章 MVC設(shè)計(jì)和Push消息
3.1 MVC框架設(shè)計(jì)
3.1.1 MVC設(shè)計(jì)思想
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 通過(guò)Mac發(fā)送Push消息
3.3.4 通過(guò)iPhone發(fā)送Push消息
第4章 視圖高級(jí)使用技巧
4.1 界面工具Interface Builder
4.2 定制基礎(chǔ)控件
4.2.1 定制UIButton
4.2.2 定制UIPickerView以實(shí)現(xiàn)隱
藏功能
4.3 動(dòng)畫特效
4.3.1 UIViewAnimation動(dòng)畫
4.3.2 使用公有CATransition實(shí)現(xiàn)
動(dòng)畫效果
4.3.3 使用私有CATransition實(shí)現(xiàn)
動(dòng)畫效果
4.4 頁(yè)面布局——橫豎屏處理
第5章 數(shù)據(jù)持久化
5.1 Plist文件操作
5.2 NSUserDefaults操作
5.3 SQLite數(shù)據(jù)庫(kù)操作
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ù)庫(kù)模型
5.4.5 創(chuàng)建實(shí)體類
5.4.6 數(shù)據(jù)庫(kù)操作
第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拖動(dòng)以顯示更多數(shù)據(jù)
第7章 文件I/O
7.1 文件系統(tǒng)
7.2 文件管理
7.2.1 讀取并顯示對(duì)應(yīng)目錄下的文
件
7.2.2 獲取文件屬性信息
7.2.3 創(chuàng)建文件夾
7.2.4 創(chuàng)建文件
7.2.5 刪除文件
7.3 本地?cái)?shù)據(jù)存儲(chǔ)規(guī)則
第8章 硬件和通信
8.1 攝像頭
8.1.1 拍照
8.1.2 攝像
8.1.3 定制拍照界面
8.2 加速度計(jì)
8.2.1 加速度計(jì)原理
8.2.2 加速度計(jì)使用
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 訪問(wèn)照片
9.2 聲音
9.2.1 System Sound Services
9.2.2 音頻
9.3 視頻
第10章 定位和地圖
10.1 基礎(chǔ)知識(shí)
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解析庫(kù)
12.2.2 NSXMLParser
12.2.3 第三方解析器
12.2.4 編寫簡(jiǎn)單天氣解析應(yīng)用
12.3 解析JSON
12.3.1 iPhone的JSON
12.3.2 JSON解析庫(kù)
第13章 多線程編程
13.1 UNIX多線程機(jī)制的使用
13.2 NSThread創(chuàng)建多線程的方法
13.2.1 線程的創(chuàng)建與啟動(dò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簡(jiǎn)
介
14.2.2 OpenGL ES在iPhone繪圖
中的應(yīng)用
第15章 調(diào)試和優(yōu)化
15.1 常見錯(cuò)誤
15.1.1 版本錯(cuò)誤
15.1.2 證書錯(cuò)誤
15.1.3 編寫錯(cuò)誤
15.1.4 導(dǎo)入錯(cuò)誤
15.2 調(diào)試跟蹤
15.2.1 使用調(diào)試器
15.2.2 使用日志
15.3 使用Instruments
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 業(yè)務(wù)模型還有一個(gè)很重要的模型,那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫(kù),需要時(shí)從數(shù)據(jù)庫(kù)獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫(kù)的操作只限制在該模型中。 (2)視圖(View)層 視圖即為用戶交互界面。對(duì)于Web應(yīng)用來(lái)說(shuō),可以是HTML界面,也有可能是XHTML、XML和Applet界面。隨著應(yīng)用復(fù)雜程度和規(guī)模的提升,界面的處理也變得越來(lái)越有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC僅限于視圖上數(shù)據(jù)的采集、處理以及用戶的請(qǐng)求,而不包括視圖上業(yè)務(wù)流程的處理。業(yè)務(wù)流程交由模型(Model)處理。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并進(jìn)行顯示,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制器和模型。 (3)控制器(Controller)層 控制器主要負(fù)責(zé)從用戶接收請(qǐng)求,并將模型與視圖整合在一起,共同完成相關(guān)任務(wù)。它像一個(gè)分發(fā)器,清楚地告訴開發(fā)者,可以選擇什么樣的模型和什么樣的視圖,完成什么樣的用戶請(qǐng)求??刂茖颖旧聿蛔鋈魏蔚臄?shù)據(jù)處理,例如用戶點(diǎn)擊一個(gè)鏈接,控制層接受請(qǐng)求后,并不處理業(yè)務(wù)信息,只是把用戶的信息傳遞給模型,告訴模型做什么,然后選擇符合要求的視圖返回給用戶。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖也可能對(duì)應(yīng)多個(gè)模型。 2)MVC的優(yōu)點(diǎn) MVC要求對(duì)應(yīng)用分層,雖然會(huì)增加額外的工作,但產(chǎn)品的結(jié)構(gòu)清晰,其應(yīng)用通過(guò)模型可以得到更好的體現(xiàn)。具體表現(xiàn)如下: ①具有多個(gè)視圖對(duì)應(yīng)一個(gè)模型的能力。在目前用戶需求快速變化的情況下,可能希望通過(guò)多種方式訪問(wèn)應(yīng)用。例如,訂單模型可能有本系統(tǒng)的訂單,也有網(wǎng)上訂單,或者其他系統(tǒng)的訂單,不管是哪種,對(duì)訂單的處理都是一樣的,也就是說(shuō)訂單的處理是一致的。按MVC設(shè)計(jì)模式,一個(gè)訂單模型及多個(gè)視圖即可解決問(wèn)題。這樣既減少了代碼的重復(fù),又減少了代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。 ②由于模型返回的數(shù)據(jù)不帶任何顯示格式,為此這些模型也可直接應(yīng)用于接口。 ③由于一個(gè)應(yīng)用被分離為三層,因此有時(shí)僅改變其中的一層就能滿足應(yīng)用的變化需求。當(dāng)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則改變時(shí)只需改動(dòng)MVC的模型層,其他兩層可保持不變。 ④由于控制層是把不同的模型和不同的視圖組合在一起完成不同的請(qǐng)求,因此,控制層可以說(shuō)是包含了用戶請(qǐng)求權(quán)限的概念。 ⑤MVC模式有利于軟件工程化管理。由于不同的層各司其職,每一層的不同應(yīng)用間具有某些相同的特征,有利于通過(guò)工程化、工具化產(chǎn)生管理程序代碼。 3)MVC的不足 MVC的不足體現(xiàn)在以下幾個(gè)方面: ①增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對(duì)于簡(jiǎn)單的界面,如果嚴(yán)格遵循MVC模式,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過(guò)多的更新操作,降低運(yùn)行效率。 ②視圖與控制器的聯(lián)系仍過(guò)于緊密。視圖與控制器是既相互分離又確實(shí)聯(lián)系緊密的部件,沒(méi)有控制器,視圖的應(yīng)用會(huì)很有限,反之亦然,這樣就妨礙了它們的獨(dú)立重用。 ③視圖對(duì)模型數(shù)據(jù)的訪問(wèn)效率比較低。依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。對(duì)未變化數(shù)據(jù)的不必要的頻繁訪問(wèn),也降低了操作性能。
編輯推薦
《移動(dòng)開發(fā)技術(shù)叢書:iOS開發(fā)實(shí)戰(zhàn)體驗(yàn)》適用于iOS初中級(jí)開發(fā)者參考用書、高等院校及社會(huì)培訓(xùn)機(jī)構(gòu)教材、自學(xué)人員學(xué)習(xí)用書。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
ios開發(fā)實(shí)戰(zhàn)體驗(yàn) PDF格式下載