01
Oct
煥然一新,閃亮登場的iOS 7 SDK
Facebook

隨著全新iPhone 5s的推出,最新一代的iOS 7也跟著現身了! 每一年Apple總是能推出全新的iOS,帶給使用者意想不到的驚喜,也帶給App開發者更多實現絕妙idea 的SDK法寶。也許小叮噹那天下無雙的百寶袋就藏在Apple層層加密的保險箱裡,要不然Apple又怎能一而再,再而三地於短短的一年裡,打造出增添幾百個功能的iOS 呢?這次的iOS 7 升級,更可說是Apple歷年來最大的更新, iOS完全變了容顏,整個UI煥然一新! 接下來,就讓我們一個個地探訪iOS 7 SDK的絕妙之處吧。

撰文:彼得潘

 

全新的UI設計

iOS 7 帶來全新的UI 設計概念,對於身為開發者的我們,可以說是千載難逢,在已殺成紅色App 海裡冒出頭的絕佳良機。放眼望去,目前佔據排行榜的App 山大王們,到了iOS 7 的世界,它們的App 畫面都將顯得過時,無法和iOS 7 融為一體。此時若是我們把握機會, 重新打造一個相配iOS 7 的App,相信定能馬上吸引使用者的目光,以美貌勾引使用者下載。接下來,就讓我們好好瞧瞧幾個iOS 7 特別的UI 設計之處吧。

1. 平面化的UI 元件

iOS 裡內建各式各樣的UI 元件,這些元件到了iOS 7 無一例外,全都換了容顏,變得更平面,更簡潔, 更美麗 ! 

2. 透明背景的status bar 和全螢幕設計

顯示電量,時間的status bar 是如此重要,因此絕大多數的App 為了使用者方便,總是捨不得將它隱藏。可惜從前的它有些憂鬱,帶有深深的背景顏色破壞了App 畫面的美感。iOS 7 裡它擦了SK2,背景變得晶瑩剔透了, 其上的文字顏色則有黑白兩種款式,可依畫面背景顏色而調整。透明化的status bar 也間接帶來App 畫面全螢幕的使用者體驗,讓使用者感覺App 的畫面變得更加寬敞。

3. 長高的UINavigationBar 

Status bar 的背景變透明, 最大的受益者其實是UINavigationBar。在iOS 7 裡,UINavigationBar 長高了, 它整個向上蔓延到寂寞邊界,佔據從前status bar 背景佔據的領土。

4. 無邊框的Button 設計

每個人都想要自由。在iOS 7 的世界,Apple 也朝向無邊框無束縛的UI 設計概念前進。拋開厚重的按鈕邊框包袱吧,在iOS 7 裡,UIButton 和UIBarButtonItem 都朝向無邊框的設計,Apple 鼓勵以顏色取代邊框來提示使用者畫面上可點選觸碰的元件。

5. App 主色設計

iOS 7 裡鼓勵以顏色來提示使用者可以點選的區塊。因此SDK 裡UIView 新訂定一個tintColor 屬性(型別為UIColor), 所有的UI 元件,我們皆可設定它的tintColor,進而改變UI 元件顯示的顏色。範例裡為我們將tintColor 設為橘色後,各個UI 元件展現的橘色風貌。

6. 透明毛玻璃效果

在iOS 7 裡處處可見隨著不同App 畫面變了顏色的透明毛玻璃效果,例如控制中心和通知中心在任何畫面皆可觸發,其現身時隨著不同的畫面呈現不同的背景顏色,全因透明毛玻璃效果的功勞。iOS 7 裡也提供了相關的SDK 方便我們在自己的App 裡輕易做出如此生動美麗的毛玻璃效果。 

 

更酷炫的動畫

動畫一直是iOS 相較於其它手機作業系統,最明顯優異突出之處。然而所謂精益求精,好還要更好,Apple 在iOS 7 繼續地擴大領先的差距,加入多項全新酷炫的動畫效果。

1. Motion Eects 

隨著重力移動的動畫效果。隨著我們手上iPhone 的晃動,App 畫面也跟著位移,讓使用者感覺畫面顯得更加栩栩如生。可透過SDK 裡全新的UIMotionEect 類別實現。

2. UIKit Dynamics 

