最新iOS平臺設(shè)計規(guī)范二|7大應(yīng)用架構(gòu)
編輯導(dǎo)讀:iOS是運行于iPhone、iPad和iPod touch設(shè)備上、最常用的移動操作系統(tǒng)之一。作為互聯(lián)網(wǎng)應(yīng)用的開發(fā)者、產(chǎn)品經(jīng)理、體驗設(shè)計師,都應(yīng)當(dāng)理解并熟悉平臺的設(shè)計規(guī)范。這有利于提高我們的工作效率,保證用戶良好的體驗。本文是iOS設(shè)計規(guī)范系列第二篇:7大應(yīng)用架構(gòu)。
架構(gòu)是有關(guān)軟件/系統(tǒng)整體流程、結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件/系統(tǒng)各個方面的設(shè)計。iOS關(guān)于架構(gòu)的指導(dǎo)原則分為7個如下的部分。
為了便于記憶,個人理解可以分為兩類,一類是使用流程:啟動 —新手引導(dǎo)—加載中—請求許可—設(shè)置項。另一類是結(jié)構(gòu)組建:模態(tài)和導(dǎo)航。(請注意:這兩個及其重要?。?/p>
一、啟動(Launching)
啟動體驗會使用戶應(yīng)用的感覺產(chǎn)生重大影響。無論用戶使用什么設(shè)備或者距上次打開多長時間,啟動體驗都應(yīng)該是快速無縫的。以下準(zhǔn)則可以幫助您設(shè)計令人愉悅的啟動體驗。
- 提供啟動屏幕。系統(tǒng)會在應(yīng)用啟動時顯示啟動屏幕,并迅速將其替換為應(yīng)用的第一個屏幕。啟動屏幕的功能是給人一種印象,即您的應(yīng)用程序快速且響應(yīng)迅速,同時允許加載初始內(nèi)容。為確保從啟動屏幕無縫過渡,設(shè)計啟動屏幕時應(yīng)當(dāng)盡量接近于APP首頁。(設(shè)計規(guī)范雖如此,但實際上大家基本都在用廣告,大型APP比如微信QQ會用自己的品牌)
- 啟動頁采用適當(dāng)?shù)姆较?。如果您的?yīng)用同時支持縱向和橫向模式,則應(yīng)使用設(shè)備的當(dāng)前方向啟動。如果您的應(yīng)用僅在一種方向上運行,則應(yīng)始終以該方向啟動,并在必要時讓人們旋轉(zhuǎn)設(shè)備。除非有令人信服的理由,否則無論設(shè)備向左還是向右旋轉(zhuǎn),處于橫向模式的應(yīng)用程序都應(yīng)正確定向自身。
- 避免事先詢問設(shè)置信息。人們對APP的預(yù)期是可以正常運行。我們應(yīng)當(dāng)首先保證大多數(shù)用戶,同時讓少數(shù)希望使用不同配置的用戶可以通過調(diào)整設(shè)置來滿足他們的需求。盡可能從默認(rèn)設(shè)置或通過同步服務(wù)(例如iCloud)獲取設(shè)置信息。如果您必須詢問設(shè)置信息,請在首次打開應(yīng)用程序時提示人們提供該信息,并告知用戶可以稍后在設(shè)置中進(jìn)行修改。
- 避免顯示應(yīng)用內(nèi)許可協(xié)議和免責(zé)聲明。讓App Store顯示協(xié)議和免責(zé)聲明,以便人們在下載您的應(yīng)用之前可以閱讀它們。如果您必須在應(yīng)用程序中包括這些項目,請以平衡的方式集成它們,而不會破壞用戶體驗。(實際是大多數(shù)應(yīng)用都在登錄頁面顯示協(xié)議和免責(zé)聲明,并要求用戶進(jìn)行勾選)
- 當(dāng)您的應(yīng)用重啟時,恢復(fù)以前的狀態(tài)。不要讓用戶自己去追溯重啟前位置。應(yīng)當(dāng)保留并還原應(yīng)用的狀態(tài),以便用戶可以從上次中斷的地方繼續(xù)。
- 不要鼓勵重啟。重新啟動會花費一些時間,并使應(yīng)用看起來不可靠且難以使用。如果應(yīng)用程序存在內(nèi)存或其他問題,經(jīng)常導(dǎo)致必須通過重啟才能恢復(fù),那一定要盡快解決掉這些問題。
- 避免要求別人對應(yīng)用程序進(jìn)行過快或過高的評分。在首次啟動后不久(或在用戶頻繁應(yīng)用程序前)詢問評級很煩人,并且很可能會減少您收到的有用反饋的數(shù)量。應(yīng)當(dāng)鼓勵經(jīng)過深思熟慮的反饋,并提供退出方式,絕不要強(qiáng)迫人用戶進(jìn)行評級。
二、新手引導(dǎo)(Onboarding)
APP啟動后,您就可以歡迎新用戶并與回訪的新用戶重新建立聯(lián)系??焖?,有趣且具有教育意義的新手引導(dǎo)可以幫助用戶從APP中獲得最大收益,而不會遇到麻煩。
- 提供新手引導(dǎo)幫助人們享受您的應(yīng)用程序,而不僅僅是設(shè)置它。用戶很高興有機(jī)會了解更多有關(guān)您的應(yīng)用程序的信息,但他們也希望它能夠正常工作。所以避免在新手引導(dǎo)中出現(xiàn)設(shè)置或權(quán)限許可信息。
- 快速進(jìn)入。在系統(tǒng)將啟動屏幕替換為初始屏幕之后,應(yīng)當(dāng)讓用戶立即進(jìn)入并開始享受您的應(yīng)用程序。如果您需要提供教程和引導(dǎo),請務(wù)必提供一種跳過它們的方法,而且切忌向老用戶展示它們。
- 預(yù)想用戶可能會需要的幫助。主動尋找和思考用戶可能被卡住的地方。例如:游戲中在暫?;蚪巧珱]有前進(jìn)時顯示一些有用的提示。讓用戶可以重播教程,以防第一次進(jìn)入APP的他們錯過任何內(nèi)容。
- 突出教程中的要點。為新用戶提供引導(dǎo)是好的,但這并不意味著這樣做就能成為優(yōu)秀的APP。好的APP應(yīng)當(dāng)是直觀和自然的。如果你的APP需要過多的引導(dǎo),那么請重新審視/反思你的設(shè)計。
- 讓學(xué)習(xí)變得有趣和易于發(fā)現(xiàn)。邊做邊學(xué)比閱讀一長串說明更有趣和有效。在上下文環(huán)境中,使用動畫和可交互性循序漸進(jìn)地引導(dǎo)用戶。要避免顯示看起來像可交互的屏幕截圖。
三、加載中(Loading)
加載內(nèi)容時,空白或靜態(tài)屏幕可能會使您的應(yīng)用程序看起來像死機(jī)了,從而造成用戶的混亂和沮喪,甚至離開APP。
- 表明加載狀態(tài)。至少要有一個加載的圖標(biāo),可以表達(dá)正在發(fā)生的狀態(tài)。更好的方式是:使用類似進(jìn)度條的形式,顯示明確的進(jìn)度,讓用戶可以判斷自己大概需要等待多長時間。
- 盡快顯示內(nèi)容。在用戶看到屏幕內(nèi)容之前,不要讓用戶干等著加載。你可以使用占位符文本、圖形或動畫來告訴用戶,這個區(qū)域的內(nèi)容還沒加載完成。在加載出內(nèi)容后直接代替這些占位符元素。后臺也要盡可能使用預(yù)加載,例如在播放動畫或用戶正在操作導(dǎo)航欄的選項卡時,后臺預(yù)先加載出來即將播放和顯示的內(nèi)容。
- 用引導(dǎo)或娛樂的方式來掩蓋加載的時間。比如很多游戲、視頻APP等,都可以放一段有趣的動畫或占位圖作為加載提示,緩解用戶焦急的心情。
- 自定義加載屏幕。盡管系統(tǒng)默認(rèn)的進(jìn)度指示器可以用,但有時會感覺它們脫離了主題,與APP的風(fēng)格甚至顯得格格不入。設(shè)計師可以考慮用自定義動畫亦或是與APP風(fēng)格相匹配的元素來設(shè)計,會使用戶有更沉浸式的體驗。
四、模態(tài)(Modality)
模態(tài),是一種設(shè)計方式。一般作為臨時性的形式出現(xiàn)在頁面當(dāng)中,和用戶先前上下文有明顯的區(qū)別。需要明確的操作才可以退出。模態(tài)的意義在于:
- 幫助人們專注于一個獨立的任務(wù)或一組緊密相關(guān)的選項
- 確保人們收到關(guān)鍵信息,并在必要時采取行動
iOS提供了警報、活動視圖(或共享表)和操作表的樣式,你可以在應(yīng)用程序的特定情況下使用。為了在你的應(yīng)用中呈現(xiàn)自定義的模態(tài)內(nèi)容,iOS 13和更高版本支持以下兩種表現(xiàn)風(fēng)格:
1.?工作表(卡片彈窗)
工作表演示樣式顯示為一張卡片,并覆蓋在頁面上。未被覆蓋的區(qū)域變暗顯示,無法進(jìn)行交互。父視圖或上一張卡片的頂部邊緣在當(dāng)前卡片的后面可見,這樣可以幫助人們記住他們在打開卡片時暫停的任務(wù)。人們通過以下方式關(guān)閉卡片:
- 從屏幕頂部向下滑動
- 卡內(nèi)容滾動到頂部時,可以從屏幕任意位置向下滑動
- 輕按一個按鈕
工作表常用在無法實現(xiàn)復(fù)雜任務(wù)的、非沉浸式的模式和內(nèi)容。
2.?全屏
全屏演示風(fēng)格涵蓋了整個屏幕。先前的視圖已完全覆蓋,從而最大程度地減少了視覺干擾。人們通過點擊按鈕來關(guān)閉全屏模式視圖。
使用全屏模式視圖獲取沉浸式內(nèi)容(例如視頻,照片或相機(jī)視圖),或者使用受益于全屏演示的復(fù)雜任務(wù)(例如標(biāo)記文檔或編輯照片)。
如果使用當(dāng)前上下文模式視圖樣式在拆分視圖窗格,彈出窗口或其他非全屏視圖中顯示模式內(nèi)容,則在緊湊環(huán)境中顯示模式內(nèi)容時,應(yīng)切換為使用工作表。
模態(tài)設(shè)計規(guī)范如下:
- 模態(tài)要在合適的時機(jī)使用。只有在需要將用戶的注意力集中在做出選擇或執(zhí)行與當(dāng)前任務(wù)不同的任務(wù)時,才能創(chuàng)建模態(tài)體驗。模態(tài)體驗使用戶脫離當(dāng)前的頁面并需要用戶主動關(guān)閉,因此只有當(dāng)創(chuàng)建模態(tài)體驗有明確的好處時才使用它。
- 在傳達(dá)重要信息或操作的情況下才使用警示框。通常情況下,彈出警示框意味著出現(xiàn)了問題。警示框會中斷體驗,需要點擊才能關(guān)閉。所以要讓用戶認(rèn)為打斷是有必要的,否則不要隨便用。
- 確保模態(tài)上的任務(wù)簡單且集中。不要在你的APP中創(chuàng)建另一個APP。如果一個模態(tài)任務(wù)太復(fù)雜,那么當(dāng)用戶進(jìn)入模態(tài)視圖時,他們可能會忽略他們之前被暫停的任務(wù)。尤其要謹(jǐn)慎地創(chuàng)建涉及視圖層次結(jié)構(gòu)的模態(tài)任務(wù),因為人們可能會迷路而忘記了如何追溯其步驟。如果模態(tài)任務(wù)必須包含子視圖,請?zhí)峁┣逦姆祷芈窂胶屯瓿陕窂健3峭瓿扇蝿?wù),否則不要使用“完成”按鈕。
- 始終要有取消/關(guān)閉模態(tài)視圖的按鈕。例如:你可以使用“完成”或“取消”。至少有一個按鈕以確保輔助技術(shù)訪問模態(tài)視圖,并代替手勢關(guān)閉模態(tài)視圖。
- 必要時,通過在關(guān)閉模式視圖之前進(jìn)行確認(rèn)來幫助人們避免數(shù)據(jù)丟失。不管人們是使用關(guān)閉手勢還是按鈕來關(guān)閉視圖,如果該操作可能導(dǎo)致用戶生成的內(nèi)容丟失,請出示說明情況并提供解決方法的操作表。
- 不要讓模態(tài)視圖出現(xiàn)在Popover(彈出式窗口)上。除非是警示框,任何元素都不該出現(xiàn)在Popover上。在極少數(shù)情況下,當(dāng)用戶在Popover中執(zhí)行操作后需要用到模態(tài)視圖時,請在顯示模態(tài)視圖之前先關(guān)閉Popover。
- 通常為模態(tài)任務(wù)設(shè)置一個標(biāo)題。當(dāng)用戶進(jìn)入模態(tài)任務(wù)時,他們會離開之前的頁面,因此最好使前后操作清晰連貫。你也可以在視圖的其他部分中,提供更全面描述任務(wù)或指導(dǎo)的文本。
- 模態(tài)視圖外觀應(yīng)與APP風(fēng)格統(tǒng)一。例如,當(dāng)模態(tài)視圖包含導(dǎo)航欄時,它應(yīng)該采用與APP導(dǎo)航欄相同的外觀。
- 為模態(tài)視圖的展示提供合適的過渡動畫。使用與APP風(fēng)格統(tǒng)一的過渡動畫,增強(qiáng)用戶對內(nèi)容轉(zhuǎn)變的認(rèn)知。iOS默認(rèn)的過渡方式是:模式視圖從屏幕底部向上滑入,被關(guān)閉時向下滑出。注意在整個APP中使用統(tǒng)一的模態(tài)轉(zhuǎn)換樣式。
五、導(dǎo)航(Navigation)
用戶往往會忽略APP的導(dǎo)航,除非當(dāng)某些操作達(dá)不到他們的期望。我們的任務(wù)是在不會引起用戶過度注意的情況下,讓導(dǎo)航結(jié)構(gòu)清晰、目的明確。導(dǎo)航在APP中應(yīng)該顯得自然和熟悉,不應(yīng)該主導(dǎo)界面或成為頁面內(nèi)容中的焦點。
在iOS中,有三種主要的導(dǎo)航樣式:
1. 分層導(dǎo)航
每一屏只能做一個選擇,直到到達(dá)你的目的地。如果要前往另一個目的地,您必須按原路一級級返回,并從最開始的位置做出的選擇。iOS的設(shè)置和郵件兩個APP就是使用這種導(dǎo)航樣式。
2. 平級導(dǎo)航
在不同內(nèi)容類別間進(jìn)行切換,像音樂和App Store兩個APP就是用的這種導(dǎo)航樣式。
3. 內(nèi)容驅(qū)動或體驗驅(qū)動導(dǎo)航
在APP的不同內(nèi)容間切換,或者由內(nèi)容本身定義導(dǎo)航。游戲、書籍和其他沉浸式APP通常使用此導(dǎo)航樣式。
一些APP會結(jié)合多種導(dǎo)航樣式,例如:使用平級導(dǎo)航的應(yīng)用可以在每個類別中使用分層導(dǎo)航。
導(dǎo)航設(shè)計規(guī)范如下:
- 始終提供清晰明確的路徑。用戶應(yīng)該知道他們在APP中的位置以及如何到達(dá)下一個目的地。無論導(dǎo)航風(fēng)格如何,操作路徑必須符合邏輯,可預(yù)知易于遵循。一般情況下,一個頁面只給用戶提供一個入口。如果他們需要在多個場景下看到一個頁面內(nèi)容,請考慮使用操作表、警示框、彈出式氣泡或模態(tài)視圖。
- 設(shè)計一種能快速、輕松地獲取內(nèi)容的信息結(jié)構(gòu)。為你的APP設(shè)計一個信息架構(gòu),在這個架構(gòu)中,只需要最少的點擊、最少的滑動和最少的頁面數(shù)量便可以訪問相應(yīng)內(nèi)容。
- 使用手勢操作讓頁面切換更流暢。讓用戶以最小的阻力在頁面之間跳轉(zhuǎn)。例如,你可以讓人們從頁面?zhèn)让婊瑒右苑祷厣弦粋€頁面。
- 使用標(biāo)準(zhǔn)導(dǎo)航組件。盡可能使用標(biāo)準(zhǔn)導(dǎo)航控件,例如頁面控件,標(biāo)簽欄,分段控件,表視圖,集合視圖和拆分視圖。用戶已經(jīng)很熟悉這些控件了,這樣能夠讓用戶更輕松地使用你的APP。
- 使用導(dǎo)航欄貫穿層級結(jié)構(gòu)。導(dǎo)航欄的標(biāo)題可以顯示層級結(jié)構(gòu)中的當(dāng)前位置,返回按鈕可以輕松返回到上一位置。
- 使用 Tab Bar(標(biāo)簽欄)展示對應(yīng)類別的內(nèi)容或功能。使用標(biāo)簽欄顯示對應(yīng)類別的內(nèi)容或功能。標(biāo)簽欄可讓人們快速輕松地在不同類別之間切換。
- 在iPad上,使用拆分視圖而不是標(biāo)簽欄。拆分視圖提供與選項卡欄相同的快速導(dǎo)航,同時更好地利用了大屏幕。
- 當(dāng)您具有內(nèi)容類型相同的多個頁面時,請使用頁面控件。頁面控件清楚地傳達(dá)了可用頁面的數(shù)量以及當(dāng)前處于活動狀態(tài)的頁面。天氣應(yīng)用程序使用頁面控件來顯示特定于位置的天氣頁面。
六、請求許可 (Requesting Permission)
APP必須得到用戶的授權(quán)才可以訪問其個人信息,包括:當(dāng)前位置、日歷、聯(lián)系人信息、提醒和照片等。雖然用戶可能會覺得APP直接獲取個人信息可能更方便,但他們也希望能夠?qū)ψ约旱碾[私數(shù)據(jù)進(jìn)行自我管控。
例如:用戶喜歡系統(tǒng)自動獲取自己的實際位置去標(biāo)記照片或?qū)ふ腋浇呐笥眩麄內(nèi)匀幌M梢赃x擇關(guān)閉這些功能。
在APP需要用到時才向用戶請求個人數(shù)據(jù)。用戶對個人信息的請求產(chǎn)生質(zhì)疑是很正常的,尤其是他們發(fā)現(xiàn)當(dāng)前的請求完全沒有必要時。確保只在用戶必須要用到個人數(shù)據(jù)時才會發(fā)出權(quán)限請求。例如:APP可能只有在激活位置跟蹤功能時才會請求獲得用戶的當(dāng)前位置。
解釋APP需要這些個人信息的目的。在系統(tǒng)的權(quán)限請求警示框中提供自定義文本(示例用途字符串)。使用簡短和具體、禮貌的文案,讓用戶感覺輕松,沒有壓力。文案中沒有必要包含APP的名稱 – 因為系統(tǒng)可以自動識別你的APP并帶入名稱。
僅在應(yīng)用需要正常運行時,才在啟動時請求權(quán)限。如果很明顯您的應(yīng)用程序依賴于其個人信息進(jìn)行操作,那么用戶將不會對此請求感到困擾。
沒有必要時不要請求位置信息。在獲得位置位置信息之前,檢查系統(tǒng)以查看是否已啟用位置服務(wù)。如果已經(jīng)開啟, 你可以在用戶真的需要用到該功能時再進(jìn)行警示框提醒,甚至可以直接省略掉警示框。
使用系統(tǒng)提供的警示框樣式。你可以在標(biāo)準(zhǔn)的權(quán)限警示框中自定義文本,但不要直接復(fù)制標(biāo)準(zhǔn)警示框行為的提示文本和外觀樣式。
七、設(shè)置項(Setting)
一些APP可能一開始就需要用戶進(jìn)行設(shè)置或配置選項,但大部分APP應(yīng)該避免或者講設(shè)置操作延遲。
成功的APP可以一開始就讓大多數(shù)人覺得好用、易用,同時還提供了一些便捷的路徑來調(diào)整體驗。當(dāng)你的APP可以滿足大部分用戶的需求時,你就可以弱化他們對設(shè)置的需要。
- 從系統(tǒng)中請求信息。如果APP需要有關(guān)用戶、設(shè)備或環(huán)境的信息,請盡可能向系統(tǒng)請求,而不是直接詢問用戶。例如:如果你想要知道用戶的郵政編碼來提供本地選項時,可以向用戶請求獲取他們的位置。如果用戶拒絕訪問其當(dāng)前位置,則優(yōu)雅地退回到手動輸入。
- 仔細(xì)考慮APP中設(shè)置選項的優(yōu)先級。APP的主頁是用來放置關(guān)鍵內(nèi)容或者常用選項的。次級頁面更適合放置偶爾才會更改的選項。
- 系統(tǒng)“設(shè)置”中應(yīng)當(dāng)放置不經(jīng)常更改的配置選項。系統(tǒng)的“設(shè)置”APP是更改系統(tǒng)配置的中心位置,但用戶必須離開你的APP才能到達(dá)“設(shè)置”APP。能在APP中直接調(diào)整設(shè)置會更方便。
- 在適當(dāng)?shù)臅r候提供去設(shè)置的快捷方式。如果APP包含引導(dǎo)用戶到“設(shè)置”的文本,例如:“轉(zhuǎn)到設(shè)置> MyApp>隱私>位置服務(wù)”,則會提供一個自動打開該位置的按鈕。
參考資料:
Apple Developer-Human Interface Guidelines.
#專欄作家#
曉吾,微信公眾號:體驗主義,人人都是產(chǎn)品經(jīng)理專欄作家。騰訊高級交互設(shè)計師,前創(chuàng)新工場、新浪微博交互設(shè)計師。專注社交創(chuàng)新與娛樂產(chǎn)品設(shè)計。
本文由 @曉吾 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!