ios12設計規範(上)

1.1 iOS設計主題:

  • 清晰: 整個系統中,任何字號的文字都必須清晰易讀,圖標表達含義準確易懂,修飾恰到好處,以功能驅動設計。留白、顏色、字體、圖形和其餘界面元素可以巧妙地突出重點內容並傳達交互性。
  • 順應: 流暢的動效和清晰美觀的界⾯面有助於用戶理解內容並與之交互,且不會干擾用戶。當內容佔據整屏時,半透明和模糊處理一般會暗示其餘更多的內容。減小使⽤用邊框、漸變和陰影,使界⾯面儘量輕量量化,從⽽而突顯內容。
  • 縱深: 清晰的視覺層和生動的動效賦予界面層次感,使其富有活力並有助於理解。使可觸發界⾯面元素更容易被找到能提高體驗的愉悅感,讓用戶在觸發相應功能或者獲取更多內容時不至於茫然無措。當用戶瀏覽內容時,流暢的過渡可以提供縱深感。

1.2 ios設計原則:

總體美感:

總體美感體如今⼀款App的視覺外觀、交互行爲與其功能結合的優異程度。
例如,一款協助用戶完成重要任務的App應該使用不易察覺且不會形成干擾的圖形、標準化控件和可預知的交互行爲,從而使用戶聚焦在任務自己。 反之,一款沉浸式體驗的App(如遊戲),須要提供一個有吸引力的界面,在鼓勵用戶探索的同時爲用戶帶來無窮的樂趣和激動。前端

一致性:

一致的應用程序經過使用系統提供的界面元素,衆所周知的圖標,標準文本樣式和統一術語來實現熟悉的標準和範例。該應用程序以人們指望的方式結合了功能和行爲。ios

直接操縱:

屏幕內容的直接操做吸引人們並促進理解。用戶在旋轉設備或使用手勢影響屏幕內容時會遇到直接操做。經過直接操縱,他們能夠看到他們行動的直接,明顯的結果。編程

反饋:

反饋可以響應交互操做,呈現結果,便於用戶了解狀況。系統自帶的iOS的App對用戶的每一個操做都提供了明確的反饋。安全

  • 交互元素在點擊時會被高亮顯示
  • 進度指示器顯示了須要長時間運行的操做進度
  • 動效和聲音使用戶可以更清晰地感知交互行爲的結果

隱喻:

當一個 App 的虛擬對象和行爲與用戶所熟悉的體驗類似時——不管這種體驗來源於現實⽣生活亦或是數字世界,用戶就可以更快速地學會使用這款App。 隱喻在 iOS 中可以起⽤用是由於用戶與屏幕在進行物理上的交互。服務器

  • 能夠經過移動分層視圖來顯示被遮擋的內容
  • 能夠拖拽並滑動對象
  • 能夠切換開關,移動滑塊,滾動數值選擇器
  • 能夠經過輕掃來翻閱書籍和雜誌

用戶控制:

在 iOS 中,用戶是決策者,而不是App。App能夠對用戶行爲提出建議,對可能形成嚴重後果的行爲發出警告,但不應該直接替⽤用戶作決策。優秀的 App在用戶主導和避免不想要的結果之間找到平衡。爲了讓用戶擁有掌控性,App可使用戶熟悉且可預知的交互元素,讓用戶二次確認破壞性的行爲, 而且保證能夠中止正在執行中的操做。架構

1.3 界面元素:

  • 欄(Bars): 告知用戶如今在App中所處的位置,提供導航,並且還可能包含按鈕或者其它用來觸發功能和交流信息的元素。
  • 視圖(Views): 包含用戶在App內最關注的信息,例如文本、圖形、動畫和交互元素的容器。視圖容許使用諸如滾動、插入、刪除和排列之類等交互行爲。
  • 控件(Controls): 觸發功能和傳遞信息。控件包括按鈕、開關、輸入框和進度指示器。

2.應用架構

2.1 無障礙

iOS爲視力喪失,聽力喪失和其餘殘疾的用戶提供普遍的輔助功能。
爲圖像,圖標和界⾯面元素提供替代文本標籤。 替代文字標籤在屏幕上不可見,但它們讓VoiceOver可聽見地描述屏幕上的內容,使視力障礙人士更容易導航。
響應可訪問性首選項。 若是您的應用程序使用UIKit實現其用戶界面,則文本和界面元素會自動適應某些可訪問性首選項,例如粗體和大文本。您的應用還應在適當時檢查並響應輔助功能首選項,例如啓用減小運動的選項時。實現自定義字體的應用程序應嘗試匹配系統字體的可訪問性行爲。
使用輔助功能測試您的應用。 除了文本和動做更改外,輔助功能選項還能夠更改對比度,反轉顏色,下降透明度等。啓用這些設置並觀察您的應用在啓用這些功能的用戶中的外觀和行爲方式。
包括隱藏式字幕和音頻說明。 隱藏式字幕容許聾人和聽力障礙者在視頻中感知口頭對話和其餘可聽內容。音頻描述爲視障人士提供重要視頻內容的口頭敘述。
使用足夠的顏色對比度。 您的應用中對比度不足會讓每一個人都難以閱讀內容。例如,圖標和文本可能與背景混合在一塊兒。在線顏色對比度計算器可幫助您準確分析應用中的顏色對比度,以確保其符合最佳標準。力爭最小對比度爲4.5:1,儘管7:1是首選,由於它符合更嚴格的可訪問性標準。有關其餘設計指南,請參閱顏色。app

2.2 載入中

當內容加載時,空白或靜態屏幕可能會使您的應用程序被凍結,從而致使混淆和沮喪,並可能致使人們離開您的應用。
在加載發生時明確說明。 至少,顯示一個活動微調器,表示正在發生的事情。更好的是,顯示明確的進度,以便用戶能夠判斷他們將等待多長時間。 儘快顯示內容。在看到他們指望的屏幕以前,不要讓人們等待內容加載。當即顯示屏幕,並使用佔位符文本,圖形或動畫來肯定內容尚不可用的位置。在內容加載時替換這些佔位符元素。儘量在後臺預加載即將播放的內容,例如在播放動畫或用戶正在導航關卡或菜單時。
教育或娛樂人們掩蓋裝載時間。 考慮顯示有關遊戲玩法,娛樂視頻序列列或有趣的佔位符圖形的提示。
自定義加載屏幕: 雖然標準的進度指標一般是正常的,但它們有時會感受脫離背景。考慮經過自定義動畫和與您的應用或遊戲風格相匹配的元素來設計更加身臨其境的體驗。有關其餘指導,請參閱進度指示器。iphone

2.3 模態情景

模態經過阻止人們在完成任務或關閉消息或視圖以前作其餘事情來建立焦點。
盡量減小使用模態。 一般,人們更喜歡以非線性方式與應用互動。考慮建立模態上下文時,只有在得到某人的注意力,必須完成或放棄任務以繼續使用該應用程序或保存重要數據時,才能建立模態上下文。
提供一種明顯且安全的退出模態任務的方法。 確保人們在解僱模態視圖時始終知道他們行動的結果。
保持模態任務簡單,簡短,重點突出。 不要在您的應用中建立應用。 若是模態任務過於複雜,人們可能會在進入模態上下文時忽略他們暫停的任務。特別警戒建立涉及視圖層次結構的模態任務,由於用戶可能迷路並忘記如何回溯他們的步驟。若是模態任務必須包含子視圖,請提供層次結構中的單個路路徑以及完成的明確路徑。避免使用「完成」按鈕執行除完成任務以外的其餘操做。
若是適用,顯示標識任務的標題。 您還能夠在視圖的其餘部分中提供更全面描述任務或提供指導的文本。
保留提供必要且理想的可操做信息的警報。 警報會中斷體驗並須要點擊才能解除,所以人們必須認爲入侵是有道理的。要了解更多信息,請參閱警報。
尊重通知首選項。 在「設置」中,用戶能夠指定他們但願如何從您的應用接收通知。遵照這些首選項,以便他們不會徹底關閉您應用的通知。
不要在彈出框上⽅方顯示模態視圖。 除了警報以外,彈出窗口上不應出現任何內容。在極少數狀況下,若是須要在彈出框中執行操做後顯示模態視圖,請在顯 示模態視圖以前關閉彈出窗口。
使用您的應用協調模態視圖外觀。 例如,模態視圖能夠包括導航欄。在這種狀況下,請使用與應用程序中導航欄相同的外觀。
選擇合適的模態視圖樣式。 您可使用如下任何一種樣式: 佈局

選擇適當的過渡樣式以顯示模態視圖。 使用與您的應用程序協調的過渡樣式,加強對臨時上下文切換的意識。默認過渡垂直滑動模式視圖從屏幕底部向上滑動,一旦被解除則向下滑動。翻轉式過渡彷佛水平翻轉視圖以顯示模態視圖。在視覺上,模態視圖看起來像當前視圖的背面。一旦被解僱,它就會退回。在整個應用中使用一致的模態轉換樣式。

2.4 導航

人們每每不不知道應用程序的導航,直到它不符合他們的指望。您的工做是以支持應⽤程序結構和目的的⽅方式實現導航,而無需關注自身。導航應該感受天然和熟悉,而且不應該主導界面或將焦點從內容中拉開。在iOS中,有三種主要的導航樣式。學習

  • 分層導航
    每一個屏幕作一個選擇,直到到達目的地。要前往另外一個目的地,您必須回溯您的步驟或從頭開始並作出不同的選擇。設置和郵件使⽤用此導航樣式。
  • 平面導航
    在多個內容類別之間切換,音樂和APP Store使用此導航樣式
  • 內容驅動或體驗驅動的導航
    經過內容自由移動,或內容自己定義導航。遊戲,書籍和其餘沉浸式應用一般使用此導航樣式。

有些應用程序結合了多種導航。例如,使用平面導航的應用能夠在每一個類別中實現分層導航。
始終提供清晰的路徑。 人們應該始終知道他們在您的應用中的位置以及如何到達下一個目的地。不管導航風格如何,經過內容的路徑都是合乎邏輯的,可預測的而且易於遵循。通常來講,給人們一個通往每一個屏幕的路徑。若是他們須要在多個上下文中查看屏幕,請考慮使用操做表,警報,彈出窗口或模態視圖。
設計⼀種信息結構,使其快速輕鬆地獲取內容。 以須要最少數量的點擊,滑動和屏幕的⽅方式組織您的信息結構。
使用觸摸⼿手勢建立流動性。 使用最小的摩擦力輕鬆移動界面。例如,您可讓人們從屏幕側⾯面滑動以返回上一個屏幕。 使用標準導航組件。 儘量使用標準導航控件,例如頁面控件,選項卡欄,分段控件,表視圖,集合視圖和拆分視圖。用戶已經熟悉這些控件,而且會直觀地了解如何繞過您的應用。
使⽤用導航欄遍歷數據層次結構。 導航欄的標題能夠顯示層次結構中的當前位置,後退按鈕能夠輕鬆返回上⼀個位置。 使用選項卡欄顯示對等類別的內容或功能。 標籤欄可以讓人們快速輕鬆地在不同類別之間切換,不管當前位置如何。 當您有多個相同類型內容的頁面時,請使用頁面控件。 頁面控件清楚地傳達可用頁面數和當前活動頁面數。Weather應用程序使用頁面控件來顯示特定於位置的天氣頁面。

2.5 新手上

提供啓動屏幕。 應用程序啓動時會出現啓動屏幕,從而給人的印象是應用程序快速響應,同時容許加載初始內容。此屏幕很快就會被您應用的第一個屏幕取代,所以除了可本地化的文本和交互元素外,它應該與此屏幕很是類似。要了解更多信息,請參閱啓動屏幕。
以適當的方向發射。 若是您的應用支持縱向和橫向模式,則應使用設備的當前方向啓動。若是您的應用僅在一個方向上運行,則應始終以該方向啓動,並讓人們在必要時輪換設備。除非有使人信服的理由,不然橫向模式的應用程序應正肯定位,不管設備是向左仍是向右旋轉。有關其餘指導,請參閱適應性和佈局。
迅速採起行動。 避免顯示啓動畫面,菜單和說明,這樣會縮短內容並開始使用您的應用。相反,讓人們潛入。若是您的應用須要教程或介紹序列,請提供一種跳過它們的方法,而不是向返回的用戶顯示它們。
預計須要幫助。 積極尋找人們可能被卡住的時間。例如,遊戲能夠在暫停或角色沒有前進時隨便顯示有用的提示。讓用戶重播教程,以防他們第一次錯過任何內容。
** 堅持教程中的要點。** 爲初學者提供指導是好的,但教育並不能代替優秀的應用程序設計。首先,讓您的應用程序直觀。若是須要太多指導,請從新訪問您的應用程序的設計。
讓學習變得有趣和可被發現。 邊作邊學比閱讀指令清單更有趣,更有效。使用動畫和交互性逐步和上下文教學。避免顯示看似互動的屏幕截圖。
避免事先詢問設置信息。 人們但願應用可以正常運做。爲大多數人設計您的應用程序,讓少數想要不同配置的應用程序調整設置以知足他們的需求。儘量從設備設置和默認值或經過同步服務(如iCloud)派生設置信息。若是您必須詢問設置信息,請在第⼀次在應⽤用內提示,並讓用戶稍後在您應用的設置中進行修改。
避免顯示應用內許可協議和免責聲明。 在App下載以前,讓App Store顯示協議和免責聲明。若是您必須在應用程序中包含這些項目,請以平衡的方式集成它們,而不會破壞用戶體驗。 當您的應用從新啓動時,恢復之前的狀態。不要讓人們回溯到您應用中的先前位置。保留並恢復應用的狀態,以便他們能夠在中斷的位置繼續操做。
不要讓人們過快或過於頻繁地爲您的應用評分。 過快或過於頻繁地要求評級是使人討厭的,而且會減小您收到的有用反饋的數量。爲了⿎鼓勵考慮周全的反饋,在要求評級以前,讓人們有時間對您的應用發表意見。始終提供退出評級提示的方法,而且永遠不要強迫用戶爲您的應用評分。
不要⿎鼓勵重啓。 從新啓動須要花費時間,使您的應用程序看起來不可靠且難以使用。若是您的應用程序有內存或其餘問題致使難以運行,除非系統剛啓動,您須要解決這些問題。

2.6 請求權限

用戶必須授予應用訪問我的信息的權限,包括當前位置,日曆,聯繫信息,提醒和照片。雖然人們很欣賞使用能夠訪問此信息的應⽤用程序的便利性,但他們也但願可以控制其私有數據。例如,人們喜歡可以使用本身的實際位置自動標記照片或找到附近的朋友,但他們也但願選擇禁用此類功能。
僅在您的應用明確須要時纔會請求我的數據。 對我的信息的請求持懷疑態度是很天然的,特別是在沒有明顯須要的狀況下。確保僅在人們使用明確須要我的數據的功能時纔會發出權限請求。例如,應用可能僅在激活位置跟蹤功能時請求訪問當前位置。
解釋您的應⽤用須要信息的緣由。 提供自定義文本(稱爲目的字符串或用法說明字符串)以顯示在系統的權限請求警報中,幷包含一個示例。保持文字簡短和 具體,使用句子,並禮貌,因此人們不會感到壓力。無需包含您的應用名稱-系統已標識您的應用。有關開發人員指導,請參閱保護用戶的隱私。
僅在您的應用運行所需時纔會在啓動時請求權限。 若是您的應用程序顯然依賴於他們的我的信息來操做,則用戶不會被此請求所困擾。
不要不必要地請求位置信息。 在訪問位置信息以前,請檢查系統以查看是否已啓用位置服務。有了這些知識,您能夠延遲警報,直到功能真正須要它,或者徹底避免警報。

2.7 設置

某些應用可能須要提供一種方法來進行設置或配置選擇,但大多數應用能夠避免或延遲這樣作。成功的應用程序能夠當即適用於大多數人,同時還提供一些方便的方式來調總體驗。當您將應用程序設計爲以大多數人指望的方式運行時,您能夠減小對設置的需求。
推斷你能夠從系統中獲得什麼。 若是您須要有關用戶,設備或環境的信息,請儘量向系統查詢,而不是詢問用戶。例如,不要讓某人輸入他們的郵政編碼,以便您能夠提供本地選項,請求使用他們當前位置的權限。
周到地優先考慮應用程序中的配置選項。 您的應用程序的主屏幕是一個選擇必要或常常更改的好地方。輔助屏幕更適合僅偶爾更改的選項。
在「設置」中公開不常常更改的配置選項。 「設置」應用是在整個系統中進行配置更改的中心位置,但人們必須離開您的應用才能到達目的地。在您的應用程序中直接調整設置會更方便。
在適當的時候提供設置的快捷方式。 若是您的應用包含將用戶定向到「設置」的文本,例如「轉到設置>MyApp>隱私>位置服務」,則會提供一個自動打開該位置的按鈕。

