與 iOS 整合,指的是在當前平臺上給用戶提供一種舒適的、賓至如歸般的體驗,當然這并不意味著我們要把每一個應(yīng)用做的和內(nèi)置應(yīng)用一模一樣。
最好的與 iOS 整合的方式便是深刻地了解 iOS 的主題與核心——這一部分在上文為 iOS 而設(shè)計(Designing for iOS)部分中已有詳細描述,并尋求出如何在你的應(yīng)用中融合與表達這種主題。當你這么做的時候,遵循本章中的指引可以幫助你為你的用戶提供他們想要的體驗。
盡可能使用 UIkit 提供的標準 UI 元素是一個好主意。多使用標準元素而非自定義元素,你與你的用戶都將受益:
標準 UI 元素會根據(jù) iOS 官方的更新而自動更新——而自定義元素不會。
標準 UI 元素對于你自定義外觀和行為來說擁有優(yōu)秀的擴展性。舉個例子,iOS 中所有的視圖(Views,從 UIView 中繼承的對象)都是可以使用 TintColor 屬性來定義顏色的,它讓應(yīng)用配色變得很簡單。
嚴格遵循每個 UI 元素的設(shè)計規(guī)范。當你應(yīng)用中的 UI 元素的外觀與功能都是用戶所熟悉的,他們可以很容易地根據(jù)先前的經(jīng)驗來使用他們,進而更好地使用你的應(yīng)用。你可以從這些章節(jié)中找到各種 UI 元素的設(shè)計規(guī)范:Bars, Content Views, Controls, Temporary Views.
(譯者注:上文提到的章節(jié)均處在 iOS Human Interface Guidelines 的第4章,翻譯將在后續(xù)更新中放出,煩請各位耐心等候。若有需要,亦可先參考先前已翻譯的 iOS7 UI Elements 章節(jié):上,下。)
不要混用不同版本的 iOS 里的 UI 元素。你一定不希望讓用戶覺得你的 UI 元素來自于與當前用戶的設(shè)備版本不同的 iOS 系統(tǒng)。
大體來說,請避免創(chuàng)造自定義 UI 元素來表現(xiàn)標準交互行為。先問問你自己為什么一定要創(chuàng)建一個與標準 UI 元素行為完全相同的自定義元素。如果你只是想改變標準 UI 元素的外觀,可以考慮使用 UIKit 外觀定制 API(UIKit appearance customization APIs),或者給元素填充別的顏色。如果你需要定義一個與標準控件稍有不同的行為,請確保你在改變了這個 UI 元素的屬性和行為之后,這個元素仍然能完成你所希望的操作。如果你需要完全自定義一個行為,最好是設(shè)計一個與標準元素完全不相像的自定義元素。
提示:Interface Builder 讓獲取標準 UI 元素,使用外觀定制 API(the appearance customization APIs),獲取屬性,以及在你的應(yīng)用里使用自定義和系統(tǒng)自帶圖標變得很簡單。想要了解更多 Interface Builder 的內(nèi)容,請參閱 Xcode Overview.
不要用系統(tǒng)自帶的按鈕和圖標表達其他含義。iOS 提供了多種可用的按鈕和圖標。請確認你了解它們的準確表意;不要單純憑借你看到這些圖標樣式的猜測和理解來解讀和使用它們。(你可以在 Toolbar and Navigation Bar Buttons 和 Tab Bar Icons 中了解到這些按鈕和圖標的準確含義。)
如果你所需要的功能無法用系統(tǒng)提供的按鈕和圖標來表現(xiàn),你也可以設(shè)計自定義按鈕。自定義按鈕的設(shè)計可以參考 Bar Button Icons.
(譯者注:上文提到的章節(jié)均處在 iOS Human Interface Guidelines 的第4章,翻譯將在后續(xù)更新中放出,煩請各位耐心等候。若有需要,亦可先參考先前已翻譯的 iOS7 UI Elements 章節(jié):上,下。)
如果你的 app 是沉浸式體驗,那么創(chuàng)造全新的自定義 UI 是合理的。因為你在創(chuàng)造一個統(tǒng)一的體驗環(huán)境,讓用戶在其中能夠有所期待并探索如何控制應(yīng)用。
iOS 應(yīng)用可以幫助用戶創(chuàng)建和處理文件,但這并不意味著用戶需要過分考慮 iOS 設(shè)備的文件系統(tǒng)如何運作。
如果你的應(yīng)用中支持用戶創(chuàng)建和編輯文檔,那么提供一個清晰的圖形庫視圖(document library view)讓用戶能夠方便地打開或者新建文檔是一個好的做法。理想狀況下,這樣的圖形庫視圖擁有以下特征:
高度圖形化。用戶通過屏幕上的縮略圖就可以一目了然,快速找出自己想要的文件。
讓用戶用最少的動作完成自己的任務(wù)。比如說,用戶可以快速地水平滾動文件列表,然后輕點一下自己想要的文件來打開它。
提示:你可以使用 Quick Look Preview 功能來讓用戶預(yù)覽你的應(yīng)用中的文件,哪怕你的應(yīng)用不能打開這些文件。想要了解如何在你的應(yīng)用中提供這個功能,請參閱 Quick Look.
如果你的應(yīng)用允許用戶使用在其他應(yīng)用中創(chuàng)建的文檔,你可以通過模態(tài)文檔選擇視圖控制器(modal document picker view controller)來幫助用戶觸達它們。這個控制器可以提取用戶在 iCloud 中的文檔,還可以通過文檔提供者擴展(Document Provider extensions)來提取在其它應(yīng)用中創(chuàng)建和儲存的文件。想要了解更多文檔提供者擴展的內(nèi)容,可以參考 Document Provider Extensions; 想要了解更多文檔提取視圖控制器,請參考 Document Picker Programming Guide.
給用戶足夠的信心,讓他們相信除非主動取消或者刪除,他們的成果會被隨時妥善保存。如果你的應(yīng)用幫助用戶創(chuàng)建于管理文檔,不能要求用戶每次都能及時保存。無論是打開另一個文檔或切換應(yīng)用的時候,iOS 應(yīng)用都應(yīng)當承擔(dān)起幫助用戶保存輸入內(nèi)容的責(zé)任。
如果你的應(yīng)用的主要功能不是創(chuàng)造內(nèi)容,但又允許用戶查看或編輯信息,這種情況下你需要詢問用戶是否要保存修改。在這種場景下,比較好的做法是提供“編輯”按鈕,點擊后進入編輯狀態(tài),同時編輯按鈕變成“保存”和“取消”按鈕,這種變化可以提示用戶當前處于編輯模式?!氨4妗笨梢员A粜薷膬?nèi)容,“取消”則退出編輯模式。
某些應(yīng)用需要用戶手動安裝或設(shè)置選項,但是大部分應(yīng)用不需要如此。一個好的應(yīng)用可以讓大部分用戶快速上手,并通過主界面給用戶提供便捷的調(diào)整體驗的方式。
當你的應(yīng)用在默認狀態(tài)下就能滿足大部分用戶的期望,用戶對設(shè)置的需求就減少了。如果你需要儲存用戶的基本資料,可以優(yōu)先向系統(tǒng)請求和拉取相關(guān)信息,而不是上來就讓用戶自己填寫它。如果你一定要提供用戶鮮少用到的設(shè)置項,請參考 App Programming Guide for iOS 中的 The Setting Bundle 部分來了解如何在代碼中定義它們。
盡可能在主 UI 中提供設(shè)置選項。如果這個設(shè)置項代表著用戶一個基本任務(wù),又或者用戶在進行主線任務(wù)時有可能頻繁改變設(shè)置,那么將設(shè)置項放在主 UI 中會很方便。如果用戶只是偶爾才會用到設(shè)置項,那么可以將其放在獨立的視圖中。
如果應(yīng)用內(nèi)相關(guān)設(shè)置需要在系統(tǒng)設(shè)置中改變,幫助用戶直接訪問系統(tǒng)設(shè)置。尤其是,如果你要用一段文字來描述如何改變這個設(shè)置,比如“設(shè)置>隱私>定位服務(wù)”,倒不如直接放置一個按鈕,點擊后即可到達設(shè)置中的定位服務(wù)。想要了解如何實現(xiàn),請參考 Settings Launch URL.
iOS 提供了豐富的技術(shù)方式來支持用戶完成他們所期望的各種任務(wù)和場景。這意味著在絕大多數(shù)情況下,將系統(tǒng)提供的技術(shù)整合到你的應(yīng)用中,往往比自定義一種新的技術(shù)更為可靠。
某些 iOS 技術(shù),比如多任務(wù)并行(Multitasking)與語音向?qū)?VoiceOver)等等,是所有應(yīng)用都應(yīng)該包含的系統(tǒng)級特性。而另外一些技術(shù)是否整合到應(yīng)用中,則取決于應(yīng)用本身的功能性。比如處理門票和禮品卡的應(yīng)用(Wallet)支持用戶在應(yīng)用內(nèi)內(nèi)購(In-App Purchase),展示應(yīng)用內(nèi)置廣告(iAd Rich Media Ads)則可以整合 Game Center,同時支持 iCloud.
更多建議: