向下一代iOS應(yīng)用開發(fā)前進(jìn),你準(zhǔn)備好了嗎。
伴隨著應(yīng)用的下載量超過(guò)5百萬(wàn),而且這一數(shù)字仍在增長(zhǎng),應(yīng)用開發(fā)可以說(shuō)是獲利頗豐,但是你必須能夠脫穎而出。為此,你的應(yīng)用需要集成高級(jí)功能。
通過(guò)利用可用的iOS框架,使用現(xiàn)代的Objective-C編程規(guī)則的方式,本書將逐步引導(dǎo)你創(chuàng)建高級(jí)iOS應(yīng)用。貫穿全部章節(jié),你將發(fā)現(xiàn)70個(gè)貼合實(shí)際的示例程序,你可以下載這些示例并以此為起點(diǎn)。使用本指南,你將能夠創(chuàng)建最前沿的應(yīng)用,并為發(fā)布到App Store做好準(zhǔn)備。
我第一次與計(jì)算機(jī)結(jié)緣是15歲那年在荷蘭讀高等技術(shù)學(xué)校時(shí),在那里我結(jié)識(shí)了Sinclair ZX-81。這是一臺(tái)只有16KB內(nèi)存的小型計(jì)算機(jī),但是它很神奇,我從接觸它的第一天起就開始了我的編程生涯。
在1981年,當(dāng)硬件和軟件革命開始時(shí),我又使用了Exidy Sourcer和Commodore 64計(jì)算機(jī),很快我又有了我的第一臺(tái)個(gè)人電腦XT(IBM Personal Computer XT)。讓我著迷的事實(shí)是,你可以通過(guò)編程讓計(jì)算機(jī)去精確地執(zhí)行想要它們做的事情。而且,我能夠?yàn)檫@些計(jì)算機(jī)的系統(tǒng)開發(fā)軟件。
我開始用匯編語(yǔ)言編程,在一段時(shí)間后,我學(xué)會(huì)了用C、Basic、QuickBasic、Delphi、Pascal、Turbo Pascal、C++、Java、Microsoft VB.NET、Microsoft C#和Objective-C等語(yǔ)言編程。編程成為了我的職業(yè),我熱愛(ài)這份職業(yè)。
不管怎樣,像許多程序員一樣,由于之前已經(jīng)獲得的知識(shí)和技能,我做了分析師、軟件工程師和顧問(wèn),并最終進(jìn)入了管理崗位。我的編程時(shí)間開始變得越來(lái)越少,而這卻是我最喜歡做的事。
在我的職業(yè)生涯中,我管理和共同成立了幾家IT服務(wù)公司,并在這些公司中擔(dān)任項(xiàng)目經(jīng)理、商業(yè)顧問(wèn)和董事,但是我總是能夠在這些項(xiàng)目中找到時(shí)間去做一些軟件開發(fā)工作。
在這些年里,我曾經(jīng)給一些大公司交付過(guò)高端軟件解決方案,例如富士膠片公司(Fuji Photo Film)、殼牌公司(Shell)、聯(lián)合利華公司(Unilever)、普利斯通公司(Bridgestone)、阿爾卡特(Alcate)、理光公司(Ricoh)以及全世界的其他許多公司。我不是圖像設(shè)計(jì)師,并且設(shè)計(jì)應(yīng)用的視覺(jué)效果并不是我的強(qiáng)項(xiàng)。我向來(lái)關(guān)注于代碼優(yōu)化和新技術(shù)的探索。開發(fā)出高階面向?qū)ο蟮拇a而又使用極少內(nèi)存占用空間的設(shè)計(jì)仍舊是一項(xiàng)挑戰(zhàn)。
在2006年,我決定拋棄荷蘭的繁忙生活,搬到法國(guó),在那里我成立了一家軟件公司,專注于開發(fā)后端的軟件解決方案,不久后,也專注于開發(fā)iOS應(yīng)用。
我的專業(yè)團(tuán)隊(duì)現(xiàn)在為澳大利亞、歐洲和美國(guó)的客戶開發(fā)iPhone和iPad應(yīng)用,在這一領(lǐng)域內(nèi),我們使用最新的SDK和現(xiàn)代程序開發(fā)實(shí)踐,并交付從后端的管理系統(tǒng)到iOS應(yīng)用的端到端的解決方案。
本書讀者對(duì)象
這本書適用于想要提高和擴(kuò)展Objective-C語(yǔ)言編程技能的開發(fā)人員、有經(jīng)驗(yàn)的iOS開發(fā)者以及毫無(wú)經(jīng)驗(yàn)的iOS開發(fā)新人。
本書需要讀者掌握Xcode開發(fā)環(huán)境的一些基本知識(shí)和Objective-C語(yǔ)言開發(fā)的基礎(chǔ),這樣能夠理解本書提供的詳細(xì)而深入的說(shuō)明,以及70個(gè)編程示例代碼。
本書在介紹開發(fā)高級(jí)iOS應(yīng)用所涉及的技術(shù)方面,對(duì)想要加深理解其內(nèi)容的每一位讀者和iOS開發(fā)人員都很有價(jià)值。本書可以被當(dāng)作參考書來(lái)使用,用以理解iOS SDK的細(xì)節(jié)。
本書包含編程技巧的詳細(xì)說(shuō)明,以及70個(gè)示例代碼,這也使本書成為大學(xué)教授和培訓(xùn)師的理想教材。
本書主要內(nèi)容:
本書涵蓋了開發(fā)高級(jí)iOS應(yīng)用所需要的所有主題。所有的說(shuō)明和代碼示例都適用于最新的iOS 7 SDK并經(jīng)過(guò)測(cè)試。
本書涵蓋以下主題范圍:
●創(chuàng)建Personal Library
●UITableView
●Map Kit框架
●Action和Alert概述
●國(guó)際化
●在你的應(yīng)用中使用多媒體
●使用Web服務(wù)和XML-JSON解析
●開發(fā)FTP客戶端
●Core Data框架的實(shí)現(xiàn)
●使用通知
●實(shí)現(xiàn)E-mail、SMS和撥號(hào)功能
●Address Book框架的介紹和使用
●Event Kit框架編程
●Social and Accounts框架的使用
●分析你的應(yīng)用
●從應(yīng)用獲利和Store Kit框架的使用
●證書和配置文件
●打包和發(fā)布你的應(yīng)用
Interface Builder和Storyboard的用法,以及用戶界面設(shè)計(jì)范例
每個(gè)iOS程序員在他們的應(yīng)用中如何創(chuàng)建用戶界面元素都有個(gè)人的喜好。在我自己的工作中,我使用代碼創(chuàng)建所有的用戶界面元素,因?yàn)槲蚁矚g這種方式帶來(lái)的可控性和可擴(kuò)展性。因此,在這本書的絕大多數(shù)的課程中,你將發(fā)現(xiàn)使用Interface Build文件。例如,有些開發(fā)者更喜歡使用Storyboard,在任何項(xiàng)目中,他們都可以使用Storyboard代替Interface Builder,你也可以如此選擇。這本書在兩種情況下對(duì)開發(fā)者來(lái)說(shuō)應(yīng)該都有用處。
本書篇章結(jié)構(gòu)
本書分為4個(gè)部分:
●第Ⅰ部分:開發(fā)高級(jí)UI
●第Ⅱ部分:網(wǎng)絡(luò)和數(shù)據(jù)處理
●第Ⅲ部分:集成應(yīng)用
●第Ⅳ部分:將應(yīng)用運(yùn)用到生產(chǎn)環(huán)境中
第Ⅰ部分:開發(fā)高級(jí)UI包含以下章節(jié):
●第1章:創(chuàng)建Personal Library
●第2章:Tableview進(jìn)階指南
●第3章:Map Kit框架
●第4章:ActionView和Alert概述
●第5章:國(guó)際化:為全世界構(gòu)建應(yīng)用
●第6章:多媒體的使用
第1章以開發(fā)包含可重用代碼的Personal Library類為開頭,你可以將這些代碼用作基礎(chǔ)框架在每一個(gè)應(yīng)用中使用。在后續(xù)的章節(jié)中,你將用更多的功能擴(kuò)展這個(gè)Personal Library類。
第2章將教你構(gòu)建讓人眼前一亮的表視圖的方法,你將學(xué)會(huì)如何構(gòu)建帶有下拉即出現(xiàn)搜索條功能的表視圖。
第3章全部是關(guān)于Map Kit框架的內(nèi)容。你將了解位置管理器(Location Manager)的概念,并且會(huì)以開發(fā)為目的擴(kuò)展GPS模擬器。你將會(huì)開發(fā)帶有自定義標(biāo)注的群集地圖視圖。
動(dòng)作視圖和提醒控件是第4章要討論的主題內(nèi)容。你將學(xué)會(huì)如何在應(yīng)用中實(shí)現(xiàn)動(dòng)作視圖和提醒控件,與使用應(yīng)用的用戶交互。
第5章將通過(guò)對(duì)本地化的技巧的講解,以及對(duì)國(guó)際化日期和數(shù)字格式的方法的講解,教會(huì)你如何為全世界的用戶國(guó)際化應(yīng)用。
第6章全部介紹的是多媒體。你將學(xué)會(huì)顯示和創(chuàng)建PDF文檔的有效方法,以及使用不同的可用框架播放和錄制音頻或者視頻。
第Ⅱ部分:網(wǎng)絡(luò)和數(shù)據(jù)處理包含以下章節(jié):
●第7章:使用Web服務(wù)和解析
●第8章:使用FTP
●第9章:Core Data框架的實(shí)現(xiàn)
第7章將教會(huì)你如何通過(guò)REST或SOAP協(xié)議使用Web服務(wù),以及如何使用GET和POST動(dòng)作將數(shù)據(jù)發(fā)送給這些Web服務(wù)。對(duì)以XML和JSON格式返回的應(yīng)答信息的解析將在本章的結(jié)尾詳細(xì)闡述。
第8章將講解文件傳送協(xié)議(File Transfer Protocol,F(xiàn)TP)適配iOS應(yīng)用架構(gòu)的方法。還將講解使用Objective-C語(yǔ)言怎樣能夠編寫出簡(jiǎn)單的FTP客戶端。應(yīng)大多數(shù)讀者的進(jìn)一步要求,本章也會(huì)講解基于Objective-C的類編寫一條FTP命令的方法。
第9章將講解所有關(guān)于Core Data框架的內(nèi)容。它闡述了Core Data這個(gè)框架的概念,存儲(chǔ)方法、實(shí)體、關(guān)系以及讀取數(shù)據(jù)的方法。
第Ⅲ部分:集成應(yīng)用包含以下章節(jié):
●第10章:通知
●第11章:發(fā)送電子郵件、SMS和撥打電話
●第12章:了解Address Book
●第13章:事件編程
●第14章:與社交媒體集成
第10章將會(huì)講解實(shí)現(xiàn)內(nèi)部通知和外部推送通知的方法。
第11章將會(huì)講解從應(yīng)用內(nèi)發(fā)送E-mail和短信消息的方法,以及撥打電話的方法。
第12章將會(huì)講解使用Address Book框架讀取和寫入聯(lián)系人數(shù)據(jù)庫(kù)的方法。你將學(xué)會(huì)如何請(qǐng)求訪問(wèn)聯(lián)系人數(shù)據(jù)庫(kù)的權(quán)限,以及為了使用聯(lián)系人數(shù)據(jù)而展示用戶界面。
第13章將會(huì)講解從應(yīng)用內(nèi)創(chuàng)建和管理事件和提醒的方法。
第14章將會(huì)講解在應(yīng)用中內(nèi)部集成Facebook和Twitter的方法。你將學(xué)會(huì)如何展示用戶的Tweet(注:Twitter上用戶發(fā)送的一條消息)和Facebook用戶墻上的留言,以及如何發(fā)表留言到Facebook,或者發(fā)送Tweet。
第Ⅳ部分:將應(yīng)用轉(zhuǎn)化為產(chǎn)品包含以下章節(jié):
●第15章:分析應(yīng)用
●第16章:從應(yīng)用中獲利
●第17章:了解iTunes Connect
●第18章:構(gòu)建與發(fā)布
第15章講解在應(yīng)用中實(shí)現(xiàn)耗用分析的方法。
第16章講解從應(yīng)用中獲利的方法。本章包含了深入的闡述和程序內(nèi)購(gòu)買的輔助類。本章也涵蓋包括像iAd和AdMob在內(nèi)的Advertisement框架的實(shí)現(xiàn)。
第17章講解使用iTunes Connect為應(yīng)用的提交作準(zhǔn)備的方法。理解provisioning profile、certificate和device這幾個(gè)名詞對(duì)能夠發(fā)布應(yīng)用來(lái)說(shuō)是至關(guān)重要的。
第18章,最后一章,講解以Ad-Hoc發(fā)布版,抑或是以App Store發(fā)布版構(gòu)建和發(fā)布應(yīng)用的方法。
使用本書條件
為了編寫iOS應(yīng)用,你需要下載包含有最新iOS SDK的最新版本的Xcode。你可以在這里下載http://developer.apple.com。
本書約定
為了幫助你最大限度地理解文字內(nèi)容并提醒你注意正在介紹的內(nèi)容,我們?cè)诒緯惺褂昧舜罅康囊?guī)范。
源代碼
在練習(xí)書中的示例時(shí),可以選擇手動(dòng)輸入代碼或者使用本書附帶的源代碼文件。書中用到的所有源代碼都可以從www.wrox.com下載。進(jìn)入站點(diǎn)http://www.wrox.com后,只需要找到本書的書名(使用Search搜索框或書名列表),單擊本書詳細(xì)信息頁(yè)面上的Download Code鏈接,就可以得到本書所有的源代碼。
下載完代碼后,用你喜歡的壓縮工具把它解壓縮。此外,也可以去Wrox的主下載頁(yè)面www.wrox.com/dynamic/books/download.aspx 找到本書或Wrox出版的其他書籍的代碼。
勘誤表
盡管我們已經(jīng)盡了各種努力來(lái)保證文章或代碼中不出現(xiàn)錯(cuò)誤,但是錯(cuò)誤總是難免的,如果你在本書中找到了錯(cuò)誤,例如拼寫錯(cuò)誤或代碼錯(cuò)誤,請(qǐng)告訴我們,我們將非常感激。通過(guò)勘誤表,可以讓其他讀者避免受挫,當(dāng)然,這還有助于提供更高質(zhì)量的信息。
要在網(wǎng)站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過(guò)Search工具或書名列表查找本書,然后在本書的細(xì)目頁(yè)面上,單擊Book Errata鏈接。在這個(gè)頁(yè)面上可以查看Wrox編輯已提交和粘貼的所有勘誤項(xiàng)。完整的圖書列表還包括每本書的勘誤表,網(wǎng)址是www.wrox.com/misc-pages/booklist.shtml。
如果在Book Errata頁(yè)面上沒(méi)有看到你找出的錯(cuò)誤,請(qǐng)進(jìn)入www.wrox.com/contact/ techsupport.shtml,填寫表單,發(fā)電子郵件,我們就會(huì)檢查你的信息,如果是正確的,就在本書的勘誤表中粘貼一個(gè)消息,我們將在本書的后續(xù)版本中采用。
p2p.wrox.com
P2P郵件列表是為作者和讀者之間的討論而建立的。讀者可以在p2p.wrox.com上加入P2P論壇。該論壇是一個(gè)基于Web的系統(tǒng),用于傳送與Wrox圖書相關(guān)的信息和相關(guān)技術(shù),與其他讀者和技術(shù)用戶交流。該論壇提供了訂閱功能,當(dāng)論壇上有新帖子時(shí),會(huì)給你發(fā)送你選擇的主題。Wrox作者、編輯和其他業(yè)界專家和讀者都會(huì)在這個(gè)論壇上進(jìn)行討論。
在http://p2p.wrox.com上有許多不同的論壇,幫助讀者閱讀本書,在讀者開發(fā)自己的應(yīng)用程序時(shí),也可以從這個(gè)論壇中獲益。要加入這個(gè)論壇,必須執(zhí)行下面的步驟:
(1) 進(jìn)入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀其內(nèi)容,單擊Agree按鈕。
(3) 提供加入論壇所需的信息及愿意提供的可選信息,單擊Submit按鈕。
(4) 然后就可以收到一封電子郵件,其中的信息描述了如何驗(yàn)證賬戶,完成加入過(guò)程。
加入論壇后,就可以發(fā)送新信息,回應(yīng)其他用戶的帖子?梢噪S時(shí)在Web上閱讀信息。如果希望某個(gè)論壇給自己發(fā)送新信息,可以在論壇列表中單擊該論壇對(duì)應(yīng)的Subscribe to this Forum圖標(biāo)。
對(duì)于如何使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作原理,以及許多針對(duì)P2P和Wrox圖書的常見問(wèn)題解答。要閱讀FAQ,可以單擊任意P2P頁(yè)面上的FAQ鏈接。
第Ⅰ部分 開發(fā)高級(jí)UI
第1章 創(chuàng)建Personal Library3
1.1 創(chuàng)建Personal Library4
1.1.1 項(xiàng)目基礎(chǔ)知識(shí)4
1.1.2 啟動(dòng)新項(xiàng)目5
1.1.3 配置項(xiàng)目6
1.1.4 定義常量8
1.1.5 使用配置文件8
1.1.6 導(dǎo)入頭文件10
1.2 注冊(cè)——登錄11
1.2.1 創(chuàng)建注冊(cè)邏輯12
1.2.2 初始化數(shù)據(jù)15
1.2.3 初始化應(yīng)用的默認(rèn)設(shè)置15
1.2.4 創(chuàng)建登錄邏輯16
1.2.5 保護(hù)密碼的安全19
1.2.6 在keychain中存儲(chǔ)密碼20
1.3 崩潰管理21
1.3.1 理解崩潰21
1.3.2 實(shí)現(xiàn)崩潰處理程序22
1.4 本章小結(jié)28
第2章 Tableview進(jìn)階指南31
2.1 理解UITableView31
2.1.1 datasource和delegate32
2.1.2 滾動(dòng)36
2.2 構(gòu)建聊天視圖控制器39
2.2.1 構(gòu)建datasource40
2.2.2 構(gòu)建聊天數(shù)據(jù)對(duì)象40
2.2.3 構(gòu)建定制的UITableView控件43
2.2.4 靈活的單元格高度47
2.2.5 開發(fā)定制的單元格47
2.2.6 創(chuàng)建聊天用戶對(duì)象51
2.2.7 融會(huì)貫通52
2.3 UITableView的下拉功能58
2.3.1 實(shí)現(xiàn)UISearchbar68
2.3.2 添加字母表索引73
2.4 本章小結(jié)78
第3章 Map Kit框架79
3.1 模擬iOS設(shè)備的位置移動(dòng)80
3.1.1 為何需要一個(gè)GPS模擬器80
3.1.2 創(chuàng)建模擬器80
3.1.3 使用Google Maps創(chuàng)建GPS路線文件84
3.1.4 實(shí)現(xiàn)YDLocation-Simulator類88
3.2 使用標(biāo)記90
3.2.1 創(chuàng)建定制的標(biāo)記91
3.2.2 響應(yīng)標(biāo)記的批注95
3.2.3 標(biāo)記群集101
3.3 本章小結(jié)119
第4章 Action View和Alert概述121
4.1 請(qǐng)求用戶輸入121
4.2 使用多個(gè)選項(xiàng)創(chuàng)建UIActionSheet122
4.3 呈現(xiàn)UIActionSheet126
4.3.1 使用showInView方法來(lái)呈現(xiàn)126
4.3.2 使用showFromTabBar方法來(lái)呈現(xiàn)126
4.3.3 使用showFromBarButtonItem方法來(lái)呈現(xiàn)129
4.3.4 使用showFromRect方法來(lái)呈現(xiàn)130
4.3.5 使用showFromToolbar方法來(lái)呈現(xiàn)132
4.3.6 用戶輸入的響應(yīng)134
4.3.7 處理用戶選項(xiàng)134
4.3.8 擴(kuò)展UIAlertView137
4.3.9 在UIAlertView上添加UITextField137
4.4 本章小結(jié)141
第5章 國(guó)際化:為全世界構(gòu)建應(yīng)用143
5.1 本地化應(yīng)用143
5.1.1 建立本地化144
5.1.2 本地化Interface Builder文件145
5.1.3 本地化字符串147
5.1.4 本地化圖片149
5.1.5 本地化應(yīng)用的名稱152
5.2 使用日期格式152
5.2.1 區(qū)域的概念152
5.2.2 日歷概述156
5.2.3 以通用方式存儲(chǔ)日期158
5.3 使用數(shù)字159
5.4 本章小結(jié)164
第6章 多媒體的使用165
6.1 可攜式文檔格式165
6.2 使用UIWebView顯示PDF文檔166
6.3 Instruments分析工具介紹168
6.4 使用QuickLook顯示PDF文檔170
6.5 從PDF文檔創(chuàng)建縮略圖173
6.6 創(chuàng)建PDF文檔177
6.7 播放和錄制音頻181
6.8 相關(guān)框架介紹181
6.8.1 AVFoundation框架181
6.8.2 Audio Toolbox框架182
6.8.3 Media Player框架182
6.9 播放來(lái)自應(yīng)用包的音頻文件182
6.10 從iTunes庫(kù)中播放音頻187
6.11 播放音頻流190
6.12 錄制音頻193
6.13 播放和錄制視頻198
6.14 從iTunes庫(kù)播放視頻201
6.15 播放YouTube視頻204
6.16 錄制視頻206
6.17 本章小結(jié)209
第Ⅱ部分 網(wǎng)絡(luò)和數(shù)據(jù)處理
第7章 使用Web服務(wù)和解析213
7.1 為什么需要使用Web服務(wù)213
7.2 了解基本網(wǎng)絡(luò)214
7.2.1 了解協(xié)議214
7.2.2 了解操作215
7.2.3 了解響應(yīng)代碼215
7.3 Web服務(wù)簡(jiǎn)介215
7.4 調(diào)用HTTP服務(wù)216
7.4.1 請(qǐng)求網(wǎng)站216
7.4.2 從HTTP URL下載圖片219
7.4.3 使用HTTPS請(qǐng)求安全網(wǎng)站224
7.4.4 使用數(shù)據(jù)塊227
7.5 調(diào)用REST服務(wù)231
7.5.1 構(gòu)建請(qǐng)求232
7.5.2 處理響應(yīng)235
7.5.3 發(fā)布到RESTful服務(wù)241
7.6 發(fā)出SOAP請(qǐng)求248
7.6.1 為請(qǐng)求做準(zhǔn)備250
7.6.2 將值傳遞到操作252
7.6.3 了解安全的SOAP請(qǐng)求257
7.7 更多解析259
7.7.1 逗號(hào)分隔值文件260
7.7.2 將XML轉(zhuǎn)換為NSDictionary266
7.8 本章小結(jié)269
第8章 使用FTP271
8.1 開發(fā)FTP客戶端271
8.1.1 編寫簡(jiǎn)單的FTP客戶端272
8.1.2 下載遠(yuǎn)程文件276
8.1.3 創(chuàng)建遠(yuǎn)程目錄278
8.1.4 列出遠(yuǎn)程目錄279
8.1.5 上傳文件283
8.1.6 從NSStream中讀取284
8.1.7 寫入NSStream284
8.1.8 編寫復(fù)雜的FTP客戶端288
8.2 使用FTP客戶端296
8.3 本章小結(jié)296
第9章 實(shí)現(xiàn)Core Data297
9.1 Core Data簡(jiǎn)介297
9.1.1 為什么應(yīng)使用Core Data298
9.1.2 托管對(duì)象上下文簡(jiǎn)介298
9.1.3 托管對(duì)象模型簡(jiǎn)介298
9.1.4 托管對(duì)象簡(jiǎn)介298
9.1.5 持久性存儲(chǔ)簡(jiǎn)介299
9.1.6 獲取請(qǐng)求簡(jiǎn)介299
9.2 在應(yīng)用中使用Core Data299
9.2.1 創(chuàng)建托管對(duì)象模型300
9.2.2 創(chuàng)建托管對(duì)象302
9.2.3 創(chuàng)建持久性存儲(chǔ)303
9.2.4 設(shè)置Appdelegate304
9.3 在應(yīng)用中使用Core Data307
9.3.1 使用托管對(duì)象307
9.3.2 獲取托管對(duì)象308
9.3.3 使用關(guān)系313
9.3.4 了解模型更改317
9.4 針對(duì)性能進(jìn)行調(diào)優(yōu)322
9.4.1 優(yōu)化保存326
9.4.2 配置托管對(duì)象上下文327
9.5 通過(guò)Core Data實(shí)現(xiàn)并發(fā)328
9.6 本章小結(jié)330
第III部分 集成應(yīng)用
第10章 通知333
10.1 實(shí)現(xiàn)本地通知333
10.1.1 了解本地通知333
10.1.2 創(chuàng)建通知335
10.1.3 接收通知338
10.2 了解推送通知338
10.2.1 配置開發(fā)者門戶340
10.2.2 獲取證書343
10.2.3 通過(guò)Urban Airship實(shí)現(xiàn)345
10.3 外部通知348
10.3.1 自定義URL模式348
10.3.2 響應(yīng)URL請(qǐng)求349
10.4 本章小結(jié)350
第11章 發(fā)送電子郵件、SMS和撥打電話351
11.1 發(fā)送電子郵件351
11.1.1 撰寫電子郵件352
11.1.2 使用附件354
11.2 發(fā)送SMS(文本消息)354
11.2.1 驗(yàn)證SMS是否可用355
11.2.2 撰寫文本消息355
11.3 撥打電話號(hào)碼356
11.4 本章小結(jié)357
第12章 了解Address Book359
12.1 Address Book框架簡(jiǎn)介359
12.2 訪問(wèn)Address Book360
12.2.1 選擇聯(lián)系人360
12.2.2 請(qǐng)求訪問(wèn)權(quán)限362
12.2.3 顯示并編輯聯(lián)系人365
12.2.4 創(chuàng)建聯(lián)系人367
12.2.5 刪除聯(lián)系人369
12.3 以編程方式訪問(wèn)Address Book370
12.3.1 了解Address Book370
12.3.2 了解記錄373
12.3.3 了解屬性374
12.3.4 以編程方式創(chuàng)建聯(lián)系人375
12.3.5 以編程方式刪除聯(lián)系人378
12.4 本章小結(jié)378
第13章 事件編程379
13.1 Event Kit框架簡(jiǎn)介379
13.2 使用EventKitUI框架380
13.2.1 請(qǐng)求訪問(wèn)權(quán)限380
13.2.2 訪問(wèn)日歷382
13.2.3 創(chuàng)建和編輯日歷事件384
13.3 以編程方式訪問(wèn)Calendar數(shù)據(jù)庫(kù)385
13.3.1 創(chuàng)建事件385
13.3.2 編輯事件390
13.3.3 刪除事件390
13.3.4 保持同步390
13.4 使用提醒391
13.4.1 創(chuàng)建提醒391
13.4.2 編輯提醒392
13.4.3 刪除提醒392
13.4.4 使用警報(bào)392
13.5 本章小結(jié)394
第14章 與社交媒體集成395
14.1 社交媒體集成簡(jiǎn)介395
14.2 了解Accounts框架396
14.3 了解Social框架400
14.3.1 發(fā)帖401
14.3.2 檢索推文409
14.4 與Facebook集成411
14.5 創(chuàng)建單點(diǎn)登錄應(yīng)用418
14.6 本章小結(jié)423
第Ⅳ部分 將應(yīng)用運(yùn)用到生產(chǎn)環(huán)境中
第15章 分析應(yīng)用427
15.1 執(zhí)行技術(shù)分析427
15.1.1 應(yīng)用崩潰428
15.1.2 阻止主線程428
15.1.3 內(nèi)存泄漏429
15.1.4 使用同步的HTTP請(qǐng)求429
15.1.5 廣泛的帶寬使用率430
15.1.6 電池消耗434
15.1.7 糟糕的用戶界面436
15.2 執(zhí)行商業(yè)分析436
15.3 本章小結(jié)437
第16章 從應(yīng)用中獲利439
16.1 獲利簡(jiǎn)介439
16.1.1 付費(fèi)應(yīng)用439
16.1.2 廣告440
16.1.3 In-App Purchases440
16.1.4 訂閱440
16.1.5 潛在客戶開發(fā)440
16.1.6 加盟銷售441
16.2 開發(fā)In-App Purchases441
16.2.1 In-App Purchase簡(jiǎn)介441
16.2.2 注冊(cè)產(chǎn)品441
16.2.3 選擇產(chǎn)品類型441
16.2.4 了解In-App Purchase進(jìn)程442
16.2.5 實(shí)現(xiàn)In-App Purchase443
16.3 從廣告中獲利464
16.3.1 iAd框架簡(jiǎn)介464
16.3.2 實(shí)現(xiàn)AdMob網(wǎng)絡(luò)467
16.4 本章小結(jié)470
第17章 了解iTunes Connect471
17.1 iOS開發(fā)者會(huì)員中心472
17.1.1 獲取開發(fā)者證書472
17.1.2 管理設(shè)備476
17.1.3 管理應(yīng)用479
17.1.4 創(chuàng)建開發(fā)配置文件484
17.1.5 創(chuàng)建發(fā)布配置文件488
17.2 本章小結(jié)491
第18章 構(gòu)建與發(fā)布493
18.1 App Store審核493
18.1.1 了解審核指南493
18.1.2 了解審核流程494
18.1.3 了解拒絕狀態(tài)496
18.1.4 避免各種常見誤區(qū)496
18.2 為Ad Hoc發(fā)布構(gòu)建應(yīng)用497
18.2.1 構(gòu)建應(yīng)用497
18.2.2 發(fā)布后進(jìn)行測(cè)試499
18.3 為App Store發(fā)布構(gòu)建應(yīng)用501
18.4 本章小結(jié)507
附錄A 音頻代碼509
附錄B 圖片尺寸513