3.用戶交互

3.1 3D觸摸

3DTouch爲觸控交互提供了一個全新的維度。用戶能夠在支持的設備中,經過不同力度按壓屏幕來訪問額外的功能。App會經過展現菜單、顯示額外內容、播放動畫等方式來進行反饋。使用3DTouch功能不須要學習新的交互手勢,只要輕輕按壓屏幕就能夠輕易發現額外的內容。

  • 主屏交互(Home Screen Interaction)
    在主屏幕中,你能夠經過按壓一個支持3DTouch的App圖標來顯示動做面板。這個面板可讓你快速執行App程序中的常見任務或查看有趣的信息。例如,日曆App就提供了「建立事件」的快捷方式,還顯示了你的「日程安排」中的下⼀個事件。
  • 輕按和重壓(Peek and Pop)
    輕按可讓用戶使用3DTouch預覽一項內容,例如頁面、連接或者文件,預覽窗口處於頁面內容的最前端。只需用手指輕按就能預覽,而擡起手指就能退出預覽。如想要查看更多信息,只需重壓,直到預覽窗口彈出並充滿整個屏幕便可。在一些預覽窗口中,你能夠向上滑動來顯示相關的操做按鈕。例如,在瀏覽Safari中的網頁時,你能夠向上滑動屏幕,實如今「新標籤頁中打開」,「加入閱讀列列表」和「拷貝」這三個操做。
    輕按能夠提供實時的、內容豐富的預覽效果: 在理想的狀況下,預覽窗口是爲了給當前的頁面提供補充信息,或者幫助你決定是否打開該頁面。例如,先預覽一下郵件中的連接,再決定是否在Safari中打開或與朋友共享此連接。輕觸還能夠App在可被點擊的列表中,經過預覽補充信息來決定是否選擇該行。
    設計⾜足夠⼤大的輕按視圖: 須要設計足夠大的預覽視圖,使手指不會遮擋住內容。而且用戶經過視圖包含的信息來決定,是否應該重壓打開完整項目。
    輕按和重壓要保證場景的一致性: 若是你在相同類型的元素中有些地方支持輕按和重壓,在其它元素中不支持(好比同一個列表中第一個選項支持3DTouch功能,而第二個選項卻不支持),用戶就會對在什麼地方可使用這個功能產生混亂,或者認爲你的App仍是他們的設備發生了故障。
    避免在輕按視圖中顯示按鈕式元素: 若是這時用戶擡起手指來點擊面板中看起來像按鈕的元素,那麼輕按就會消失。
    容許每一個輕按視圖都能被重壓: 儘管輕按視圖能提供給人用戶所需的大部分信息,但若是他們決定直接離開當前頁面,直達該頁面時,那麼輕按也應該能轉換成重壓。重壓展現出的內容也應該和點擊該頁面時同樣。
    不要讓同一元素具有輕按和編輯菜單兩個功能: 當一個項目都啓用兩個功能時,不但會讓用戶感到困惑,也會讓系統難以判斷用戶的意圖。
    適時提供操做按鈕: 並不是每一個輕按都須要操做按鈕,但這是一個爲常見任務提供便捷入口的好方法。若是你的App已經爲該項目提供了自定義的觸控操做,那麼在最好在輕按中也加入一樣的操做。
    避免加上⼀個操做按鈕來打開輕按界面: 用戶通常都經過更用力的按壓來打開他們輕按的項目。因此,沒有必要再提供一個明顯的打開按鈕。
    不要讓輕按成爲惟一能執行動做的操做: 並不是全部設備都支持輕按和重壓,甚至有的用戶會關閉3DTouch功能。你的App應該考慮到其它觸發操做的方式。好比,你的App也能夠經過點擊和長按時出現的輕按視圖。
  • 動態照片(Live Photos)
    App能夠支持動態照片,按壓照片能夠用來查看動態的照片,包含動做和聲音來再現拍照時先後的片刻。

3.2音頻

用戶經過音量鍵、靜音鍵、耳機聲控和屏幕上的音量調節滑塊控制聲音。不少第三方配件也有聲控功能。音頻能夠經過內部或外部揚聲器、耳機輸出,甚至經過支持AirPlay或是藍牙的設備來無線輸出。不管聲音是你App的重要功能還只是一個點綴,你都應該知道⽤戶對聲音有什麼期待而且去知足他們。

  • 靜音(Silence) 用戶將他們的設備調至靜音來避免被突發的聲響(好比電話鈴聲和短信提示聲)打擾。他們也想要關閉沒有意義的聲音,包括按鍵聲、音效、遊戲背景音樂以及其它音頻反饋。當設備被設置成靜音後,只能播放用戶確認打開過的聲音,好比媒體播放中的聲音、鬧鐘、音頻和視頻信息。
  • 聲音(Volume) 不管是使用設備按鍵或是屏幕中的滑塊,用戶都指望音量的變化會改變整個系統音量,包括音樂聲和App內的音效。可是提示鈴聲音量是例外,它只能在音頻沒有播放的狀況下,被單獨調節。
  • 耳機(Headphones) 在私密環境中,用戶使用耳機聽聲音,而且可以解放雙手。當插入耳機時,用戶但願聲音可以自動繼續播放而不被中斷。當拔掉耳機時,他們但願播放可以當即暫停。
  • 設計良好的音效體驗(Designing a Great Audio Experience)
    有時自動調整音量,但不是整體音量: 你的App能夠調整特定的音量來達到很棒的音響效果。可是最終的音量仍是由系統音量來控制。
    能夠容許重置音頻: 用戶常常會想要選擇一個不同的音頻輸出設備。好比,他們會想要用客廳的立體音響、車載收音機或是蘋果電視來聽音樂。請支持這個功能除非你有十足的理由不這麼作。
    使用系統自帶的音量窗口來調節音量: 音量窗口是調整音頻的最好方法。這個窗口是能夠自定義的,它包括一個音量的滑塊,甚至還包括了一個重置音頻輸出的控件。
    使用系統自帶音效來實現短音和振動:
    若是聲音對你的App十分重要,請先設置音頻類型: 不同的音頻類型中,有的容許聲音被靜音鍵靜音、有的與其它聲音混合、或是容許App在後臺時播放。根據不同的類別和當前設備的音頻狀態來選擇合適的方案,而後將其配置到你的音頻中去。例如,非必要狀況下,請不要打斷用戶正在收聽的來自另外一個App的音樂。總之,當你的App在運行時,最好不要改變其原有類型,固然那種須要錄製和重放不同時間音頻的App除外。
    當時能夠從新播放被打斷的音頻: 有時正在播放的音頻會被另外一個App的音頻中斷。暫時性中斷(如來電鈴聲)被認爲是可恢復的。永久中斷(如Siri打開的音樂播放列表)被認爲是沒法恢復的。當一個可恢復的中斷髮生時,你的APP應該在中斷結束時自動從新播放被打斷的音頻。例如,⼀個正在播放配樂的遊戲和一個播放音頻的多媒體App都應該能夠恢復播放。
    讓其餘App知道什麼時候將暫時性的音頻播放完畢: 若是你的App可能會暫時中斷其餘App的音頻,它應該對音頻會話進行適當的標記,這樣其餘App就能知道什麼時候能夠安全的恢復。
    只在特定時間對聲音控件有反應: 不管你的App是在前臺仍是後臺運行,用戶能夠從你App的外部控制音頻播放,好比控制中心或耳機控制。若是你的App正在音頻相關的環境中播放音頻,或者鏈接到一個支持 AirPlay的設備上,那麼它能夠對音頻控制作出迴應。不然,當控件激活時,你的App不能中止其餘App正在播放的音頻。
    不要從新定義聲音控件: 人們但願音頻控制在全部App中都能保持一致。永遠不要從新定義聲音控件。若是你的App不支持相應控件,那麼它就不應該對它們作出響應。

3.3身份驗證

