周二晚間來第三發,搞得好像今天是周六的趕腳。發掉之后再獎勵自己一點冰啤酒吧,然后撲床去。天氣熱起來了,各位注意防暑降溫唄。走起。
重要:這是針對于正在開發中的API或技術的預備文檔(預發布版本)。雖然該文檔在技術精確度上經過了嚴格的審核,但并非最終版本,僅供蘋果開發者計劃的注冊會員使用。蘋果提供這份機要文檔的目的,是幫助你按照文中描述的方式對技術的選擇及界面的設計開發進行規劃。這些信息有可能發生變化,屆時,你的設計開發方式需要基于最終版本的操作系統及文檔進行相應的調整和測試。該文檔或許會隨著API或相關技術在未來的發展而進行更新。
譯文最后更新時間:2013-06-18
即刻啟動
一般情況下,用戶可以在一到兩分鐘內對一款應用做出評估。如果你能利用這段時間迅速地呈現最有用的內容,就能充分激發新用戶的興趣,并且給所有用戶帶來出眾的體驗。
重要:絕不要在用戶安裝好你的應用之后告訴他們需要重啟設備。重啟需要花費時間,而且會讓你的應用看起來非常難用且不可信賴。
如果出于內存使用或其他方面原因,使你的應用確實只有在設備重啟之后才能正常工作,那么你需要首先解決這類問題。請參考iOS應用開發指南中的“高效地使用內存”。
盡可能地避免使用無意義的啟動畫面(歡迎畫面)或其他類似的啟動體驗。最好讓用戶在啟動你的應用之后可以立刻開始使用。
推薦的模式(左圖)與不推薦的模式(右圖)
應用安裝完成后,不要讓用戶必須進行設置才能使用。取而代之地:
- 將解決方案聚焦在80%的用戶需求上。這樣,多數用戶不需要進行任何設置就可以開始使用,因為默認參數可以確保應用能夠按照這部分用戶所期望的那樣進行工作。
- 盡可能地從其他來源獲取信息。如果用戶在iOS內置應用或系統設置當中輸入的信息可以為你所用,那么就盡量向系統查詢這些信息,不要再讓用戶輸入一遍了。
- 如果確實需要用戶進行安裝設置,盡量讓他們在你的應用內部進行輸入。然后,盡快儲存這些信息(例如在應用的設置項當中)。這樣,用戶在享受你的應用之前就不需要被迫切換到iOS的設置當中了。如果他們將來需要修改這些信息,可以在任何時候進入應用設置當中進行操作。
盡可能晚些讓用戶登錄。比較理想的狀況是,讓用戶在不登錄的情況下也能在應用當中盡量多的瀏覽內容,并使用部分功能。如果在用戶上手你的產品之前就強迫他們登錄,則會導致啟動流程變得累贅拖沓。
一般來說,要按照默認的屏幕定向方式啟動應用。對于iPhone,豎屏是默認的定向方式,而對于iPad來說,設備當前所處的狀態就是其默認定向方式。如果你的應用只能在橫屏模式下運行,那么要始終以橫屏狀態啟動,讓用戶在必要的時候自己調轉設備的方向。
最好讓橫屏應用能夠同時支持兩種模式的橫屏,也就是Home按鍵分別在左側和右側的狀況。如果設備當前已經處于橫屏狀態,那么橫屏應用就應該按照當前的定向方式加載,除非你有充分的理由不這樣做。在其他情況下,可以按照Home按鍵在右側的方式加載橫屏應用。
可以提供一張與應用首屏看上去幾乎一致的啟動圖片,iOS會在應用被打開的同時即刻展現這張圖片,這可以讓用戶覺得你的應用加載起來非常快,降低對等待時間的感知,使真正的內容有相對充裕的時間可以進行加載。可以參考啟動圖片了解相關的實現方法。
如果可能,不要讓用戶在初次加載應用時閱讀免責聲明或必須對用戶協議進行確認。你可以直接在App Store當中展示這些內容,使人們在下載應用之前就能有所了解;不過,雖然這種方式通常能最大限度的減少麻煩的產生,但也不是一直可行的。如果在某些情況下你必須在應用內提供這類內容,那么要確保這些內容與整體UI保持和諧統一,與產品實際的業務功能帶來的用戶體驗達成平衡。
在應用重啟后,要恢復到用戶退出時的狀態,讓他們可以中斷的地方繼續使用。不要讓用戶必須記住之前是通過怎樣的步驟到達退出時的狀態的。可以參考狀態的維持與重置來了解相關的實現方法。
時刻準備著退出
iOS應用永遠不會有用來執行關閉或退出的操作。用戶退出一個應用的方式就是切換到另外一個應用、回到系統主界面,或是使設備進入睡眠模式。
當人們從你的應用切換到其他地方,iOS的多任務機制就會將它轉至背景當中,并使用其他應用的UI替換掉當前的。為了應對這種情況,你的應用應該具備以下能力:
- 及時地、盡可能頻繁地保存用戶數據,因為處于背景狀態的應用隨時都可能被終結。
- 退出時,盡可能在細節層面保存當前狀態,使用戶回到你的應用之后不會失去之前的上下文狀態。例如,如果你的應用包含可滾動的數據列表,那么在退出時要保存當前的列表位置。
有些應用即使處于背景狀態也需要保持工作,譬如,用戶會希望在查看待辦事項或玩游戲時讓另外一款應用繼續播放音樂。可以參考多任務來了解怎樣正確而優雅的處理這種情況。
永遠不要以程序化的方式自動退出iOS應用,因為用戶有可能將這種情況誤解為程序崩潰。如果出于某些原因,你的應用無法按照預期正常的工作,你需要告訴用戶當前的狀態,并讓他們了解自己能夠做些什么。取決于問題的嚴重性,你有兩種選擇:
- 通過一個能夠吸引用戶注意力的界面描述當前問題,并提出執行建議。使用這樣的界面作為反饋,可以讓用戶了解到應用本身并沒有出現問題。這樣還可以將主動權交還給用戶,讓他們決定執行矯正性的行為并繼續使用應用,或是切換到其他應用。
- 如果只有一部分功能不可用了,那么可以在用戶用到這些功能的時候,通過一個單獨的界面或是彈出提示(alert)來告訴他們當前的情況。只在用戶所訪問的功能確實無法工作的時候再使用彈出提示。