出版時間:2010-1 出版社:人民郵電出版社 作者:喬納森 頁數(shù):351
Tag標(biāo)簽:無
前言
參與iPhone破解開發(fā)社區(qū)這么久以來,我常常被問到一個問題,那就是:你覺得iPhoneSDK到底怎么樣。對于購買了本書的讀者,我需要花點工夫給出答案。簡而言之,蘋果公司的iPhone SDK帶來了一些非常棒的高層功能,厘清了一種可怕的混亂局面。然而,深深埋藏在SDK怡人外表之下的,卻是一組無序的、設(shè)計低劣的框架,但是這些低劣之物中的某些成員卻又非常適用于一些SDK所不適合的領(lǐng)域。無疑,對于想要針對AppStore進行開發(fā)的人而言,依靠SDK已經(jīng)足可以編寫出質(zhì)量優(yōu)秀、功能強大的應(yīng)用程序(若非如此,我也不會寫這本書)。對于大多數(shù)希望開發(fā)出不錯的軟件的開發(fā)者來說,SDK所提供的接口已經(jīng)足夠了,不過大多數(shù)人并不清楚他們到底錯過了哪些功能。而對那些在開源世界里成長起來的人來說,iPhone的SDK不過是滄海一粟。你現(xiàn)在可以了解到,開發(fā)者接口有兩組:SDK提供的,以及蘋果公司自己使用的。盡管這二者之間有一定重疊,但是在我的另外一本書iPhone Open Application Development中介紹的許多類與框架,都會是你聞所未聞的。你對它們聞所未聞,是因為它們并不存在于SDK當(dāng)中。我們iPhone破解開發(fā)社區(qū)中的許多人通過直接破解iPhone的操作系統(tǒng)而發(fā)現(xiàn)了它們。我們經(jīng)過日以周計的工作,導(dǎo)出類與符號表,不斷進行出錯查錯的試驗,最終拼湊出了iPhone用戶界面包以及其他許多框架的“基因圖譜”,其中包括許多現(xiàn)在仍然處于保密狀態(tài)的接口。通過開源工具鏈構(gòu)建iPhone軟件的開發(fā)者,使用的正是這些底層API。我們發(fā)現(xiàn),蘋果公司的許多應(yīng)用程序也同樣正是利用了這些底層API,從而可以做到一些SDK根本不允許的行為。
內(nèi)容概要
本書全面概括了使用蘋果公司官方SDK為iPhone/iPod Touch開發(fā)應(yīng)用程序的方方面面,包括開發(fā)工具、編程語言和各種框架庫。書中全方位覆蓋了iPhone編程,包括UIKit、多點觸摸、Quartz Core、音頻、視頻、地理定位、地址簿、網(wǎng)絡(luò)編程等內(nèi)容,詳細介紹了UIKit組件,并配以實用的例子,簡要介紹了Objective-C,重點講解其與C/C++的異同之處,并介紹了幾種Objective-C特有的語法概念。本書還專門介紹如何自行編碼實現(xiàn)專用高級特效:CoverFlow和Flip Page。 本書適合具有一定編程經(jīng)驗同時又希望進行iPhone開發(fā)的程序員閱讀。書中的各種提示和技巧無論對iPhone開發(fā)的新手和資深程序員都大有裨益,本書還可以作為iPhone SDK開發(fā)的參考手冊,在需要時快速查找特定組件的相關(guān)內(nèi)容。
作者簡介
Jonathan Zdziarski是全職進行研究的科學(xué)家,同時也是資深的移動設(shè)備黑客,在破解iPhone環(huán)境以便進行第三方軟件開發(fā)的過程中扮演了重要角色。他是O’Reilly的iPhone Open Application Development和iPhone Forensics兩書的作者。
書籍目錄
第1章 iPhone SDK初探 1.1 應(yīng)用程序剖析 1.1.1 Xcode揭密 1.2 安裝iPhone SDK 1.2.1 開發(fā)所需資源 1.2.2 iPhone模擬器 1.2.3 下載并安裝iPhone SDK 1.3 配備iPhone 1.4 構(gòu)建并安裝應(yīng)用程序 1.4.1 模型-視圖-控制器 1.4.2 應(yīng)用程序模板 1.4.3 Xcode項目布局 1.4.4 原型 1.4.5 添加框架 1.4.6 設(shè)置活躍SDK 1.4.7 構(gòu)建應(yīng)用程序 1.4.8 安裝應(yīng)用程序 1.5 轉(zhuǎn)換到Objective-C 1.5.1 消息機制 1.5.2 類和方法的聲明 1.5.3 實現(xiàn) 1.5.4 屬性 1.5.5 協(xié)議 1.5.6 類別 1.5.7 替位 1.5.8 其他資源 第2章 Interface Builder:Xcode中制作GUI的GUI 2.1 窗口、視圖和視圖控制器 2.2 現(xiàn)有模板 2.3 新建模板 2.4 用戶界面元素 2.4.1 控制器 2.4.2 數(shù)據(jù)視圖 2.4.3 輸入和數(shù)據(jù) 2.4.4 窗口、視圖和欄 2.5 查看器 2.6 設(shè)計UI 2.6.1 窗口 2.6.2 視圖控制器 2.6.3 視圖 2.6.4 創(chuàng)建視圖間聯(lián)系 2.6.5 在代碼中添加聯(lián)系 2.7 從項目中移除Interface Builder 第3章 介紹UI Kit 3.1 基本用戶界面元素 3.2 窗口和視圖 3.2.1 創(chuàng)建窗口和視圖 3.2.2 顯示視圖 3.2.3 史上最無用的應(yīng)用程序:HelloView 3.2.4 行為解釋 3.2.5 從UIView派生 3.2.6 傳統(tǒng)廢柴程序:HelloWorld 3.2.7 行為解釋 3.3 視圖控制器 3.3.1 創(chuàng)建視圖控制器 3.3.2 從Interface Builder載入視圖 3.3.3 方向變換 3.3.4 棄置視圖控制器 3.3.5 使用視圖控制器的Hello World:ControllerDemo 3.3.6 行為解釋 3.3.7 進一步學(xué)習(xí) 3.4 文本視圖 3.4.1 創(chuàng)建文本視圖 3.4.2 賦予內(nèi)容 3.4.3 顯示HTML 3.4.4 網(wǎng)頁源碼閱讀器:SourceReader 3.4.5 行為解釋 3.4.6 進一步學(xué)習(xí) 3.5 導(dǎo)航欄與控制器 3.5.1 創(chuàng)建導(dǎo)航控制器 3.5.2 導(dǎo)航控制器屬性 3.5.3 添加分段控件 3.5.4 添加工具欄 3.5.5 分頁導(dǎo)航練習(xí):PageDemo 3.5.6 行為解釋 3.5.7 進一步學(xué)習(xí) 3.6 轉(zhuǎn)場動畫 3.6.1 創(chuàng)建轉(zhuǎn)場 3.6.2 附加轉(zhuǎn)場 3.6.3 翻頁轉(zhuǎn)場:FlipDemo 3.6.4 行為解釋 3.6.5 進一步學(xué)習(xí) 3.7 操作表單與警報 3.7.1 警報 3.7.2 操作表單 3.7.3 解除操作表單 3.7.4 世界末日(待批準(zhǔn)):EndWorld 3.7.5 行為解釋 3.7.6 進一步學(xué)習(xí) 3.8 表格視圖與控制器 3.8.1 創(chuàng)建表格 3.8.2 表格單元 3.8.3 實現(xiàn)多選 3.8.4 編輯與掃動刪除 3.8.5 重新載入表格 3.8.6 簡單的文件瀏覽器:TableDemo 3.8.7 行為解釋 3.8.8 進一步學(xué)習(xí) 3.9 操縱狀態(tài)欄 3.9.1 隱藏狀態(tài)欄 3.9.2 狀態(tài)欄風(fēng)格 3.9.3 狀態(tài)欄方向 3.10 應(yīng)用程序徽章 3.10.1 顯示應(yīng)用程序徽章 3.10.2 移除應(yīng)用程序徽章 3.10.3 進一步學(xué)習(xí) 3.11 應(yīng)用程序服務(wù) 3.11.1 掛起與復(fù)原 3.11.2 程序終止 3.12 調(diào)用Safari 3.13 發(fā)起電話呼叫 第4章 多點觸摸事件與界面幾何 4.1 界面幾何結(jié)構(gòu)體介紹 4.1.1 CGPoint 4.1.2 CGSize 4.1.3 CGRect 4.2 處理多點觸摸事件 4.2.1 UITouch通知 4.2.2 UIEvent 4.2.3 事件處理 4.2.4 例子:點觸計數(shù)器 4.2.5 例子:單擊并拖曳 4.2.6 處理多點觸摸 4.2.7 捏合檢測:PinchMe 4.2.8 Tracking多點觸摸圖標(biāo)跟蹤:TouchDemo 4.2.9 行為解釋 4.2.10 進一步學(xué)習(xí) 第5章 Quartz Core圖層編程 5.1 了解圖層 5.1.1 圖層層次結(jié)構(gòu) 5.1.2 尺寸與位置 5.1.3 排布與顯示 5.1.4 繪制 5.1.5 變換 5.1.6 圖層動畫 5.1.7 圖層變換 5.1.8 玩轉(zhuǎn)圖層:BounceDemo 5.1.9 行為解釋 5.1.10 進一步學(xué)習(xí) 第6章 喧囂:Audio Toolbox和 AVFoundation 6.1 AVFoundation框架 6.1.1 音頻播放器 6.1.2 播放器屬性 6.1.3 播放聲音 6.1.4 代理方法 6.1.5 儀表計數(shù) 6.2 構(gòu)建一個VU表:AVMeter 6.2.1 行為解釋 6.2.2 進一步學(xué)習(xí) 6.3 音頻服務(wù) 6.3.1 行為解釋 6.4 音頻隊列 6.4.1 音頻隊列的結(jié)構(gòu) 6.4.2 供應(yīng)音頻輸出 6.4.3 音頻緩沖區(qū) 6.4.4 回調(diào)函數(shù) 6.4.5 音量控制 6.4.6 例子:PCM播放器 6.4.7 行為解釋 6.4.8 進一步學(xué)習(xí) 6.5 錄音 6.5.1 音頻隊列結(jié)構(gòu)體 6.5.2 供應(yīng)音頻輸入 6.5.3 音頻緩沖區(qū) 6.5.4 回調(diào)函數(shù) 6.5.5 訪問原始數(shù)據(jù) 6.5.6 寫入文件 6.5.7 例子:錄音機 6.5.8 行為解釋 6.5.9 進一步學(xué)習(xí) 6.6 振動 第7章 CFNetwork網(wǎng)絡(luò)編程 7.1 套接字編程基礎(chǔ) 7.1.1 套接字類型 7.1.2 CFSocket 7.1.3 CFSocketContext 7.1.4 套接字流 7.1.5 CFSocket例子:笑話服務(wù)器 7.1.6 進一步學(xué)習(xí) 7.2 CFHTTP與CFFTP 7.2.1 CFHTTP 7.2.2 CFFTP 7.2.3 進一步學(xué)習(xí) 第8章 定位:Core Location 8.1 Core Location管理器 8.1.1 查詢參數(shù) 8.1.2 提交查詢 8.1.3 接收更新 8.1.4 完成查詢 8.1.5 錯誤處理 8.1.6 土話Core Location:WhereYouAt 8.1.7 行為解釋 8.1.8 進一步學(xué)習(xí) 第9章 地址簿框架 9.1 訪問地址簿 9.1.1 高層地址簿函數(shù) 9.1.2 查詢地址簿 9.1.3 創(chuàng)建記錄 9.1.4 操縱記錄 9.1.5 多值屬性 9.1.6 使用字典 9.1.7 圖像數(shù)據(jù) 9.1.8 進一步學(xué)習(xí) 9.2 地址簿界面 9.2.1 聯(lián)系人視圖 9.2.2 聯(lián)系人選取器 9.2.3 進一步學(xué)習(xí) 第10章 UI Kit進階設(shè)計 10.1 通用控件 10.1.1 基類UIControl 10.1.2 分段控件 10.1.3 開關(guān) 10.1.4 滑塊 10.1.5 文本字段控件 10.1.6 按鈕 10.1.7 分頁控件 10.1.8 進一步學(xué)習(xí) 10.2 偏好設(shè)置表格 10.2.1 創(chuàng)建偏好設(shè)置表格 10.2.2 顯示偏好設(shè)置表格 10.2.3 偏好設(shè)置表格的例子:ShootStuffUp 10.2.4 行為解釋 10.2.5 進一步學(xué)習(xí) 10.3 分段列表 10.3.1 創(chuàng)建分段列表 10.3.2 添加索引條 10.3.3 顯示分段列表 10.3.4 一個更好的文件瀏覽器:TableDemo 10.3.5 行為解釋 10.3.6 進一步學(xué)習(xí) 10.4 進度與活動指示器 10.4.1 小小轉(zhuǎn)子:UIActivityIndicatorView 10.4.2 嫌轉(zhuǎn)子俗就用UIProgressView 10.4.3 網(wǎng)絡(luò)活動指示器 10.4.4 進一步學(xué)習(xí) 10.5 圖像 10.5.1 圖像對象 10.5.2 玩轉(zhuǎn)圖像和圖案:ImageFun 10.5.3 圖像視圖:UIImageView 10.5.4 圖像選取器 10.6 鍵盤屬性 10.6.1 鍵盤風(fēng)格 10.6.2 鍵盤外觀 10.6.3 回車鍵 10.6.4 自動大寫 10.6.5 自動更正 10.6.6 安全文本輸入 10.7 選取器 10.7.1 創(chuàng)建選取器 10.7.2 顯示選取器 10.7.3 讀取選取器 10.7.4 挑選你的鼻子:NosePicker 10.7.5 行為解釋 10.7.6 進一步學(xué)習(xí) 10.8 時間/日期選取器 10.8.1 創(chuàng)建時間/日期選取器 10.8.2 顯示日期選取器 10.8.3 讀取日期 10.8.4 選取獨立日:DatePicker 10.8.5 行為解釋 10.8.6 進一步學(xué)習(xí) 10.9 標(biāo)簽欄 10.9.1 標(biāo)簽欄控制器 10.9.2 構(gòu)建一個標(biāo)簽欄控制器 10.9.3 可定制按鈕 10.9.4 導(dǎo)航 10.9.5 代理的動作 10.9.6 又一個教科書式的例子:TabDemo 10.9.7 行為解釋 10.9.8 進一步學(xué)習(xí) 10.10 感應(yīng)器與設(shè)備信息 10.10.1 讀取設(shè)備方向 10.10.2 讀取設(shè)備信息 10.10.3 讀取加速計 10.10.4 近距離感應(yīng)器 10.10.5 進一步學(xué)習(xí) 10.11 滾動視圖 10.11.1 創(chuàng)建滾動視圖 10.11.2 屬性 10.11.3 代理方法 10.11.4 滾動中的氣象地圖:BigImage 10.11.5 行為解釋 10.11.6 進一步學(xué)習(xí) 10.12 網(wǎng)頁視圖 10.12.1 創(chuàng)建網(wǎng)頁視圖 10.12.2 顯示網(wǎng)頁視圖 10.12.3 加載內(nèi)容 10.12.4 導(dǎo)航 10.12.5 代理方法 10.12.6 Google搜索工具:WebDemo 10.12.7 行為解釋 10.12.8 進一步學(xué)習(xí) 第11章 應(yīng)用程序設(shè)定 11.1 字典和屬性列表 11.1.1 創(chuàng)建字典 11.1.2 管理關(guān)鍵字 11.1.3 寫入屬性列表 11.1.4 讀取屬性列表 11.1.5 進一步學(xué)習(xí) 11.2 偏好設(shè)置束 11.2.1 添加關(guān)鍵字 11.2.2 讀取偏好設(shè)置束的值 11.2.3 進一步學(xué)習(xí) 第12章 Cover Flow 12.1 用SDK編寫Cover Flow:CovertFlow 12.1.1 行為解釋 12.1.2 進一步學(xué)習(xí) 第13章 頁面翻轉(zhuǎn) 13.1 頁面翻轉(zhuǎn)的例子:PageControl 13.1.1 行為解釋 13.1.2 進一步學(xué)習(xí) 13.2 用于多個視圖的PageScrollView 13.2.1 行為解釋 第14章 媒體播放器框架 14.1 電影播放器控件 14.1.1 屬性 14.1.2 開始和停止播放電影 14.1.3 通知 14.1.4 進一步學(xué)習(xí)
章節(jié)摘錄
插圖:如果你是Macintosh世界的新手,也許會驚奇地發(fā)現(xiàn)應(yīng)用程序并不是.exe文件的形式。蘋果公司的卓越設(shè)計著稱于世,不僅體現(xiàn)在硬件和圖形方面,也同樣延伸到了軟件架構(gòu)的領(lǐng)域,其中就包括應(yīng)用程序在文件系統(tǒng)上的組織方式。這種應(yīng)用于蘋果桌面系統(tǒng)中的策略,也被原樣引入到了iPhone系統(tǒng)中。蘋果采取的策略,就是創(chuàng)建一種模塊化、自包含的應(yīng)用程序,這種應(yīng)用程序僅由其自身內(nèi)部的文件資源構(gòu)成。因此,安裝應(yīng)用程序非常容易,將其拖曳到應(yīng)用程序文件夾即可;刪除應(yīng)用程序同樣輕松,將其拖曳到廢紙簍即可。在本章中,我們將研究iPhone應(yīng)用程序的結(jié)構(gòu)、運行iPhone SDK、探索蘋果公司的Xcode IDE,并學(xué)習(xí)如何在iPhone上安裝應(yīng)用程序。最后,我們將介紹Objective-C語言及其特質(zhì),以便能從C和C++語言輕松過渡。1.1 應(yīng)用程序剖析蘋果公司想出了一種優(yōu)雅的方式來在操作系統(tǒng)中存放應(yīng)用程序。由于OS x是基于UNIX的平臺,因此蘋果公司希望它能符合基本的UNIX文件約定,所以古舊的資源分支方案就不敷使用了(就這一點來說,也不夠高效)。挑戰(zhàn)是:要設(shè)計一種結(jié)構(gòu),既能讓一個應(yīng)用程序仍然可以自包含,同時在那些不想用專有的權(quán)宜之計來破壞自己架構(gòu)的文件系統(tǒng)上也可以使用。解決方案來自于Mac OS x的前身,也就是名為NeXT的系統(tǒng),它將應(yīng)用程序視為一個目錄(directory)所構(gòu)成的束(bundle)。束這個概念引入了一種方法,可以聚合應(yīng)用程序資源、二進制文件和其他相關(guān)文件。
編輯推薦
《AppStore掘金:iPhone SDK應(yīng)用程序開發(fā)》提供了極其實用的知識與代碼,教你使用蘋果公司的SDK為iPhone和iPod Touch創(chuàng)建移動應(yīng)用程序和游戲?!禔ppStore掘金:iPhone SDK應(yīng)用程序開發(fā)》通過大量的例子介紹了這一開發(fā)模式及其所使用的Objective-C語言,同時也將帶你領(lǐng)略設(shè)計功能全面的應(yīng)用程序所必需的各種SDK框架?!禔ppStore掘金:iPhone SDK應(yīng)用程序開發(fā)》將助你完成下列功能:使用Interface Builder和UI Kit框架設(shè)計用戶界面元素;創(chuàng)建應(yīng)用程序控件,如窗口和導(dǎo)航欄等;使用Core Graphics和Quartz Core創(chuàng)建并且管理圖層和圖像變換;通過AVFoundation對聲音文件進行混音并播放,使用Audio Toolbox錄制并回放數(shù)字音頻流;使用CFNetwork框架進行網(wǎng)絡(luò)編程;用Core Location框架操作iPhone的GPS;在應(yīng)用程序中加入視頻播放器。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載