從開發(fā)者的角度審視iOS 6與iPhone 5
譯文
教程說明
學(xué)習(xí)時(shí)間: 30 分鐘
全新的顯示效果
【2012年9月27日 51CTO外電頭條】在接觸iPhone 5之初,我想大家最先注意到的可能就是其屏幕尺寸的改動(dòng)——沒錯(cuò),蘋果終于對經(jīng)典設(shè)計(jì)做出變更,對視網(wǎng)膜屏加以擴(kuò)展。iPhone 4所使用的是3.5英寸(指對角線長度)640 x 960像素的分辨率方案,而iPhone 5則擁有分辨率為640 x 1136像素的4寸屏幕。
作為用戶,我們可能會(huì)對iPhone 5的新外形贊嘆不已;然而從開發(fā)人員的角度來看,這種外形變更其實(shí)非常麻煩——大家肯定一眼就看出,我們必須要讓自己的應(yīng)用支持額外的顯示尺寸。不過雖然新分辨率方案會(huì)加重開發(fā)者的工作負(fù)擔(dān),但好消息在于iOS 6中的SDK擁有一套全新的自動(dòng)布局系統(tǒng),能夠幫助開發(fā)者更輕松地應(yīng)對不同機(jī)型之間屏幕尺寸上的差異。
以下圖表將用數(shù)據(jù)告訴大家iPhone 5在顯示機(jī)制方面與其它iOS設(shè)備間的區(qū)別:
設(shè)備名稱 |
屏幕尺寸 |
分辨率 |
PPI(每英寸像素?cái)?shù)量) |
高寬比 |
iPhone |
3.5英寸 |
320 x 480像素 |
163 PPI |
3:2 |
iPhone 3G |
3.5英寸 |
320 x 480像素 |
163 PPI |
3:2 |
iPhone 3GS |
3.5英寸 |
320 x 480像素 |
163 PPI |
3:2 |
iPhone 4 |
3.5英寸 |
640 x 960像素 |
326 PPI |
3:2 |
iPhone 4S |
3.5英寸 |
640 x 960像素 |
326 PPI |
3:2 |
iPhone 5 |
4英寸 |
640 x 1136像素 |
326 PPI |
16:9 |
iPad |
9.7英寸 |
768 x 1024像素 |
132 PPI |
4:3 |
iPad (2代) |
9.7英寸 |
768 x 1024像素 |
132 PPI |
4:3 |
iPad (3代) |
9.7英寸 |
1536 x 2048像素 |
264 PPI |
4:3 |
幸運(yùn)的是,我們不必完全依賴個(gè)人的力量來處理這些復(fù)雜的屏幕差異。就在去年,蘋果公司為Cocoa開發(fā)工具提供了自動(dòng)布局系統(tǒng),而如今隨著iOS 6的面世該系統(tǒng)也已經(jīng)能與Cocoa – Touch完美協(xié)作。盡管在iOS 6大張旗鼓的新功能宣傳中我們并沒有看到該系統(tǒng)的身影,但自動(dòng)布局系統(tǒng)無疑是一項(xiàng)強(qiáng)大的功能性提升,使得開發(fā)人員能夠以智能、流暢的方式迅速創(chuàng)建出美觀的應(yīng)用程序布局。與傳統(tǒng)的硬性編碼布局不同,自動(dòng)布局方案絕不會(huì)讓開發(fā)者將各個(gè)界面對象強(qiáng)行放在特定的X , Y坐標(biāo)處;恰恰相反,自動(dòng)布局會(huì)引導(dǎo)開發(fā)人員通過數(shù)學(xué)上的術(shù)語來描述各個(gè)對象之間的關(guān)系,其它具體的排布工作以及對象位置調(diào)整則由iOS自動(dòng)完成。在今年6月召開的WWDC大會(huì)上,蘋果公司則著力介紹過這一功能,有興趣的朋友可以再溫習(xí)一下有關(guān)自動(dòng)布局系統(tǒng)的宣傳視頻。
如果大家已經(jīng)在蘋果的App Store中發(fā)布過iPhone應(yīng)用程序,那么首先要做的就是讓這款應(yīng)用趕快適應(yīng)iPhone 5的全新屏幕尺寸。因?yàn)槿绻贿@么做,我們的應(yīng)用程序在默認(rèn)情況下仍然會(huì)以原始尺寸及比例顯示在iPhone 5的屏幕上,這時(shí)頂部和底部會(huì)自動(dòng)以黑邊的形式顯示——這可不好,雖然對功能性沒有影響,但會(huì)讓用戶產(chǎn)生“這款應(yīng)用非常低端”的感覺。下面幾幅圖就展示了iPhone 5屏幕上、下方存在黑框時(shí)的樣子:
在以上截圖中,F(xiàn)andango應(yīng)用能夠支持iPhone 5全屏顯示,而星巴克與Pandora應(yīng)用則存在邊緣黑框現(xiàn)象。
“開發(fā)人員必須對現(xiàn)有應(yīng)用進(jìn)行更新,才能使其填滿iPhone 5的屏幕。”
大多數(shù)iOS應(yīng)用都是使用UIKit組件創(chuàng)建并且擁有自動(dòng)調(diào)整尺寸特性,這就使得現(xiàn)有應(yīng)用程序適應(yīng)iPhone 5變得非常簡單——只要將4英寸方案下的新界面圖像添加到項(xiàng)目當(dāng)中即可。
更高、更快、更強(qiáng):新一代A6芯片
很多人都忽略了這一點(diǎn),但這里我要提醒大家,蘋果在iPhone 5中內(nèi)置的新一代A6芯片比前代產(chǎn)品的處理速度提高了一倍。作為開發(fā)人員,應(yīng)用程序的實(shí)際表現(xiàn)無疑要受到手機(jī)硬件的限制。而有了A6芯片的性能支持,我們能夠創(chuàng)建出更為復(fù)雜的應(yīng)用程序,包括更先進(jìn)的增強(qiáng)現(xiàn)實(shí)應(yīng)用以及更逼真的3D游戲。更值得一提的是,雖然硬件性能得到大幅強(qiáng)化,但iPhone 5的電池續(xù)航能力也獲得了一定提升!這簡直是在用行動(dòng)告訴開發(fā)者:丟掉顧慮,放手干吧。
以下圖表顯示了最新的三代iPhone所搭載的芯片系統(tǒng)(簡稱SoC)參數(shù)
機(jī)型 |
SoC |
最大時(shí)鐘速率 |
CPU 核心數(shù) |
GPU 核心數(shù) |
一級緩存 |
二級緩存 |
iPhone 4 |
蘋果A4 |
1 GHz |
1 |
1 |
32/32 kB |
512 kB |
iPhone 4S |
蘋果A5 |
800 MHz to 1 GHz |
2 |
2 |
32/32 kB |
1024 kB |
iPhone 5 |
蘋果A6 |
1.25 GHz |
2 |
3 |
32/32 kB |
1024 kB |
#p#
新的Cocoa-Touch框架
iOS 6 SDK中增加了四大全新框架。
Pass Kit框架
Passbook應(yīng)用一直是iOS 6系統(tǒng)中關(guān)注度最高的功能。在它的幫助下,用戶能夠在自己的設(shè)備上購買并存儲以下四種特殊文件:
- 登機(jī)牌
- 賽事門票
- 零售優(yōu)惠券
- 代金券
根據(jù)蘋果在官方說明文檔中的描述,Passbook類應(yīng)用能夠被拆分為以下三個(gè)部分:
- 創(chuàng)建Passbook類應(yīng)用必需的軟件包格式。
- 專門用于Passbook類應(yīng)用更新及服務(wù)器實(shí)施的網(wǎng)絡(luò)服務(wù)API。
- 用于與用戶Passbook記錄互動(dòng)的Objective-C API。
正如大家所見,將Passbook機(jī)制納入到自己的應(yīng)用程序中來需要涉及到橫跨多層的技術(shù)整合工作。Pass Kit的主要作用在于第三條——提供與用戶Passbook記錄互動(dòng)所必要的Objective-C API。
盡管Passbook在學(xué)習(xí)及掌握方面需要花費(fèi)一定時(shí)間與精力,但在大家度過了最初的艱難時(shí)期后,接下來的學(xué)習(xí)曲線就會(huì)變得暢通無阻了。而且截至本文撰寫之時(shí)(12年9月23號),蘋果App Store中只擁有12款支持Passbook功能的應(yīng)用程序——也就是說,誰能夠及時(shí)做出反應(yīng)、率先在應(yīng)用程序中引入Passbook,誰就可以占得先機(jī)、讓自己的產(chǎn)品在應(yīng)用的海洋中脫穎而出。
要想了解更多關(guān)于Passbook的信息,大家訪問以下網(wǎng)址,看看蘋果公司官方是怎么說的。
網(wǎng)址:https://developer.apple.com/passbook/Getting_Started_with_Passbook.pdf
社交框架
在iOS 5發(fā)布之初,蘋果公司就已經(jīng)幫助開發(fā)人員充分簡化了應(yīng)用與社交網(wǎng)絡(luò)的交互——在Twitter框架的幫助下,開發(fā)者能夠輕松為自己的應(yīng)用添加Twitter支持。而在最新的iOS 6中,社交框架的加入令社交網(wǎng)絡(luò)整合工作擁有了新方案。整套思路與開源項(xiàng)目ShareKit非常相似,菜單中包含了多個(gè)共享選項(xiàng),用戶可以根據(jù)自己的喜好從其中隨意選擇要分享的社交平臺。但除此之外,真正讓社交框架站在時(shí)代巔峰上的是其所整合的賬戶框架。在賬戶框架的支持下,用戶能夠以單點(diǎn)登錄(簡稱SSO)的方式以一套口令搞定所有社交平臺,這就免去了一遍遍重復(fù)輸入驗(yàn)證信息的尷尬與繁瑣。
雖然我對于社交框架的出現(xiàn)感到極為興奮,但目前我還是會(huì)選擇SahreKit 2.0作為首選方案,畢竟它更成熟也更實(shí)用。不過話說回來,再過一、兩年,社交框架在蘋果公司的大力支持下必然獲得飛速發(fā)展,我懷疑到時(shí)候它會(huì)成為新時(shí)代的標(biāo)準(zhǔn)、將一切現(xiàn)有同類方案踩在腳下。
廣告支持與媒體工具箱框架
接下來我要向大家介紹另外兩款同樣受到忽視的新框架——廣告支持框架與媒體工具箱框架。廣告支持框架很可能在第三方廣告合作伙伴中成為行業(yè)標(biāo)準(zhǔn),因?yàn)樗试S開發(fā)人員根據(jù)自己應(yīng)用程序的特點(diǎn)提交獨(dú)特的、能夠歸納用戶群體類別的廣告位信息。該框架同時(shí)提供一套追蹤開關(guān),開發(fā)人員需要在應(yīng)用運(yùn)行過程中查詢開關(guān)啟用與否,并以此來保證用戶廣告投放工作的順利實(shí)施。
媒體工具箱框架則沒有太多可談的,它的作用是為AVFoundation框架提供音頻支持,具體內(nèi)容大家仍然可以溫習(xí)WWDC 2012大會(huì)中的相關(guān)段落。#p#
Cocoa-Touch的改進(jìn)與修正
正如此前所有新系統(tǒng)發(fā)布時(shí)的情況一樣,iOS 6的面世也帶了諸多新變化、新功能并棄用了某些陳舊機(jī)制。其中某些變化會(huì)給移動(dòng)開發(fā)工作帶來深遠(yuǎn)影響,這一點(diǎn)在前面的內(nèi)容中也已經(jīng)提到了一些。
UITableView增強(qiáng)
UITableView的工作方式也迎來了大幅度轉(zhuǎn)變。首先,UITableViewCell中的方法dequeueResusableCellWithIdentifier如今被替換為兩種新的UITableView方法,即dequeueReusableCellWithIdentifier:forIndexPath: 與registerClass:forCellReuseIdentifier:。如此一來,在表格視圖中創(chuàng)建并添加UITableViewCell對象會(huì)變得更為精簡而流暢。
另外,一種全新的名為UITableViewHeaderFooterView的類也被添加進(jìn)來,作用是讓開發(fā)人員能夠更輕松地創(chuàng)建自定義UITableView頁眉及頁腳。該類的contentView與backgroundView屬性使得能夠自定義的范疇非常廣泛,同時(shí)textLabel與detailTextLabel也以快捷方式的形式簡化了我們創(chuàng)建自定義頁眉或頁腳的過程。
表格視圖中的另一大顯著增強(qiáng)就是UIRefreshControl,這種控制機(jī)制使得開發(fā)人員能夠隨意為自己的表格視圖添加拖動(dòng)刷新功能。
新的UIKit主題選項(xiàng)
iOS 5在發(fā)布時(shí)針對最流行的UIKit控件推出了一系列新的自定義機(jī)制,而iOS 6也秉承了這種趨勢,并進(jìn)一步提供了更多可選的界面定制方案。舉例來說,UIPopoverBackgroundView、UIStepper、UISwitch、UINavigationBar、UITabBar、UIToolBar、UIBarButtonItem以及UIPageControl都獲得了與用戶界面控制相關(guān)的額外方法或?qū)傩浴?/p>
正如我們在上文中所提到,UITableView對象在自定義頁眉/頁腳視圖類的幫助下變得更容易修改并制作成主題元素。表格視圖也獲得了與主題相關(guān)的兩種全新界面屬性:sectionIndexColor與sectionIndexTrackingBackgroundColor。這些屬性允許開發(fā)人員對表格視圖索引的外觀進(jìn)行更進(jìn)一步的控制及設(shè)定。
UICollectionView打造基于網(wǎng)格的布局方案
UICollectionView類為我們帶來了利用iOS SDK直接創(chuàng)建基于網(wǎng)格的布局的能力。其作用明顯、意義重大,尤其是對于iPad這樣行、列視覺元素使用頻繁的顯示機(jī)制來講,這一提升更是極為貼心。
iPad版本的Kindle and Reeder應(yīng)用程序就是一個(gè)極好的例子,在UICollectionView的幫助下,基于網(wǎng)格的布局方案必然能帶來更理想的顯示效果。
盡管上圖中的應(yīng)用并沒有用到UICollectionView,但它仍然代表了一類常見的布局控制需求。相信在新機(jī)制的支持下,開發(fā)人員將能夠更輕松地創(chuàng)建出美觀簡潔的視覺界面。
利用NSAttributedString調(diào)整文本風(fēng)格
任何一位與iOS SDK打過一段時(shí)間交道的開發(fā)者可能都曾經(jīng)對UILabel以及NSString的功能性局限頗有微辭,同時(shí)也費(fèi)過不少力氣處理其糟糕的外觀效果。在眾多效果調(diào)整工作中,最令人煩躁的內(nèi)容無疑包括粗體文本、超鏈接下劃線、最討人厭的子字符串斜體等等,而且大部分問題都源自UILabel實(shí)例或者UIWebView中HTML與CSS的影響。iOS 6引入了NSAttributedString與NSMutableAttributedString,這就使得上述工作得到極大簡化。這兩大新類與NSString相比擁有大量格式設(shè)定選項(xiàng),舉例來說,我們可以在NSAttributedString中對下劃線、背景顏色、刪除線等元素進(jìn)行分別設(shè)置。在創(chuàng)建一套新的屬性化字符串后,我們還可以將其設(shè)定套用到任何支持類屬性設(shè)置的字符串上,包括UILabel、UIButton以及 UITableViewCell。
視圖自動(dòng)旋轉(zhuǎn)
在視圖的自動(dòng)旋轉(zhuǎn)功能方面,iOS 6 SDK采取了全新的解決方案。我們長久以來習(xí)慣使用的shouldAutorotateToInterfaceOrientation類已經(jīng)遭到棄用,在新模式下我們將使用supportedInterfaceOrientationsForWindow:與幾種shouldAutorotate方法的新組合。
除此之外,被設(shè)定為只能橫向顯示的應(yīng)用程序一旦調(diào)用縱向視圖控制器(例如游戲中心登錄界面所使用的UIPickerViewController),會(huì)導(dǎo)致應(yīng)用本身崩潰。
“在強(qiáng)制橫向顯示的應(yīng)用程序中調(diào)用縱向視圖控制器,會(huì)導(dǎo)致應(yīng)用本身崩潰。”
如果大家對這個(gè)話題感興趣,可以查看iOS 6發(fā)布說明中的UIKit相關(guān)內(nèi)容。WWDC 2012大會(huì)中也有專門的段落展開討論,主題為“Polishing Your Interface Rotations(精心雕琢您的界面旋轉(zhuǎn)機(jī)制)”。#p#
移動(dòng)版Safari瀏覽器的新功能
正如大家所預(yù)期的,移動(dòng)版Safari瀏覽器在對HTML 5的兼容性及相關(guān)功能支持方面又邁出了實(shí)質(zhì)性的一步。雖然我們無法在本文中所這款全新瀏覽器進(jìn)行細(xì)致評述,但以下幾項(xiàng)亮點(diǎn)是大家絕不能錯(cuò)過的:
- 通過媒體捕捉API及文件API訪問相機(jī)功能
- 本地緩存從原來的5MB增加到25MB
- 添加了新的網(wǎng)絡(luò)音頻API
- 擁有額外的CSS3支持(包括淡入淡出效果及過濾器等)
- 內(nèi)置不同的分辨率方案支持能力
- 能夠簡化調(diào)試工作的遠(yuǎn)程網(wǎng)絡(luò)檢測工具
- 對WebKit JavaScript引擎做出性能增強(qiáng)
在上述內(nèi)容之外,還有一個(gè)主要問題值得我們關(guān)注。如果在任何應(yīng)用程序中插入一條含有YouTube內(nèi)容的UIWebView屬性,這段代碼將無法正常工作。蘋果在iOS 6中拋棄了YouTube應(yīng)用,因此與之相關(guān)的默認(rèn)網(wǎng)頁視圖回放功能自然也將不復(fù)存在。由于很多開發(fā)人員與應(yīng)用程序都依賴于這一功能,因?yàn)槲覀€(gè)人猜測這次變動(dòng)會(huì)引發(fā)不少嚴(yán)重問題。另外,我也承認(rèn)自己對于YouTube的離去感到非常失望。
“在UIWebView中插入的YouTube視頻將無法正常播放。”
大家還想了解更多?Max Firtman撰寫了專門的文章開展全面討論,我們也將在未來的系列指南中帶給大家更多的新鮮意見。
這一點(diǎn)同樣沒有受到大力宣傳,但應(yīng)用程序開發(fā)人員應(yīng)該了解,iOS 6中的App Store用戶界面已經(jīng)得到了翻天覆地的變化。想要搜索新游戲?下圖是我們在使用iOS 5系統(tǒng)的iPhone 4S與使用iOS 6系統(tǒng)的iPhone 5中輸入關(guān)鍵詞“RPG”后得到的結(jié)果畫面:
可以看到,在舊版界面中,我們能夠直接看到五款不同名稱的游戲應(yīng)用,而且只要輕輕一點(diǎn),就能看到當(dāng)前人氣最高的前25大熱門游戲。而在新界面中,屏幕中將會(huì)顯示一款應(yīng)用,用戶必須不斷翻動(dòng)屏幕才能看到每一款應(yīng)用程序的詳細(xì)信息。
對于這種設(shè)定,大家的意見當(dāng)然可以見仁見智。但就個(gè)人而言,我認(rèn)為這種新設(shè)定的目的是“讓用戶在查閱時(shí)不會(huì)再接觸到過多應(yīng)用程序。”由于現(xiàn)在我們只能一個(gè)接一個(gè)瀏覽,因此耗時(shí)會(huì)變得比較長,用戶也更容易失去耐心。蘋果公司相當(dāng)于將一紙通告拍在開發(fā)人員臉上,告訴他們“把應(yīng)用程序做好點(diǎn),否則根本不會(huì)有人來鳥你!”好吧,現(xiàn)在全世界的開發(fā)者都要爭奪首頁這一珍貴資源了。
“新的App Store UI強(qiáng)調(diào)的是第一印象,開發(fā)人員一定得做好!”
雖然我個(gè)人對于新版App Store的整體使用體驗(yàn)及界面設(shè)置有點(diǎn)失望,但其中仍然蘊(yùn)含著有可能協(xié)助開發(fā)人員的新特性。由于社交框架的引入,現(xiàn)在用戶能夠“共享”任何在軟件商店中找到的應(yīng)用程序產(chǎn)品了:
我敢肯定,大多數(shù)開發(fā)人員會(huì)第一時(shí)間在自己的應(yīng)用程序中添加“共享”選項(xiàng),但也有不少獨(dú)立開發(fā)者可能還不知道這一消息。希望借這篇文章能夠?yàn)榇蠹议_拓思路,利用好這塊全新的宣傳陣地。#p#
在哪里了解更多
iOS 6這次帶來的變化實(shí)在是太多了,我根本不可能在一篇文章甚至一套系列教程中將其通通列舉出來。本文只是從開發(fā)者的角度簡單對iOS 6及iPhone 5進(jìn)行了番審視,我們未來還會(huì)推出更多針對新系統(tǒng)及新機(jī)型的開發(fā)指南。請大家放心,我們會(huì)從頭開始一步步指導(dǎo)大家如何讓自己的iOS 5應(yīng)用程序順利安裝并運(yùn)行在iOS 6系統(tǒng)平臺下,所以請各位保持關(guān)注,謝謝!
除此之外,獲得iOS 6權(quán)威消息的最佳途徑當(dāng)然是WWDC 2012大會(huì)了,優(yōu)酷網(wǎng)上有在線視頻,大家一搜即得。官方說明文檔當(dāng)然也不可或缺,這里我為大家整理了iOS 6說明文檔、iOS 6 新功能一覽以及官方的iOS 6發(fā)布說明。
還有一件事……如果大家還沒看蘋果公司的iPhone 5宣傳片,那別猶豫了,趕緊點(diǎn)開以下鏈接瞻仰一番吧:
http://v.youku.com/v_show/id_XNDQ5NzgzOTky.html
總結(jié)
大家有計(jì)劃在強(qiáng)大的iPhone 5上開發(fā)應(yīng)用程序嗎?請?jiān)谠u論欄中留下您的意見,并與其他讀者朋友交流自己的心得與體會(huì)。
原文鏈接:http://mobile.tutsplus.com/articles/news/ios6-iphone5-whats-new/
原文標(biāo)題:A Developer Looks at iOS 6 and the iPhone 5