能夠經過讓用戶進行身份驗證的條件來爲他們提供有價值的服務,例如個性化體驗、訪問附加功能、購買內容或同步數據。若是你的App須要認證,那保持登陸過程的快速、簡單和天然,就不會讓你的App的體驗感變差。
在全部註冊和登陸流程中使用密碼自動填寫: 此功能自動生成並填寫密碼和安全代碼,以便人們能夠在驗證界面中花費更少的時間。全部應用程序都應該支持此功能。有關開發⼈人員指南,請參閱支持密碼自動填寫。
將登錄盡量日後排序: 當人們在作一些有用的事情以前被迫登陸時,他們往會放棄這樣的App。在強制用戶登錄前給他們⼀個愛上你的App的機會。在購物App中,讓用戶能夠在啓動時能當即瀏覽你的商品,而且只有在他們準備好購買的時候才須要登陸。在一個流媒體App中,也在登陸前讓用戶能夠搜索你的內容,看看你的App能提供些什麼。
解釋身份驗證的優勢,以及如何註冊: 若是你的App須要驗證,請在登陸屏幕上展現簡短友好的說明描述使用這個流程的緣由及好處。另外,請記住,並不是全部使用你的 App的人從一開始就有一個帳戶。確保你描述了如何得到一個帳戶,或者提供一個簡單的App內的註冊方式。
顯示合適的鍵盤類型來減小數據輸入: 例如要求填寫Email地址時,顯示Email鍵盤屏幕,其中要包含經常使用數據輸入的快捷鍵。 永遠不要使用「密鑰」這個術語: 當生物識別認證失效時,密鑰是用於解鎖用戶的iOS設備,並與Apple Pay進行身份驗證的。

  • 臉部識別和觸控(Face ID and Touch ID) 盡量讓你的App支持生物識別認證: Face ID和Touch ID是人們所信任的比較安全、熟悉的認證方法。若是用戶啓用了生物識別認證,你能夠假設他們理解它的工做原理,喜歡這份便利,而且願意隨時使用它。請記住,用戶可能會選擇在他們的設備上禁用生物識別認證,所以你的App要準備好應對這種狀況。
    向用戶展現一個簡單的驗證方法: 當人們不必選擇如何進行身份驗證時,這是最直觀的一種⽅方法。給他們一個簡單的選項,好比 Face ID,在初始方法失敗時,請求用戶名和密碼,在返回剛纔的操做。
    僅在響應用戶操做時啓動用戶認證: 選擇一些顯眼且明確的操做指示,好比點擊一個按鈕,確認用戶是想主動進行身份驗證的。在Face ID的狀況下,它也提升了用戶面對攝像頭的可能性。
    始終標識身份驗證方法: 例如,使用Face ID在你的App上登陸的按鈕,應該被命名爲「用Face ID登陸」,而不只是「登陸」。 **準確使用驗證方法:不要在支持Face ID的設備上引用Touch ID。一樣,也不要在支持 Touch ID的設備上引用Face ID。要檢查設備的功能並使用適當的術語。
    總之,不要在你的App中提供選擇生物識別身份驗證的設置: 若是在系統層面啓用了生物識別身份驗證,那麼就假定⽤戶想要使用它。若是你實現了一個App特定的設置,那麼你的 App會要求用戶進行生物識別認證,可是實際上在系統範圍內它是被禁用的。

3.4 數據鍵入

不管是點擊界面元素仍是使用鍵盤,鍵入信息都是一個乏味的過程。當⼀款App尚未提供實際的幫助,就要求用戶大量的鍵入內容,會致使進程變慢,用戶就可能會很快失去耐心,甚至徹底放棄這個App。
盡量顯示選項: 數據輸入高效化。例如,考慮使用選擇列表來代替打字,由於從提早設定好的選項中進行選擇,要比打字容易多了。
儘量的從系統中獲取信息: 不要強迫用戶提供那些能夠自動或是在用戶許可內就能獲取的信息,好比聯繫人或是日曆信息。提供合理的默認值:儘量地預填可能性最大的信息值。提供準確的默認值能夠進行快速決策。
只有在收集完必要的信息以後才能進行下一步: 在啓動「下一步」或「繼續」按鈕以前,確保全部須要的字段都有值。使用可視化按鈕,提示用戶能夠繼續 進行下一步。
馬上驗證填寫信息: 當你在填寫完一份冗長的表格後,又不得不回到前面去糾正錯誤是讓人十分沮喪的。儘量在輸入後當即檢查字段值,這樣用戶就能夠立刻糾正它們(例如輸入用戶名後立馬檢查格式和是否被註冊,而不須要在輸入完密碼後再一塊兒驗證)。
只有在必要時使用文本信息: 只要在真正須要的信息,才使用字段表達。
將信息列表化以高效預覽: 在列表和集合中,選擇⼀個選項是更容易的。考慮將信息列成表,以字母順序排序或以另⼀種邏輯⽅方式排序,從而能夠快速掃視和選擇(如商品類目以字母排序的方式在列表中展示出來)。
在文本框中顯示提示,以助溝通: 當字段中沒有其餘文本時,文本字段能夠包含如「電子郵件」或「密碼」之類的佔位符文本。當佔位符文本足以表述清楚的話,不要再使用單獨的標籤來進行描述。

3.5 拖放

