多任務
在iPad上,你可以通過多任務界面或多指手勢快速地從一二應用切換到另一個應用。多任務的特性可以讓你同時使用兩個應用,通過Slide Over 、Split View或畫中畫模式。
設計一個符合多任務環境的應用,意味著應用不需要占用過多的CPU、內存、屏幕空間和其他系統資源。



原則
- 為隨時可能的打斷做準備,并且隨時恢復。當應用被打斷是應該快速保存當前狀態,當用戶重新回來時應該看到他們離開時的樣子。更多實現細節可參考App Programming Guide for iOS中的Preserving Your App’s Visual Appearance Across Launches
- 確保你的界面兼容顯示雙狀態欄。有幾種情況,例如正在通話中、錄制聲音會在屏幕最上面顯示額外的狀態欄。如果應用沒有兼容這種情況,可能會導致布局的問題。確保你的應用在出現這種情況是界面依然顯示良好。
- 暫停活動要求注意力或積極的參與。如果你的應用是一款游戲或媒體播放應用,確保用戶在切換到其他應用之后不會錯過任何東西。
- 對外部音頻有良好的支持。偶爾,你的應用的聲音輸出可能會被其他應用或系統自己本身打斷,例如來電或音樂播放可能會打斷你的應用的音頻輸出。對于主音頻輸出,例如播放音樂、廣播或有聲讀物,你的應用應該無限期的暫停自己的音頻輸出。對于較短的打斷,例如通知等,你的應用應該臨時降低自己音頻的音量或暫時暫停播放知道打斷結束。更多參考可見Audio
- 在后臺完成用戶定義的任務。如果你的應用正在執行一個任務,而且不需要用戶進行額外的輸入,那么在應用掛起之前應該在后臺完成該任務的執行。
- 謹慎地使用通知。通知用于告訴用戶重要的信息,但要避免過于頻繁地打擾用戶。更多參考見Notifications
關于iPad上的實現細節可以參考Adoptiong Multitasking Enhancements on iPad
通知
不管用戶的設備處于鎖屏還是使用狀態,應用都可以通過通知及時為用戶提供重要信息。每條通知包括應用名稱、應用小圖標和信息內容。通知可能伴隨著聲音,可能會在應用圖標上現實具體數量。
你可以選擇不同的通知類型:
- Banner:當設備正在使用時,會在屏幕上方現實幾秒然后就消失。
- Alert:當設備正在使用時,在屏幕上方顯示,知道被操作之后才會消失。
在非鎖屏的設備上,通過采用3D Touch的按壓或往下滑動通知來打開擴展視圖。這個視圖可以自定義而且四個按鈕來對應操作。
通知包括本地和遠程兩種:
- 本地通知是在當前設備發起和傳遞給用戶。一個代辦可能會使用本地通知來告知用戶即將進行的會議或日程時間。
- 遠程通知,也叫推送通知,是來自于服務器的。
原則
- 提供帶有有用信息的通知。注意通知本身提供的信息價值,使用完整的句子、合適的標點符號而且不要縮減信息——因為系統會自動處理這些工作。避免告訴用戶起打開應用進行具體的操作,因為一旦通知消失,用戶很難記起來。
- 不要同時發送多個通知,盡管用戶沒有任何的操作。
- 不要包含應用名稱和LOGO。因為信息會自動幫忙現實這些內容。
- 通過應用角標(Badges)來補充內容,而不是現實關鍵信息。因為角標是可以被關閉的。
- 保持角標的更新。通過用戶已經閱讀的信息應該更新應用的角標。
- 為通知提供聲音。當用戶離開屏幕時,聲音是一種引起用戶注意的方式。你的應用可以使用自定義的聲音或系統自帶的鈴聲。如果你使用自己的生硬,應該確保它的簡短、特別和質量。可以參考Local and Remote Notification Programming Guide中的Preparing Custom Alert Sounds。時刻記住,用戶可以選擇關閉通知的聲音。用戶同時也可以選擇振動。
- 考慮提供詳情界面。一個通知詳情頁面可以提供更多關于通知的信息,同時用戶無需打開APP就能進行快速操作。這個視圖應該包含有用的信息、可被是被和感覺是應用外的一個擴展。它同時也可以包含照片、視頻和其他內容。
- 提直觀的、有意義的操作。一個通知詳情視圖可以包括四個操作按鈕。通過簡單的標題名稱來描述操作產生的結果。一個通知詳情視圖也可以提供屏幕鍵盤來收集必要的信息。
- 避免提供不可恢復的操作。如果你必須提供這樣的操作,確保為用戶提供足夠的信息來避免出現不可預知的效果。
更多關于實現的細節可以參考Local and Remote Notification Programming Guide

打印
你的應用可以使用系統自帶的AirPrint技術來進行無線打印圖片、PDF文檔或其他支持打印的內容。
原則
- 確保打印按鈕容易被發現。如果你的應用有導航欄或工具欄,通過提供系統自帶的操作按鈕來觸發打印操作。用戶已經習慣了這些按鈕和使用它進行打印。你也可以通過自定義按鈕來觸發這些操作。
- 只有當內容可被打印時才出現打印按鈕。當打印不允許時不要出現打印按鈕。
- 提供相關的打印選項。考慮下用戶在打印內容時可能會操作的選項。可以考慮提供打印范圍和打印份數。
更多實現細節可參考Drawing and Printing Guide for iOS和UIPrintInteractionController

快速預覽
在你的應用內,可以通過Quick Look讓用戶預覽Keynote、Number、Page和PDF文檔,同時也支持圖片等其他類型。郵件可以通過Quick Look來預覽附件。
原則
- 在當前內容適當地展示內容預覽。在iPhone上如果你的應用有一個導航欄,那應該想展示其他界面一樣滑入現實預覽視圖。在iPad或你的應用沒有導航欄的情況下,通過一個全屏的包含導航欄的模態視圖來展示預覽內容。
更多實現細節可參考Document Interaction Programming Topics for iOS和Quick Look

Siri
你的應用可以集成Siri來執行某些任務。
- 音頻和視頻呼叫app。開始通話和查找通話歷史。
- 信息類app。發送信息和閱讀接收到的信息內容。
- 提供支付服務的app。發送和請求支付服務。
- 管理照片類app。查找和展示照片。
- Apps that offer transportation services. Book rides and provide ride status information.(此句不知道如何翻譯)
- 健康類app。開始、暫停、恢復、結束和取消訓練。
- 與CarPlay進行集成。
從你的應用反饋出來的內容會通過Siri來讀出來并展示在Siri界面上。如果需要的話,你的應用可以提供自定義內容給Siri進行展示。
原則
- 盡量提供語音驅動的體驗,不要要求觸摸和看屏幕。因為用戶在使用Siri的時候不是經常看著屏幕的。為了擴展的可能性就,讓用戶無需看著你的iPhone就能完成任務。
- 快速反應和減少交互。你的應用應該在接收到信息之后盡可能快的校驗信息和執行任務。當需要額外信息的時候應該提供有效的選項限定選擇的范圍。
- 把內容呈現在用戶面前。從Siri跳轉到你的應用應該直接定位到目標頁面。不要展示中間界面或內容。
- 相關、精確和合適。應用反饋的內容應該是與用戶請求的內容相關和展示用戶期望的內容。
- 默認選擇最安全和最低成本的選項。
- 通過特定的詞匯在提升準確率。你可以通過定義更多yoghurt在請求時使用的詞匯來幫助Siri學習更多。這些詞匯在你應用里需要唯一。提供的詞匯中不要包含與其他應用明顯關聯的名稱、術語。例如“Hey, Siri”。
- 提供范例。給Siri提供語法用于在用戶按下help按鈕之后,在Siri上面展示。通過這些語法教育用戶如何簡單有效地通過Siri使用你的應用。
- 確保自定義的界面可以很好地兼容Siri。
- 不要在自定義界面上包含應用的名稱和圖標。系統會自動幫你顯示這些信息。
- 不要展示廣告。不要在你的應用使用siri時展示廣告、營銷或應用內購。
- 不要試圖模仿和操控Siri。不要重新生產Siri已經提供的功能。
更多實現的細節可以參考SiriKit Programming Guide
電視提供者(TV Provider)
TV 應用通過系統提供全局訪問喜歡的、最近播放、推薦的電影和電視節目。
開始和恢復播放
- 確保平滑地過渡到你的應用。TV應用切換到你的應用時不會顯示你應用的啟動頁面。
- 顯示期望的內容。當切換到你的應用時用戶期望能馬上播放選擇的內容。
- 不要詢問用戶是否需要恢復播放。如果可以恢復播放,應該自己進行。
- 確保為對的用戶播放內容。如果你的應用有多個用戶的資料,TV應用在接受到一個播放請求時,可以識別其中的資料。
加載內容
如果加載的內容超過兩秒,考慮現實句話轉。
- 盡量避免加載頁面。如果內容加載得很快,那么加載頁不是必須的。
- 盡快開始播放。
- 設計黑色的加載頁面。
- 最小化加載頁的內容。
退出播放
- 顯示相關的頁面。當用戶退出播放時,顯示內容的詳情頁面,用戶可查看剛才播放的內容和恢復視頻播放。
- 為馬上的退出作準備。
單獨報名(Single Sign-On)
- 當用戶通過系統級別進行登錄時,避免顯示退出的選項。
- 不同通過調整隱私控制來促使用戶進行登出。