模擬真實世界的物理行為,打造出更加擬真的動畫效果。UIKit Dynamics 支援多種真實世界的物理行為,例如重力加速度,碰撞等。範例所示為橘色長方形以重力加速度降落邊界,當落地後則模擬碰撞效果,產生向上彈起的生動效果。相關的實做方法可參考SDK 的UIDynamicAnimator 和UIDynamicBehavior。

 

更強大的文字處理 

在iOS 7,Apple 將目光稍稍地轉向博大精深的文字。透過全新的SDK Text Kit,App 畫面上的文字變得更精緻, 更有彈性,我們可以更容易地創作出從前做不到或是難以實現的文字排版和效果。

1. 動態調整字體大小

在iOS 7 的設定App 裡,多了一個文字大小設定的頁面。畢竟在這人人皆是近視兒童的世界裡,大家的視力都不太好,若是能依自己的需求調整App 裡文字的大小,相信定能省下不少度數加深更換鏡片的錢。經由新的SDK,我們可以設定文字依據使用者設定的字體大小而動態調整,而非死版地固定字體的大小。動態字體設定的方法可參考UIFont 的preferredFontForTextStyle: method。

2. Exclusion Paths 

利用Text Kit 強大的文字處理功能,我們可以實現各式各樣複雜的文字排版。例如它的Exclusion Paths 將讓文字像長了眼睛般地繞道而行。如範例所示,神雕俠侶裡著名的李白詩篇秋風詞, 在施加了Exclusion Paths 魔法後, 即排除了某塊危險的三角洲區塊地排列文字。如此神奇的排版效果, 透過建立path 物件和於UITextView 元件裡設定textContainer 的exclusionPaths 即可實現。

更強大的背景多工 

為了效能和省電的考量,Apple 的背景多工一直是有所限制的。然而隨著硬體的進步和iOS 技術的提升,背景多工也愈來愈開放了。在iOS 7 裡,最常見也最需要在背景繼續執行的任務,下載和上傳資料,終於可以實現了。背景下載資料還連帶產生了另一個好處,結合iOS 7 的背景App 預覽功能,我們可以讓使用者在App 預覽時看到最新最即時的資訊,而不是顯示過時的資訊。比方大聯盟的官方App 可以定期地於背景抓取最新的比賽成績, 讓我們在第一時間得知鈴木一朗打出個人3000 支安打的珍貴時刻。

鄰近device 間的溝通和檔案分享

iPhone 是如此地受歡迎, 常常身邊的朋友和陌生人口袋裡裝的也是iPhone。此時若是可以直接地經由App 和身邊的人近距離傳輸資料, 玩遊戲或是分享檔案,而不用畫蛇添足地先連到遠在天邊的網路, 該有多方便呀。我們想要的,Apple 都聽到了! 利用全新的MultipeerConnectivity framework 和UIActivityViewController 新添的AirDrop,實現近距離溝通分享的便利App 再也不是白日夢! 

 

全新遊戲引擎 

人總是愛玩的,所以遊戲是所有App 類別裡最成功也最有錢途的。為了幫助App 開發者早點實現40 歲退休環遊世界的夢想,Apple 打造了全新的遊戲引擎SpriteKit。有了它,我們不用再學習艱深的OpenGL 技術,不用再借助甚至花錢使用第三方的遊戲引擎,即可快速輕易地學會App 遊戲設計, 朝著40 歲退休的夢想大步邁進! 

 

遊戲遙控器

為了帶給玩家更棒的遊戲體驗,iOS 7 增添了全新的GameController.framework。透過此framework,我們可以將遊戲裡的各個操作對應到遙控器上的按鍵,方便玩家以實體的遙控器體驗遊戲,施展出更多的格鬥絕技, 打敗更多關卡的魔王,心甘情願地為了遊戲付出更多的0.99 美金。

 

關於彼得潘

如果我會作詞作曲,我就能成為創作歌手。

我有一絲音感嗎?沒有。

所以,很可惜,我只能當歌手的朋友。

如果給我一天一個App 的負荷,

也澆不熄我對蘋果的熱情。

一天能夠完成一個App 嗎?可以。

所以,是的,我是愛瘋一切為蘋果的彼得潘。

著有App 程式設計入門 (博客來電腦類Top 1)

facebook:http://www.facebook.com/iphone.peterpan