只要⼀根⼿手指,用戶就能夠將選定的照片、文本或其餘內容,從一個位置拖到另外一個位置來進行移動或複製,而後鬆開手指將其放下。
觸摸並按住選擇的內容使它看起來會上升並附着在用戶的手指上。當內容被拖動時,動畫和視覺提示要識別你想放置的位置。當沒法放下,或着拖拽只能複製而不是移動時,該系統會顯示別的標識來提醒用戶。

  • 原位置和⽬目的地 (Sources and Destinations) 拖放包括將選中的內容從原位置轉移到目的地。這些位置能夠在同一集合中,如文本視圖,或分屏模式下兩端的文本視圖。
    注意: 在App程序之間拖放的內容是複製文件,而不是內容自己(即拖動只是將內容複製到另外一個應用中而不是移動存儲位置)。
  • ⽀支持拖放功能(Supporting Drag and Drop) 拖放是一種高效的、直觀的功能,用戶指望在整個系統中都能實現。若是你的App包含或生成了了文本,照片,視頻,音頻,或者其餘用戶想要移動,複製或插入的內容,你的App應該支持拖放功能。
    全部可選擇和可編輯的內容都能進行拖放: 可選擇的內容應該是可拖動的可編輯的內容也是能夠放置內容的。還要確保你的 App 可以支持在這些區域複製粘貼。
    容許將內容放到控件上: 總之,配置控件要支持數據輸入或選擇(好比文本字段)接受可放置的內容。
    儘量使⽤用標準文本視圖和輸入框: 系統自帶的這些組件都包含對拖放功能的原生支持。
    爲提升效率,考慮支持多項拖放: 在不少App里,用戶能夠用一根⼿手指拖動一個內容,同時用另外一根手指輕敲其它內容,就會在選擇的第一個內容的手指下方顯示出堆疊效果。而後,用戶能夠將它們像組同樣拖放到指定的位置。例如,主屏幕容許用戶根據這個方法選中多個App程序圖標,並將其拖放到一個文件夾中。在APP中,如 「照片」,提供了用戶能夠在拖拽以前選擇多個對象的選擇模式。
    肯定在你的 App 中拖放內容是移動仍是複製: 通常來講,當原位置和目的地的載體是相同時(在文檔中拖動文本),才能夠移動,而當它們不同時(在文檔之間或App程序之間進行拖動),則使用複製。固然,狀況並不是老是如此,重點是拖放應該是直觀的。在「提醒」中,列表之間拖動操做是⼀一種移動而不是複製,由於這是用戶想要的。而在 App 程序之間拖放內容就老是複製了。
    用戶是應該能夠撤銷拖放的: 一般狀況下,當用戶無心中將內容放到錯誤的位置時,他們應該可以使用撤銷來將App返回到以前的狀態。也就是說,被放置的內容能夠被移除,若是被放置的內容是從你的App程序里移出的,那麼它應該恢復到原來的位置。 考慮用一下彈簧加載: 有了彈簧加載,用戶能夠經過拖動已選擇的內容,並在不放置的狀況下暫停,來激活某些控件,好比按鈕和分欄組件。例如,在郵件中,選擇的消息能夠被拖動到導航欄的 Back 按鈕上,以到達郵箱里的其餘位置。永遠不要讓彈簧加載成爲激活控件的惟一方法。把它看成一種能夠被發現的小驚喜。在大多數狀況下,一個彈簧加載的控件也應該能夠響應一個點擊手勢。
  • 提供可拖動的內容 (Providing Dragged Content) 能夠自定義拖動項的預覽: 一般,在用戶⼿手指下顯示被拖動的預覽效果應該是半透明內容,代表拖動正在進行中,並使用戶可以看到被拖動內容下面的目的地。
    儘量的提供多個拖拽數據的顯示類型,從高保真到低保真排序: 例如,當提供線條稿時,你的App能夠按照順序依次提供一個PDF矢量顯示,一個具備透明度的無損PNG圖像,以及一個沒有透明度的有損的 JPEG 圖像。這樣,用戶就能夠選擇最高質量的顯示來導入到目的地。
    將自定義對象的本地版本做爲最豐富的數據形式: 例如,一個容許人們拖拽圖表的App應該首先顯示本地的圖表對象。而後,它應該爲那些不支持圖表對象的App提供可替代的圖像版本。
    當你 App 的內容傳輸會比較耗費時間或資源密集的時候,文件要提供程序擴展功能: 文件提供程序擴展,並確保完成,即便你的 App 不再運行也能作到。請注意,只有用戶放下內容後傳輸纔會開始。
    當你的 App 須要時間傳輸內容時請提供進度指示: 若是內容須要下載或大⽂件須要時間複製時,請提供進度信息。至少提供內容的總大小,這樣就能夠計算出剩餘的時間,並顯示恰當的進度指示器。
  • 接收放下的內容(Accepting Dropped Content) 使用視覺提示來識別潛在目的地,並預覽放置內容的效果: 高亮顯示、插入點光標和動畫都是識別目的地的好方法。當內容被拖過來時,視圖能夠微妙地閃爍並改變顏色,或者段落能夠分開爲拖動的圖像騰出空間。當屏幕上有多個可能的目的地時,一次只識別一個。若是原位置和目標容器是相同的,那麼能夠不須要高亮顯示,除非內容徹底從原位置中拖出來,而後從新進入。 當內容被放下時或不再位於目的地之上時,確保不顯示高亮。
    自動滾動目的地的內容: 當內容被拖到目的地的邊界以外時,你的App可能須要判斷滾動顯示當前視圖遮擋的內容,或者容許⽤用戶繼續拖動到徹底不同的目的地。若是你的App讓用戶進行滾動拖放,那就定義一個區域,當拖拽的項目被放置在上面時,這個區域會自動滾動。例如,當內容被拖到正文區域的頂部或底部時,郵件中的長草稿會自動滾動。標準文本視圖和輸入框會自動採用這 種方式。
    提取和展現要能展示出放置的豐富內容: 例如,你的App能夠爲一個圖表提供的幾種表現形式。若是你的App支持圖表,它能夠提取並顯示出原始 圖表對象。若是你的 App 不支持圖表,它能夠提取並顯示圖表的圖像版本。
    只提取放置內容的相關部分: 例如,若是用戶想將某個聯繫人拖到郵件的收件人中,只需提取名稱和電⼦子郵件便可,而不用聯繫人的地址信息。
    當內容放置後,在表視圖和精選視圖中顯示佔位符: 佔位符會暫時指示當內容完成傳輸後,將停留在哪里。
    在放置內容須要時間進行傳輸時顯示進度: 默認狀況下,當App程序之間發⽣耗時的轉移時,系統會顯示一個App模式警報。可使用自定義進程的顯示方式,好比在表視圖或集合視圖中顯示佔位符的進度指示器,這樣就不會阻止用戶使用你的 App 了。請注意,只有用戶放下內容後傳輸纔會開始。
    爲放置的內容啓動一個進程時提供反饋: 若是用戶將內容放置到發起任務的一個控件上,例如,將視頻上傳至共享站點,就會顯示任務已經開始並通知用戶其進度。
    放置失敗時通知用戶: 若是放置的內容不能插入,多是由於文件傳輸中斷,要通知用戶放置內容失敗。用適當的樣式來放置文本: 當原位置和目的地支持相一樣式的文本屬性時,放置的文本應該保留其原始字體、字型、大小和其餘屬性。不然,放置文本應該採用目的地的樣式。
    提供一種直觀的方式,當用戶不能當即撤銷拖放時,能夠選擇退出: 例如,一個分享性的App會在放下內容以前提供一箇中間的附加表。這個附加表能夠用來提供其餘內容,好比狀態消息(如內容數量和大小),同時還提供一個取消按鍵。當照片被拖進共享的照片流時, App 就顯示了這種方式。

3.6 反饋

反饋讓用戶知道App如今作什麼,發現他們下一步應該作什麼,而且了解行動的結果。

將狀態和其餘類型的反饋整合到你的界面中: 理想狀況下,用戶能夠在不操做或不被打擾的狀況下得到重要信息。

避免不必要的警報框: 警報框是一種強大的反饋機制,但應該只用於傳遞重要的信息。若是用戶看到太多包含可有可無信息的警報框,他們很快就會學會忽略之後的警報。

  • 觸覺反饋(Haptic Feedback)
    觸覺技術爲用戶提供了一種身體接觸的觸覺反饋,從而得到用戶關注並強化他們的操做。

請謹慎使用觸覺反饋: 過分使用會引發認知混亂並下降反饋的重要性。

通常來講,觸覺反饋是爲了響應用戶發起的操做: 用戶很容易將觸覺與他們所發起的操做聯繫起來。隨意的反饋會讓用戶感到不連貫,以及形成誤解。

不要從新定義反饋類型: 爲確保用戶有一致的體驗,請按照預期使用反饋類型。

調整好給用戶觸覺反饋的視覺體驗: 提供視覺和觸覺的反饋,以在操做和結果之間創建更深的聯繫。確保動畫是清晰準確的,在視覺上符合用戶的感覺 。

不要依賴單一的交流方式: 並不是全部的設備都支持全方位的觸覺反饋,若是能夠選擇的話,用戶徹底能夠在設置中禁用該功能。此外,只有當設備激活,而你的App是在當前頁面時,觸覺反饋纔會發生。經過視覺和聽覺的提示來補充觸覺,以確保重要信息不不會被遺漏。

當視覺反饋被遮擋時,用戶可使用觸覺: 好比將一個對象拖到屏幕上的某個位置,被用戶的手指遮住了。這時候生成反饋,讓用戶知道什麼時候到達特定的位置。

在開始反饋以前,確認系統已準備就緒: 由於在提供觸覺反饋時可能會有⼀些延遲,因此最好在請求反饋以前確認系統已提早加載。不然,觸覺反饋可能有很長的延時,致使用戶感受他們的操做與屏幕上看到的東西沒有聯繫。

同步觸覺和音效: 觸覺不會自動與聲音同步。若是你想使用音效的話,要讓它和觸覺同步。

3.7 文件處理

用戶在建立、查看和操做文件時不用考慮文件系統。若是你的App須要運行文件時,儘量地減小文件處理的時間。

讓用戶相信文件即時保存,除非主動取消或刪除: 通常來講,不要讓用戶去即時保存文件。相反,在用戶打開和關閉文件,以及切換到另外一個App程序時,會按期自動地保存更改。在某些狀況下,例如在編輯現有文件時,保存和取消項可能仍然是有意義的,由於它們能夠幫助確認什麼時候編輯的內容已經被保存。

不要提供建立本地文件的選項: 用戶一般但願全部的文件均可以在他們的全部設備上使用。只要有可能,你的App就應該經過iCloud等服務來支持雲文件存儲。

設計一個直觀的圖形文件瀏覽界面: 理想狀況下,使用戶熟悉的系統文檔應用來瀏覽。若是你設計了一個自定義的文件瀏覽器,請確保它是直觀且高效的。

讓用戶在不離開App程序的狀況下預覽文件:

與其餘App共享文件: 若是能夠的話,你的App能夠經過文檔的擴展功能與其餘App共享文件。也可讓用戶瀏覽和打開其餘App 的文件。

3.8 手勢

用戶經過在觸摸屏上使用手勢來與iOS設備交互。操做手勢與內容產生了緊密的我的聯繫,加強了對屏幕的直接操縱感。

通常使用標準操做手勢: 用戶熟悉了標準的手勢,就不喜歡被迫學習不同的方法來作相同的事。在遊戲和某些沉浸式App中,自定義手勢是這種體驗的樂趣之一。在通常App中,最好使用標準的手勢,這樣用戶就不用費力去發現或記住它們了。

