為日漸成熟的Android設計
Nielsen 最近的研究數據表 明,Android 系統的設備已經在數量上超過 iOS 系統了,所以并不難看出 Android 市場的繁榮正如日中天:有 4.8 億的用戶正在使用 Android 設備,每天有 100 萬個新的設備被激活。這意味著,每三個星期,新激活的 Android 設備數幾乎等于整個澳大利亞的人口數。
為了適應 Android 市場的快速增長,知名的 App 也以越來越快的步伐發布 Android 系統版本,例如 Instagram 的 Android 版本僅 僅在 10 天之內就獲得了 4000 的下載安裝。盡管這個平臺的擴張空前地快速,但絕大部分的 App 質量并不盡如人意。在 Google Play 很少有像在 iTunes Store 一樣多高質量的 App,部分的原因可能是由于 Android 在過去幾年中快速度過其青春期,而導致混亂和不穩定,于是很多設計師為了避免這種混亂而傾向于選擇 iOS 平臺。
當然很多系統的問題被夸大其詞,其中一些 Android 的問題在新版本中已經不復存在,針對仍然存在的一些問題,本文提供了一些解決方案,同時也為將要開始設計偉大的 Android 應用的你提供一些建議。
第一部分:青春期癥狀
許多 App 的表現不如預期是因為平臺的不成熟。即使 Android 擁有一個強大的實驗場所——為制造商和開發者提供了非常自由和開放的環境去創造他們想要創造的 App 或功能,但并沒有很多人愿意在一個如沙盒(Sandbox)的環境下來工作。不過如今,這個沙盒已經逐漸成長為可以承載偉大設計的基礎了。接下來的一些例子將為你展示 Android 如何從青春期變得成熟:
- Google 自己的 App 缺乏一致性 </ul>
- 在 Android 開發社區中,缺乏以用戶為中心的設計理念 </ul>
- 在不同設備以及不同的系統版本之間,有著明顯的一致性體驗差異 </ul>
- 更好的應用搜索 </ul>
- 適當的 Android 設計指引 </ul>
- 去除了菜單和搜索硬件按鈕 </ul>
- 碎片化并不全是壞事 </ul>
- 認識 Android </ul>
- 遵循設計指引 </ul>
- 便于 App 適應于幾乎任何設備
- 使應用程序使用起來更 Android
- 提供用戶熟悉習慣的 UI
- 使 App 開發過程更加容易
- 增加應用程序在 Google Play 市場獲得推薦的機會 </ol>
- 理解 Android 的外觀和感覺 </ul>
- 為不同的設備設計 </ul>
- 使用對比較強的文字和元素顏色,比如在重要的元素上避免使用白色或者淺灰色,因為可能在較差的屏幕上會看不見。
- 在不同亮度的環境下,不同的屏幕亮度(低亮度、高亮度、自動亮度)設置下檢查設計稿。
- 即使在使用標準尺寸的時候,要確認文字和 UI 元素在小屏幕或低分辨率屏幕上的顯示足夠大;你可以單獨為這些屏幕設置特殊的文字或視覺元素顯示尺寸。 </ol>
- 使用 Density-independent(分辨率自適應)定義布局 </ul>
- 為不同的分辨率設計 </ul>
- 考慮不同的系統版本 </ul>
- 為 App 提供拓展組件和壁紙 </ul>
- 測試你所支持的設備 </ul>
- 同時為平板設備設計 </ul>
- The Verge
- doubleTwist Alarm
- Skype
- Evernote
- Foursquare
- Tumblr
- New York Times
- Path
- Endomondo
- Expedia </ul>
并不是很久以前,幾乎所有 Google 家自己的 Android App 幾乎每個看起來都不太一樣:
上圖分別是 Google 在 2010 年五月設計的 Action bar 模式建議,但在 Android2.3 版本中的 Gallery(相冊)應用就忽視了這種設計標準;最下方是在 2011 年重新設計的該應用 Action Bar,不難看到 Google 自己花了一年多的時間才開始遵循自己的設計指引。
由于自身缺乏一致性,Google 并沒有給開發者樹立一個正確榜樣,正是因為這種缺乏一致性的設計指導和模式標準,導致了平臺上用戶體驗較差。好的設計是以人為本的,它利用技術幫人們達成 他們的目標。Google 并不像另一個極端 Apple 一樣,在最開始反復和開發者強調用戶體驗的重要性。
硬件制造商往往定制自己的系統 UI 和硬件按鈕,這就造成了設備的碎片化,使得測試和質量控制非常困難,在不同設備上設計一致體驗的 App 變得幾乎不可能。
上圖可以看到在不同的設備上,連 Home 鍵按鈕的位置全都不一樣。在這個快速增長和不斷變化的市場中,對獨立開發者來說很難正確的測試應用程序。因此,大多數的應用在真實的使用情景下并不像原先 被設計的一樣好用,或者干脆缺乏好的設計體驗。這些應用仍然在市面上,但不意味著我們也要做這樣的應用,Android 已經在很多方面得到了改善,足以支持你為廣大用戶設計一個有一致性體驗的 App。
第二部分:Android 正在變得成熟
Android 今天的用戶體驗比以往任何時候都更加強大,這使得 App 開發者和設計師更容易做出好的應用。當然一些早期問題仍然存在,但大部分問題變得更易處理,有些已經被完全解決了。其中一個很重要的遺留問題是 Android 市場上仍然很缺乏偉大的 App,但是在一個高速成長的系統平臺上,設計師和開發者會很愿意去嘗試解決這些問題。
以下幾點是一個日漸成熟 Android 系統為大家提供的:
早期的應被搜索被關鍵字所限制,并且會直接呈現所有搜索結果;新版的 Google 應用商店提供了功能分類和員工推薦,從而提升了發現應用的途徑。如下圖所示,新的應用商店提供了更多發現最新最酷應用的方式。
之前,Google 并沒有為每個應用必須的基本元素提供一些指導方向。自從創建了設計指引,就為應用的設計師和開發者提供了小的設計決策的判斷依據,于是乎我們終于可以專注于創造 App 的價值,并確保在不同設備上的一致性體驗,下圖是一個網格設計列表實例中的設計指引節選。
Google 開始去除了設備上的硬件按鈕,使整個硬件和軟件以更加優雅和便捷的方式被使用。
上圖是 Google 的 Nexus 4 手機,已經去除了搜索按鈕和菜單按鈕。當然各式各樣的 Android 設備仍然尋在,例如 LG 還在生產擁有菜單鍵的手機,但在某種程度上這種多樣性也是為什么 Android 應用程序能夠脫穎而出的主要原因。
碎片化也許是 Android 遺留問題中對設計師和開發者的最大挑戰,但這一點也構建了 Android 的 DNA,成為平臺體驗永恒的一部分。這種多樣性為設計人員提供了契機去使 App 獲得在全球范圍內盡可能多的用戶數量。學會適應這個碎片化的環境也會使你成為一個更好的設計師或開發者,因為你會需要更加廣泛的知識和更加高超的技術技 巧。所以比起可能獲得的成功來說,這是一個值得追求的挑戰。下面的部分將重點介紹如何做可以使你的 App 獲得更大的成功。
第三部分:創建成功 Android App 的小貼士
要了解 Android,應該先知道如何使用 Android 系統,并且了解這個系統的用戶。最好的方法也許就是買一些不同產家、不同屏幕尺寸甚至不同系統版本的設備來體驗。這不僅會幫助你認識用戶的多樣性,也可以 更好的測試你的 App。為你的 App 選擇最佳的支持設備,可從 Google 獲取最新的統計數據,選擇一個符合你要求的設備。另外,一些獨立報告,如 OpenSignal’s August 2012 report 也能夠幫助你進行設備選擇。
要記住的是,Android 系統的更新是由服務提供商控制的,所以,如 Google 家的 Nexus 系列就能夠更早獲得最新的系統版本。于是,擁有一臺最新的 Nexus 設備往往可以讓你最先體驗平臺的最新發布版本。你也可以通過購買二手設備來節約成本,但要在購買前確保它能夠運行你需要的 Android 版本(許多舊設備的系統不支持更新)。
遵循設計指引將幫助你創建一個感覺更加像“原裝”的應用,當然這僅僅是值得這么做的其中一個原因。設計指引還可以幫助你得到以下好處:
遵循 Android 的導航模式,使用平臺原生的導航元素同樣能夠有利于創建一個跨多終端一致的體驗。
上圖是聯系人列表在 iOS 和 Android 兩個系統的界面。為了使用平臺原生元素,將搜索和新建聯系人操作放置在了底部 Action bar 上,而不是像 iOS 中在上部。當然,在跨設備設計時,自定義 App 遇到的難度會更大,所幸有 Google 提供的新版設計指引,使得新系統的 Android App 看起來和 4.0 版本前創建的應用大為不同。
眾所周知 Google 在為了其所有的產品提供一個一致的視覺體驗上已經投入了非常多的努力,Android 當然是其中之一,Android 4.0 引入了自己的風格:簡單,平面,干凈(Simple, Plain, Clean)——注重功能本身而不是形式感。
這雖然在一定程度上為開發者和設計師提供了更大的自由度,但同時還是要考慮到 Android 視覺風格的精妙之處:用更少來表達更多(Saying more with less)。這說明了:簡單地從 iOS 系統復制樣式和元素也許不再好使。在發布一個使用舊風格或者包含其他平臺特征的視覺元素的全新 App 的時候,可能會造成用戶的反感或負面效果——微軟就發生過這樣一個例子。瀏覽 Android Niceties 是掌握 Android 風格和找到靈感的好方法。下圖是 Google 的 Search App,很好的體現了 Android 系統的外觀風格和感覺。
還有一個區分你的 App 的好辦法是通過它的圖標。與 iOS 不同,Android 的程序圖標可以采用任何形狀或是形式,用戶喜愛漂亮特別的圖標,甚至會因此很樂意在不常用到的情況下將你的程序圖標放置在首屏上。更多的圖標設計指引,參照 Icongraphy。下圖是一些圖標的例子。
當設計 App 的時候,首先要確保它能夠在大部分的設備上正常的運行。記住,不僅要適用于不同的屏幕尺寸和屏幕方向,也要注意適用于低亮度的屏幕或者是對比度較差的屏 幕,以及速度慢的低配置機器。比如一些便宜的機型只有低分辨率的并且對比度較低的屏幕,這時過小的文字很難被清晰的顯示,過大的文字又會顯示不下。這時就 要避免低對比度的文字和視覺元素傷害用戶體驗。以下就是一個自適應不同屏幕尺寸文字顯示的設計例子。
還有一些事情可能要注意:
為多樣性設計的一個很好的案例,詳見 Sebastian de With 講述 the Alarm App 創作過程的文章。
確保 UI 元素在不同分辨率的 Android 設備上看起來差不多大小是提供一致性體驗里很重要的一部分。這看起來是一件非常費力的任務,其實大可不必通過復雜的像素運算來得出每個按鈕或字體在每個特 定的屏幕上如何顯示,可以讓設備幫你處理這個問題。如下圖所示,是一個標準的圖標在不同分辨率設備上的顯示效果:官方推薦的按鈕尺寸是 48 像素,在從低到高的 4 個不同分辨率級別下系統自動處理了顯示效果。
通過 Density-independent pixels (DPs)的方式定義尺寸,你需要確保在每個屏幕上顯示的視覺元素的物理尺寸一致。詳細的設置方式,請查閱 Use Density-Independent Pixels。下圖是實際使用中被證明很好用的一個各視覺元素的尺寸設置建議。
為了在幾乎所有的 Android 設備上顯示清晰,需要滿足四個分辨率:低分辨率(LDPI),中分辨率(MDPI),高分辨率(HDPI)和超高分辨率(XHDPI)。一般從 640×960 屏幕分辨率開始,然后縮小以適應其他分辨率屏幕,如下圖所示。
MDPI 和 XHDPI 的顯示分辨率與蘋果 iPhone 的普通屏和視網膜屏剛好一致。所以,如果你的 App 有 iPhone 版本,可以直接使用它的布局排版,甚至可以簡單地在 iPhone 上測試設計效果。當然不要忘了 Android 特有的外觀和感覺。不可忽視的是,一個叫做 XXHDPI 的標準已經被添加到下一代移動設備中作為支持,這些設備將有大約 480 DPI 的屏幕。盡管現在還不存在這樣的設備,但因為 XXHDPI 標準目前被使用在如今使用 XHDPI 的 10 英寸平板設備的啟動圖標上,比如 Nexus 10。所以也許需要在設計各視覺元素時提前做好準備將你的 HDPI 拓展至 200% 的 XXHPI。
許多 Android 設備將不能夠升級到最新的操作系統了,并且新的系統往往也需要很久的時間才能全面占領市場。隨著設備的更新換代,用戶會逐漸不滿足于過時的應用圖標和控件 樣式。因此,需要盡可能提供最新的體驗,如果你打算支持應用程序運行在舊的平臺,為這些設備創建一個單獨的版本。
善于利用 Android 的一些特殊優勢,比如組件(Widgets)、壁紙(Live wallpapers)和消息通知(Notifications)。組件可以讓用戶在不運行 App 的時候接收更新,消息推送則可以幫助提升版本更新的安裝量。Google 為設計師和開發者提供了各種方便通知用戶的方式。下圖是一些例子,上方是音樂播放器的快速組件,可以讓用戶方便地進行音樂播放最常用的操作。下方是一個日歷應用的組件,讓用戶可以在首屏桌面上快速滾動查看日程安排。
Android 用戶非常喜歡定制他們的設備使其看起來個性化,所以這些組件或是墻紙就會給用戶很大的彈性空間來做這些事情。
在應用商店中最為常見的負面評價莫過于在某些承諾的機型上 App 不能正常運行。所以確保你的程序能夠正常運行在最為流行的目標設備上,并且只在你測試過的機型上發布 App。否則,就有可能會造成部分用戶失望,甚至給予差評。
盡管 Android 的平板電腦并不如他的競爭對手 iPad 火爆和流行,但是如果你的目標就是做一個真正跨多終端的 Android 應用,那就必須同時考慮 Android 平板了。官方設計指引為平板的 UI 和界面提供了多窗格布局(Multi-pane Layouts)的設計指引,以滿足碎片化設備的統一化體驗。平板和手機一樣使用同樣的圖形庫,但需要特別考慮平板使用的情景。比如說,相比于手機,人們 通常把平板舉得離自己眼睛更遠,并且輸入并沒有那么精確。所以平板的 UI 需要更大的字體,更大的按鈕和更多的留白。當然,最后別忘了通過平板應用的質量檢查表(Tablet App Quality Checklist)測試一下你的應用。
綜上所述,也許可以給 Android 一個機會!為 Android 設計在一開始看起來似乎充滿挑戰,但是通過以上這些方法和建議,將為一個出色用戶體驗的真正偉大的應用取得一個良好的開端。所以為這個日漸成熟同時新興的 平臺做設計是一件有趣和不斷學習的過程,在這個尋找創建偉大 App 的過程中你也許會掌握一系列的新技術,并發現很有價值的經驗。最后,帶來一些激發靈感的很不錯的 Android App: