iOS 7中的新鮮事兒: 開發人員需要 關注哪些重點
譯文面貌一新的UI、動態字體、新的多任務模式以及對新型64位 應用(及設備)的支持。
由于新變化太多,我們姑且將注意力集中在那些從長 遠角度看影響最顯著的特性身上。
內容為王
讓我們先從UI說起。簡單來講,iOS 7摒棄了大部分 廣泛存在于iOS 6當中的界面元素——例如按鈕邊框、 用于渲染導航欄的色彩漸變以及不透明標簽等等。在 iOS 7當中,大部分UI控制元素都不再使用邊框并采 用半透明效果。警示與對話框現在會以顯示面板方式提 供選項字符、而不再像早期版本那樣使用閃爍的按鈕或 者控制效果。新界面初看起來往往讓人感到不太適應, 但它非常簡潔、而且看久了之后其實也很順眼。相對于 過去那種在一片漆黑的背景上顯示UI元素塊的作法, 新版本為我們帶來更明亮、更為開放且非常干凈整潔的 操作空間。
蘋果在新方案中帶來精妙的平衡效果。盡管UI元素的顯 示方式發生了變化,但其使用方式以及手勢操作與早期 版本相比并無不同。舉例來說,在列表單元中由右向左 橫掃仍然會激活刪除或者選項面板。在適應了剛剛上手 所面臨的抵觸之感后,大家很快就能調整狀態并繼續投入正常使用——畢竟其操作方式仍然延續經典方案。
蘋果公司在iOS 7 與Xcode 5當中進行的擴展可 謂一陰一陽。在Xcode 5 IDE當中,UI幾乎沒有 作出任何變動,所有重大改進都針對同一套界面 之下的實際工具。但在iOS 7方面,UI的變化之 大令人意外。為了支持這一巨大轉變,Cocoa Touch對一部分框架進行了調整、同時引入了其它 新型框架。
在今天的文章中,我們將共同了解iOS 7所帶來的 全新調整。
大家可千萬別小看其實現難度——各位可以問問那些升級 到Windows 8的用戶,問問他們不考慮操作延續性以及 關鍵性控制方式的系統設計到底會給用戶帶來多少痛苦 回憶。
為什么蘋果要冒這么大的風險將UI推倒重做?其目的 在于為應用程序開發者提供更多可資利用的屏幕空間。 現在按鈕、標簽、導航欄以及其它控件都以半透明狀態顯示,這就使得屏幕能夠顯示更多內容。就連 位于屏幕頂端、用于顯示信號強度及電池電量的 狀態欄也是半透明的。單憑這一項改動,開發人 員就獲得了額外的64像素(縱向模式)或者52 像素(橫向模式)可資利用。
為了完全利用這一改動帶來的顯示面積提升, Cocoa Touch中的UIControllerView類(作為應 用程序屏幕顯示與用戶界面的核心)現在額外提供 全屏顯示模式。在早期版本中,UIControllerView 只能使用一部分屏幕尺寸,狀態欄、導航欄以及標 簽所占據的部分都被浪費掉了。但現在該類迎來一 系列新屬性,允許視圖窗口使用傳統iOS 6顯示方 案或者直接將布局擴展到整個屏幕的邊緣。另外, 大家也可以根據需要將視圖窗口向特定方向—— 即向頂部或者右側擴展。
這種傾向于內容的重點轉移對開發人員而言意義 重大。Retina顯示方案下那些原本只能用于顯示 UI控件的像素現在也可以負責顯示實際內容。換 句話來說,從設計角度看內容與控件(例如導航 欄)之間的界線已經逐漸模糊。不過這也要求我 們為用戶提供更大的顯示畫面,這樣他們才能更 輕松地在大量信息之間進行屏幕切換——即使屏 幕本身尺寸較小。
為了排布應用程序的UI元素,蘋果提醒開發人員應該盡可能使用Xcode的自動布局功能——也就是 讓iOS負責處理屏幕上UI元素的定位工作。這意味 著未來大家將開始在不同屏幕尺寸上體驗iOS平臺。
我們擁有多種風格類型可供選擇,它們與HTML標簽中 的方案基本相同:Headline 1、Headline 2、 Subheadline 1、Subheadline 2、Body、Footnote、 Caption 1以及Caption 2。在必要的情況下,大家也 可以調整字體的尺寸與間隔,當然仍然可以通過描述實 現而非指實際數字。新版本iOS對動態字體、連寫、突 出以及可訪問字體尺寸的支持在整個系統環境當中皆可 生效。
新框架TextKit專門負責動態字體功能。這是一種高層 級文本布局API,位于低層級CoreText文本布局引擎 之上。所有與文本相關的UI元素(例如UILabel、 UITextField以及UITextView)現在都能通過TextKit 進行文本布局管理。TextKit還可以非常簡便地排布段 落、列以及頁中的風格化文本。對于圖片與文本相結合 的復雜布局環境,大家也可以利用一條貝塞爾曲線勾勒 圖片輪廓。TextKit會在排布文本的同時避免其與曲線 發生重疊。這項功能對于復雜內容交付的支持大有幫助。
更出色的多任務機制
準確地講,iOS從誕生之日起就一直是一款成熟的多任 務操作系統。作為核心,iOS所使用的是與桌面系統OS X相同的Mach內核以及BSD庫。郵件、音樂以及時鐘等 特定應用都會在后臺保持運行。不過蘋果嚴格限制第三 方應用使用多任務功能——這主要是出于安全考量,而 且早期硬件在處理性能、內存以及電池壽命等方面的孱 弱也制約了多任務的普及。
與iOS 6(左圖)相比, iOS 7(右圖)的對話框 更簡潔、不廢話。
保證文本清晰易讀
蘋果還提供了另一種使用這些額外屏幕像素的方式 ——支持更好的字體排列方案。iOS 7采用動態字 體方案:字型能夠針對不同顯示尺寸進行調整且始 終保持同樣的其字體與粗細。現在大家無需指定尺 寸或者字體類型,只需簡單為其設定一種風格、iOS 就會處理其它細節。
在iOS 4當中,蘋果正式推出限制性多任務機制,旨在支 持應用程序實現后臺音頻播放、后臺位置追蹤以及消息推 送等。在iOS 7當中,我們再次迎來更多新型后臺模式: 后臺獲取、遠程通知以及后臺轉換。提供新模式的目的在 于保證應用程序數據始終可用——包括由遠程服務器所提 供的數據在內。
后臺獲取允許應用程序周期性獲取信息。為了實際這一目 標,大家需要調用UIApplication方法以通知iOS按固定 間隔獲取數據。根據設置好的間隔時間,iOS會周期性啟 動應用程序。在啟動之后,大家的應用就會調用一項獲取 代表方法,并在數據獲取完成后自動退出。
遠程通知允許大家的應用響應來自服務 器的推送信息。iOS會在通知送達時啟 動應用,該應用接下來會與服務器連接、 收集負載內容而后自動退出。
后臺轉換機制會啟動應用程序以實現大 規模數據轉換任務。大家的應用會在啟 動后利用代表方法與服務器之間發起會 話。該代表負責處理與服務器之間的驗 證過程以及轉換所帶來的各類操作。
顯著改進
iOS 7 在多個方面都實現了跨越式發展。新 的UI為開發人員提供更多可資利用的屏幕 空間,這一點對于小尺寸設備尤為重要。更 為智能的文本布局能夠帶來新的出版及閱讀 器應用類型,對此我可以肯定。
這種傾向于內容 的重點轉移對開 發人員而言意義 重大。Retina 顯示方案下的那 些原本只能用于 顯示用戶界面控 件的像素現在也 可以負責顯示實 際內容。
對于這三種多任務機制來說,應用程序必 須調用完整的處理功能,從而向iOS報告 獲取操作成功與否。如果操作未能成功, iOS稍后會重新啟動應用并再次深度獲取 或者轉換。
更多值得關注的新特性
iOS 7 是***款64位移動操作系統,其中的操作 算法、指針以及指令訪問全部采用64位機制。順 理成章,Xcode 5也可以生成64位代碼以支持這 一特性。在大多數情況下,數據通道越多、應用 程序的性能表現就越好;不過數值與指針的增長 同樣也會占用更多內存。即使將應用程序轉為64 位能夠帶來諸多好處,大家仍然需要謹慎對待這 一轉變;否則,內存經受的額外壓力很可能讓應 用程序的執行速度變得緩慢不堪。
iOS 7 支持32位與64位兩種執行模式,因此 舊有應用程序仍然能夠正常運行。我的舊版本 iOS仍然可以管理由iTunes發布的、能夠在iOS 7上運行的應用程序,不過界面上方會出現一小 塊空白區域——因為新版本提供的可用狀態欄空 間在舊版本中無法生效。有鑒于此,開發人員顯 然需要將自己的應用程序打造為一套“結合庫”, 好同時包含32位與64位代碼。這樣一來,即使 是在早期iOS版本當中我們的應用也能順利執行。 這套結合庫機制應該能夠正常起效,因為蘋果之前 就已經實現過這類方案。當初Mac計算機由Power 架構向英特爾CPU過渡時,Xcode工具就通過“ 通用庫”同時囊括了Power架構與英特爾代碼鏡像。 如果大家從事這一行的時間夠長,可能還趕上過 Mac設備由68K向Power架構CPU轉換的過程, 當時開發人員可以讓“fat binaries”同時運行在 兩套平臺上。
這款64位操作系統提供更出色的計算性能 表現,從而幫助開發人員利用更為強大的語 音算法與信號處理能力,最終讓目前對移動 平臺計算能力還太過勉強的應用性能需求得 以實現。簡而言之,蘋果將借此為現有客戶 群體帶來業界***的軟件產品。
這不禁讓我再次想起iOS 7與Xcode 5之間 陰陽并濟、水火交融的協作關系。蘋果將iOS 7定位為 桌面級別的操作系統——考慮到其卓越的排版機制與強 大的計算能力,大家應該能夠認同這一觀點。此外,我 們還需要思考iOS如何幫助企業在移動領域走得更遠。 下面我們不妨遵循幾條線索。蘋果已經在Xcode 5當中 大力推行自動布局功能,因此大家可以想到將有更多屏 幕尺寸有所差異的“i設備”走向市場。會不會出現屏 幕更大的平板甚至采用iOS系統的筆記本電腦?或者是 允許iPhone及iPad使用蘋果全尺寸顯示器與鍵盤的“ iDock”方案?iOS與OS X的發展方向似乎正一步步走 向交匯,因此這三種可能性最終都有機會變成現實。 不過在不久的將來,我認為iOS 7會幫助蘋果進軍特定 垂直市場或者推出幾款新設備。簡言之,iOS 7與 Xcode之間的陰陽關系將推動移動平臺從競爭激烈的消 費級市場當中脫穎而出——而其***的成就則要看開發 人員能在這樣理想的基礎之上打造出怎樣的成果。