避免使用標準手勢執行非標準操做: 除非你的App是一個極具可玩性的遊戲,不然從新定義標準手勢會變得混亂和複雜。 不要禁用系統的屏幕邊緣手勢: 除了標準的手勢以外,一些額外的手勢還能夠調用全局操做,好比在屏幕的邊緣經過滑動屏幕來顯示主屏幕(在支持的iphone上)、控制中心、通知中心和Dock(在iPad上)。用戶依靠這些手勢來操做每⼀個App程序。

基於界面的導航和操做提供補充性的快捷手勢,而不是替換: 只要有可能,提供一種簡單、直觀的方法來引導或執行操做,即便這意味着須要額外的點擊。許多的系統App提供了清晰可點的返回上一頁的按鈕的導航欄。但用戶也能夠經過從屏幕的一側滑動來返回。在iPad上,用戶能夠按下Home鍵退出到主屏幕,或是使用四指捏合的手勢。

使用多點手勢來加強App的體驗: 雖然涉及多個手指同時操做的手勢不適用於每個App,可是他們可以豐富一些App的體驗,譬如遊戲和繪圖App。例如,一個遊戲可能包含多個屏幕控制,好比操縱桿和發射按鈕,就能夠同時進行操做。

  • 標準⼿手勢(Standard Gestures) 用戶一般指望如下的標準手勢在整個系統和每一個App程序中都是相同的。

點擊: 激活一個控件或者選擇一個對象。
拖拽: 讓一個元素從一邊移動到另外一邊,或者在屏幕內拖動元素。
滑動: 快速滾動或平移。
橫掃: 單指返回上一頁,顯示分屏視圖中的隱藏視圖,滑出列表行中的刪除按鈕,或在輕按顯示操做列表。在iPad中四指操做⽤用來切換App。
雙擊: 放大並居中內容或圖片,或者縮小已放大過的。
捏合: 向外張開時放大,向內捏合時縮小。
長按: 當在可編輯或可選文本中執行時,顯示用於光標定位的放大視圖。在某些與集合視圖相似的視圖中操做,進入對象可編輯的狀態。
搖晃: 撤銷或重作

3.9 近場通訊技術

NFC 使設備可以在幾釐米的範圍內進行無線信息交換。在支持此項功能的設備上運行iOSApp,可使用NFC掃描來讀取現實世界相關的電⼦子標籤上的數據。例如,用戶能夠掃描一個玩具來鏈接視頻遊戲,購物者能夠掃描店內的標誌來拿到優惠券,或者零售員工能夠掃描產品來跟蹤庫存。

  • 應用內標籤閱讀(In-App Tag Reading) 一個 App 能夠支持單個或多個對象的掃描,當用戶須要掃描某件東西時,系統會彈出⼀一個掃描表。

不鼓勵用戶接觸物理對象: 要掃描標籤,iOS設備只需簡單地靠近標籤,而不須要觸碰。當要求用戶掃描對象時,使用「掃描」和「靠近」等術語,而不是「點擊」和「觸碰」。

使用通俗易懂的術語: 一些人可能不熟悉NFC這個概念。爲了讓它變得通俗易懂,應避免說起技術上的、面向開發者的術語,好比核心NFC、近場通訊、NFC和標籤。相反,要使用大多數人都能明白的友好會話式的術語。

爲掃描提供簡潔的指導說明: 提供完整的帶有結束標點符號的句子。肯定要掃描的對象,並適當地修改文本以便進行後續掃描。保持⽂文本簡短,避免截斷。

  • 背景標籤閱讀(Background Tag Reading) 經過背景標記閱讀,用戶隨時快速掃描標籤,無需先打開應用程序並啓動掃描。在支持背景標籤讀取的設備上,只要屏幕亮起,系統就會自動查找附近的兼容標籤。在檢測到標籤與應用程序並將其匹配後,系統會顯示一條通知,用戶能夠經過該通知將標籤數據發送到應用程序進行處理。

支持後臺和應用內標籤閱讀。對於使用不支持背景標記讀取的設備的用戶,您的應用仍必須提供應用內掃描標記的方式。

3.10 撤銷和重作

許多App容許用戶經過搖晃設備來撤銷和重作某些操做,好比打字或刪除。當以這種方式啓動時,會出現一個警告框提示用戶確認或取消撤銷(重作)。

簡要描述一下將要撤消或重作的操做: 撤銷和重作的警告提示框標題會自動地包含「撤銷」或是「重作」這樣的前綴(以及後面的空格)。你須要在前綴後面提供額外的一兩個詞語用來描述什麼會被撤銷或是重作。例如,你能夠建立警告提示,例如「撤銷名稱」或「重作地址更改」。

若是你已經使用搖晃手勢進行撤銷和重作,則不要將其用於其餘操做: 儘管你能夠經過編程方式給搖晃手勢賦予多種功能,但卻冒着讓用戶困惑的風險,這樣就會讓你的App更難用。

節制地使用撤銷和重作按鈕: 當App提供多種方法來執行相同的任務時,會讓用戶感到困惑。若是你的App真的須要專有的撤銷和重作按鈕,請使用標準系統提供的圖標,並將它們放在一個預期的位置,好比導航欄中。

只在當前情境中執行撤銷和重作操做: 撤銷和重作必須對當前的(而非以前的)情境有明確直接的影響。

4.系統能力

多任務處理(Multitasking)

多任務處理功能可讓你經過iOS設備上的多任務界⾯,或者在 iPad 上使⽤多點觸控⼿勢,隨時從⼀個 App快速切換到另⼀個App。 在 iPad 上,多任務處理功能還可讓你在「幻燈⽚」、「分割視圖」或「畫中畫」模式下同時使⽤兩個App。在屏幕右側向左滑動能夠進⼊「幻燈⽚」模式,它能讓你在不離開當前App的狀況下暫時性地使⽤第⼆個App,例如在使⽤Safari時快速查看你的郵件收件箱。「分割視圖」模式可讓你同時使⽤兩個並排的 App,⽽ 「畫中畫」 模式可以讓你在使⽤另⼀個 App 時觀看視頻。

設計出⼀個可以在多任務環境中良好運⾏的 App 取決於你的App能夠與設備上的其餘App和諧共存。這意味着你的App不該該佔⽤太多 CPU、內存、顯示屏幕或者其餘系統資源。它應該很好地應對來⾃其餘App的突發⼲擾和聲⾳,能快速流暢地在顯示界⾯和後臺來回切換,而且在後臺運⾏時表現得可靠穩定。

作好隨時中斷的準備,並時刻準備着恢復: 你的App能在任什麼時候候被中斷。當中斷髮⽣時,你的App應該快速精準地保存當前狀態,這樣當⽤戶返回時,就能夠⽆縫地從他們離開的地⽅繼續使⽤。

確保你的界⾯可以適應雙倍⾏⾼的狀態欄: ⼀些進程中的電話、錄⾳、共享功能在屏幕頂部會顯示額外的⼀個狀態欄。在⼀些沒有考慮該狀況的App中,這個增長的⾼度會遮擋其餘界⾯元素或者把它們擠下去。你須要在這些狀況下測試你的 App,確保你的界⾯可以應對⾃如,而且仍然保持美觀。

須要格外注意和應對暫停操做: 若是你的App是⼀個遊戲或者媒體播放應⽤,請確保你的⽤戶在切換到其餘App時也不會錯過任何內容。當他們切換回來時,讓他們從上次離開的地⽅繼續使⽤。

合理處理來⾃應⽤外的聲⾳: 有時你的 App 的⾳頻可能會被來⾃其餘 App 或是系統的聲⾳打斷。⽐如,來電鈴聲或是被 Siri 打開的⾳樂播放列表。當這些狀況發⽣時,你的App應該以⽤戶預期的⽅式處理。對於重要的⾳頻⼲擾,⽐如⾳樂播放、⼴播或有聲讀物,你的 App 應該⽴刻暫停其⾳頻。對於短暫的⼲擾,⽐如GPS導航通知,你的App應該暫時下降⾳量或是先暫停⾳頻等待⼲擾結束,再繼續播放。

在後臺完成⽤戶發起的任務: 當⽤戶開啓了⼀個任務,即便離開了App他們也但願任務可以繼續完成。若是你的App正在執⾏⼀個不須要⽤戶額外輸⼊的任務,請在 App 回到前臺前,在後臺完成它。

有效控制通知次數: ⽆論你的App在前臺、後臺或是徹底沒有在運⾏,它都能在特定的時間給⽤戶推送通知。你可使⽤通知來傳達重要訊息,可是 要避免⽤戶被過多通知煩擾。⽐如,當你的App在後臺時,不要每完成⼀個任務就給⽤戶發送⼀個通知。相反的,可讓⽤戶經過返回你的 App 來 查看任務的完成狀況。

通知

⽆論設備是鎖屏狀態仍是正在使⽤中,App都能隨時利⽤通知功能來提供及時和重要的信息。⽐如,通知可能會在如下⼏種狀況發⽣時出現:新消息到來時、⼀個事件將要發⽣時、有新數據可獲取時或是某些狀態發⽣改變時。⽤戶能夠在鎖屏上、屏幕頂部(使⽤設備時),以及通知中⼼(經過從屏幕 頂部邊緣下滑呼出)看到通知欄。每一個通知都包含 App 的名稱、⼀個 App 圖標以及⼀條消息。 通知也可能伴隨着聲⾳提示,以及 App 圖標上⼩紅點⻆標的出現和更新。

  • 提示: 通知能夠是本地或是遠程的。本地通知由同⼀個設備發出和接收。⼀個待辦事項App可使⽤本地通知來提醒⽤戶⼀個將要到來的會議或是到 期⽇。遠程通知,也叫作推送通知,來⾃⼀個服務器。⼀個多玩家遊戲就可使⽤遠程通知讓每一個玩家知道何時輪到他們。
  • 通知表現 每一個 App 的通知⾏爲均可以在設置⾥單獨管理。只要是⽀持通知功能的App,你能夠徹底地啓⽤或禁⽤這個功能。你也能夠設置通知是否在通知中⼼和鎖屏上可⻅,是否在 App 圖標上出現⻆標,以及選擇如下⼀種通知樣式
  • 橫幅: 當設備在使⽤時在屏幕頂部出現⼏秒,而後消失。
  • 提醒框: 當設備在使⽤時在屏幕頂部出現,直到被⼿動關閉。

在未鎖屏時點擊通知,或是在鎖屏時滑動這項通知,均可以實現如下⼏種⾏爲:結束通知、把它從通知中⼼移除,打開發送通知的應⽤並展現相關的內 容。⽐如,在未鎖屏的設備上點擊⼀條新的郵件通知,就會打開郵箱而且顯示新的信息。

在未鎖屏時,上滑通知或讓它消失,或讓它關閉通知,也可將它從通知中⼼ 移除。

使⽤ 3D Touch 在⼀個通知上按壓,或是在未鎖屏時下滑通知⾯板,就能打開擴展的詳情視圖。這個視圖⽀持⾃定義而且包含最多四個操做按鈕。⽐如, ⼀個待辦事項App能夠推送⼀個含有詳情視圖的任務通知,上⾯有能夠推遲任務和標記爲已完成的按鈕;⼀個⽇歷事件的通知提供了「⼩睡」功能來短 暫推遲事件的鬧鈴。

  • 注意: ⽤戶在第⼀次使⽤ App 的時候,會被要求明確地選擇是否接收來⾃該App的通知。若是有⼈選擇不接收通知,他們一樣也能經過訪問「設置」 來選擇接收。

設計⼀個很棒的通知體驗

提供有⽤的通知: ⽤戶打開通知是爲了快速得到最新消息,因此你的重點是提供有價值的信息。通知顯示須要使⽤完整的句⼦,句⾸英⽂字⺟⼤寫,合適的標點符號,而且不要刪減你的信息——必要時系統會⾃動處理。當通知被關閉時⽤戶很難再記住它們,因此要避免在通知中引導⽤戶打開你的App, 進⼊指定⻚⾯而後點擊指定按鈕來完成⼀些任務。

**即便⽤戶沒有做出迴應,也不要爲同⼀件事情發送多個通知:**⽤戶只有在⽅便時纔會處理通知。若是你爲同⼀件事發送了多個通知,而且填滿了通知中⼼,那麼⽤戶就極可能關閉全部來⾃你的App的通知。不要在通知⾥包含你的App的名字和圖標:系統會⾃動在每條通知的頂部顯示這些信息。

提供描述性⽂字,以便在通知預覽被隱藏時顯示: 根據⽤戶的設置,出於隱私考慮通知預覽可能會被隱藏。在這種狀況下,僅顯示你的App圖標和通⽤描述(通知是默認描述)。爲了向⽤戶提供⾜夠的內容,你的 App 應該提供能簡潔描述通知內容的⾃定義⽂本,如朋友請求,新評論,提醒或發貨提供聲⾳以輔助你

的通知提醒: 當⽤戶沒有盯着屏幕時,聲⾳是⼀個引發他們注意的絕佳⽅式。當⼀個待辦事項App開始執⾏重要任務時可能就會發出⼀個提示⾳。你的 App 可使⽤⾃定義聲⾳或是系統的提示⾳來達到效果。若是你使⽤⾃定義的聲⾳,請確保它是簡短、不同凡響而且製做精良的。須要注意的是⽤戶能夠隨時地關閉通知提示⾳。他們也能夠開啓伴隨着聲⾳的振動——這隻能被⼿動開啓,⽽不是經過你的 App 程序⾃動啓⽤。

考慮提供⼀個詳情視圖: ⼀個通知的詳情視圖提供了關於該通知的更多信息,而且容許他們在不離開當前環境的狀況下去執⾏快捷的操做。這個視圖應該包含有⽤、易識別的信息,讓⼈感受就是⼀個你的App的⾃然延伸。它能夠包含圖⽚、視頻以及其它內容,它還能在顯示時動態更新。⽐如,⼀個拼⻋ App 就可以在該窗⼝顯示⼀張地圖,並標出⼀輛⻋正在朝着你當前的位置駛來。

提供直觀、有⽤的操做: ⼀個通知的詳情視圖能最多包含四個操做按鈕。這些按鈕⽤來執⾏常⽤、省時的任務,⽽不⽤打開你的 App。使⽤簡短、英⽂⾸字⺟⼤寫的名稱明確地描述該操做的含義。⼀個通知的詳情視圖還能在屏幕上呼出⼀個鍵盤⽤來收集執⾏操做須要的信息。⽐如,⼀個通信 App 能夠容許⽤戶直接在新消息通知的詳情視圖上回復。

避免展現破壞性的操做: 要在通知詳情視圖⾥展現破壞性操做以前請仔細考量。若是你必須展現它們,確保⽤戶擁有⾜夠的上下⽂信息,以免出現意外後果。破壞性的操做應該以紅字呈現。

⻆標

⻆標是⽤來補充說明通知,⽽不能⽤來表示重要的信息: 須要注意App的⻆標能夠被關閉。若是你的App依賴於經過⻆標來傳達重要信息,就等於你在冒着⽤戶會錯過這些信息的⻛險。

⻆標僅⽤於通知: ⻆標不該該⽤於顯示其餘類型的數字信息,例如空⽓質量,⽇期,股票價格或天⽓。

保持⻆標實時更新: 當收到對應的消息時要⽴即更新你的App的⻆標數字。⽤戶只有在看到確切提示以後纔會進⼊你的App查看。請注意,將⻆標上的數字清零意味着同時在通知中⼼移除全部相關的通知欄。

打印

你的 App 能夠利⽤系統⾃帶的 AirPrint 技術來使⽤兼容的打印機實現圖⽚、PDF 以及其它內容的⽆線打印。當⽤戶在有 AirPrint 功能的應⽤內瀏覽可打印的內容時,他們能夠經過點擊導航欄或是⼯具欄上的操做按鈕打開選項⾯板,而後再點擊打印按鈕來打開打印視圖。 這個視圖提供了⼀個可⽤打印機的列表以及⼀些⾃定義選項,⽐如打印的份數、⻚⾯範圍,而且提供了⼀個開始打印的按鈕。 讓打印選項易於發現: 若是你的App有⼀個⼯具欄或是導航欄,請使⽤系統提供的操做按鈕來打印。⽤戶對這個按鈕更加熟悉,而且在其它應⽤中也 是⽤它來打印。若是你的 App 沒有⼯具欄或是導航欄,那麼設計⼀個⾃定 義的打印按鈕來代替。

只在能夠打印的狀況下才容許打印: 若是在你的屏幕上沒有任何內容或是沒有可⽤的打印機,那麼在⽤戶點擊操做按鈕後禁⽤打印按鈕。若是你的App使⽤⾃定義的打印按鈕,在⽆法打印時讓其不可點擊或是隱藏它。

提供有⽤的打印選項: 思考⽤戶在打印你的內容時會想要指定哪些選項。能夠考慮選擇⻚⾯範圍和打印份數的選項。也能夠啓⽤附加的選項,⽐如雙⾯打印,若是這樣有意義而且打印機也⽀持的話。

快速查看

在你的app中,快速查看功能可讓⽤戶預覽Keynote、Numbers、Pages、PDF⽂檔、圖⽚以及其它類型的⽂件,即便你的應⽤並不⽀持這些⽂件格式。也可使⽤該功能來查看郵件的附件。在下載附件以後,郵件信息中會顯示附件的圖標和⽂件名。點擊圖標就能預覽附件。

在當前環境下合理地展示預覽窗⼝: 在 iPhone 上,若是你的 App有導航欄,讓預覽視圖下移留出位置給導航欄,就和你的App 其它層級的視圖⼀樣。 在iPad或是沒有導航欄的App內,⽤全屏有導航欄的模態視圖中打開預覽視圖。經過以上兩種⽅法,導航欄就能提供退出快速查看狀態的按鈕,以及預覽特定的⼀些按鈕,⽐如分享和標記這樣的操做。若是你的App包含⼀個⼯具欄,那麼預覽特定的按鈕就會在⼯具欄出現⽽不是導航欄。

評級和評價

評級和評價能夠幫助⽤戶在考慮是否嘗試App時作出合理的決定。良好的評級和積極的評論意味着你的App能得到更多下載,⽤戶反饋可讓你深⼊瞭解你的 App 在現實世界的使⽤狀況,從⽽更好地幫助你實現將來的開發⼯做。提供良好的總體體驗是提高評級和⿎勵積極評價的最佳⽅法,但在適當的時候要求提供反饋也很重要。在請求⽤戶對你的App進⾏評級時,請牢記這些注意事項:

在⽤戶與你的 App 有⼀定程度互動後再請求⽤戶對其進⾏評級: 例如,在達到某個遊戲等級或完成某個⽣產任務時提示⽤戶。絕對不要在⽤戶第⼀次使⽤或者進⾏新⼿引導時請求評級。給⽤戶充⾜的時間,讓他們對你的 App 有⾃⼰的意⻅。

不要中斷⽤戶: 特別是當他們在執⾏緊急或壓⼒很⼤的任務時。尋找合適的時機發送評級請求。

不要變得讓⽤戶討厭: 重複的評級提示可能會刺激,甚⾄可能會讓⽤戶對你的App產⽣負⾯情緒。評級請求⾄少間隔⼀周或兩週,並在⽤戶與你的 App 有進⼀步互動後能夠再次提示。

系統評級和審查提示 系統爲 App 提供了⼀致且不⼲擾的⽅式來請求⽤戶進⾏評級和評論。要使⽤此功能,你只要識別你的⽤戶在體驗中反饋意⻅的位置。若是⽤戶還沒有提供反饋,而且你的App最近也沒有提出請求,那麼系統將顯示⼀個應⽤內提示,請求⽤戶進⾏評級和評論。⽤戶能夠點擊提供反饋或關閉提示。(在 「設置」中,⽤戶還能夠選擇不接收全部已安裝應⽤的評級請求提示。)在365 天的週期內,系統 ⾃動限制每一個App的提示顯示次數爲三次。

最好使⽤系統提供的提示: 系統的評級提示提供了⼀個熟悉,有效的體驗,旨在使⽤戶的影響最⼩。不要使⽤其餘控件來請求反饋: 因爲系統限制了評級提示出現的頻率,因此嘗試⽤控件請求反饋可能會致使不顯示評級提示。

提示: 回覆⽤戶評論是⼀個與⽤戶溝通,解決問題,並可能提⾼App評級的 好⽅法。

截圖

⽤戶能夠經過截取屏幕截圖來捕獲屏幕上顯示的內容。從iOS11開始,屏幕截圖在被截取後會在屏幕底部以預覽形式簡要顯示。⽤戶能夠將預覽圖滑動 到屏幕邊緣來關閉它(若是⽤戶沒有任何操做,預覽窗⼝會在⼏秒鐘後⾃動關閉),點擊預覽窗⼝便可快速訪問即時標記和共享⼯具。屏幕截圖被保存 到「照⽚」中的「截圖」專輯中。

截取本地屏幕時,請勿更改 App 的界⾯: 系統提供的屏幕截圖功能在截取截圖時提供了⾜夠的界⾯和功能。⾃定義截圖啓動界⾯的更改和功能是重複的,沒必要要的,可能會令⼈困惑。若是你的 App 適⽤該功能,當其餘⽤戶使⽤該設備截取截圖時,能夠提醒⽤戶。

電視提供商

你的 App 能夠與 TV App 和 single sign-on 進⾏交互,爲⽤戶提供⾼度⽅便和⼀致的娛樂體驗。

TV App 交互 TV App 能夠全⾯訪問系統的收藏,最近播放的,以及推薦的電影和電視節⽬。

開始並恢復播放 當⽤戶請求在 App 中重放內容時,TV App 會⾃動打開你移動端的 App, 並向你的移動設備發送通知。

確保平滑過渡到你的App: 轉換到移動設備上的App時,TVApp會變成⿊⾊,且不會顯示啓動屏幕。移動端的App應該在開始播放或恢復內容以前⽴即呈現⿊屏,保持視覺連續性。

⽴即顯示預期內容: ⽤戶指望在你的App轉換完成後,所選內容就開始播放(從App的⿊屏直接跳到播放內容)。避免提供閃屏,詳細屏幕,介紹 動畫或任何其餘花費時間的障礙。這在恢復播放時尤其重要。

不要詢問⽤戶是否要恢復播放: 若是能夠恢復播放,則應⾃動執⾏此操做⽽ ⽆需提示確認。

確保爲正確的⽤戶播放內容: 若是你的App⽀持多個⽤戶配置⽂件,TVApp能夠在發出播放請求時指定配置⽂件。開始播放以前,你的App應⾃動切換⾄這個設定。若是播放請求沒有指定配置⽂件,則請求⽤戶在播放開 始以前選擇⼀個,以便未來能夠直接提取此信息。

載⼊內容 若是加載須要兩秒以上,請考慮顯示⼀個帶有動態加載圖標的⿊⾊屏幕,且不沒有其餘內容。

儘量避免使⽤加載屏幕: 若是您的內容快速加載,則不須要加載屏幕。

儘快開始播放: 若是須要加載屏幕,加載⾜夠的內容以後再開始播放,並繼續在後臺加載剩餘的內容。

設計⿊⾊加載屏幕: 在內容播放的過渡期間,可能會顯示加載屏幕。爲了與TVApp的淡⼊淡出功能相融合,因此應該顯示⿊⾊屏幕。 加載屏幕上的內容最⼩化: 若是你⼀定要讓加載屏幕上包含品牌或圖像,請儘可能保持⿊⾊背景並⽆縫銜接播放。

退出播放 退出播放後,⽤戶仍然在你的 App 中,⽽不是返回到 TV App。不要讓⽤戶迷失⽅向。

顯示⼀個有相關內容的屏幕: 退出播放時,保留⽤戶正在觀看內容的屏幕視圖,幷包含⼀個恢復播放的選項。若是詳細信息屏幕不可⽤,請顯示⼀個包含⽤戶正在觀看的內容或你的 App 主菜單的菜單。

準備即時退出: 在收到回放通知後儘快準備退出屏幕,以便⽤戶即便在播放開始後⽴即退出,也能夠看到退出畫⾯。

單點登陸 許多流⾏的電視提供商容許⽤戶在系統級別登陸他們的賬戶,消除了逐個應⽤驗證身份的須要。若是你的App須要電視提供商進⾏身份驗證,請使⽤ 此功能提供最有效的⼊⻔體驗。

當⽤戶在系統級別登陸時,避免顯示退出選項: 若是你的App必須包含退出選項,則調⽤該選項,將⽤戶指向「設置」>「電視提供商」以退出其賬戶。

不要經過調整隱私控制來指示⽤戶退出: 「設置」>「隱私」中的電視提供商控制不是退出機制。這些設置可讓⽤戶管理可訪問其電視提供商賬戶的 App。

相關文章
相關標籤/搜索