這個問題其實(shí)是相當(dāng)復(fù)雜的。從 Google 的發(fā)布會提出 Material Design 的設(shè)計規(guī)范以來,許多人都為 Material Design 所驚艷到。但事實(shí)上,大多數(shù)應(yīng)用都無法很好及時跟進(jìn)這一設(shè)計標(biāo)準(zhǔn)。這一點(diǎn),尤其是在國內(nèi),顯得更為的突出。我自己實(shí)踐 Material Design 也有了一段時間,我覺得至少有三點(diǎn)原因。
一、Material Design 設(shè)計語言非常復(fù)雜,學(xué)習(xí)成本高,實(shí)現(xiàn)難度大。
于 Material Design 復(fù)雜的設(shè)計語言相比,我敢說,學(xué)習(xí)難度比你跟進(jìn) iOS 的平面化的開發(fā)標(biāo)準(zhǔn)要困難十倍以上。Material Design 并不是使用 Google 提供的這些控件、圖片設(shè)計出來的東西就是 Material Design 了。Material Design 的核心是一個高度抽象化的設(shè)計邏輯是對真實(shí)事物的邏輯層面的模擬,比起 iOS 以前那種單純視覺上的擬物比起來,這是一種非常高層次的擬物概念,理解起來確實(shí)比較費(fèi)事。
舉個例子來說,
當(dāng)你有一個如同這樣的頁面布局。
這樣的頁面布局下,當(dāng)用戶手指從下向上滾動屏幕的時候,我們先想象一下,這個布局應(yīng)該如何跟隨調(diào)整?通常情況下,我們會選擇整頁內(nèi)容一起向上滾動。但實(shí)際上,這種方法并不是很正確。
我們仔細(xì)觀察這個布局,去掉狀態(tài)欄,這個頁面也有五個不同的“色塊”組成的獨(dú)立元素。他們分別是 用來選擇操作的頂欄Toolbar,然后是 Featured Image,然后是 Topic,下方的 Detail,和一個標(biāo)記狀態(tài)的 Button。
然后我們把這五個東西想象成五張真實(shí)存在的紙片,他們堆疊在一起類似于下圖這樣的:

當(dāng)你移動下面的 Detail 頁的時候,其他元素其實(shí)應(yīng)該有著不同的相對運(yùn)動才對,而不是整體上移。比如 Featured Image 不動,下面的紙片從它上方運(yùn)動覆蓋移動過去,而推到頂時,Topic 頁可以成為這頁的標(biāo)題,而下方的 Detail 也繼續(xù)移動。這個設(shè)計來自于 Google I/O 2014 App 的設(shè)計。(此應(yīng)用源代碼可以到 GitHub 下載)
這樣的設(shè)計邏輯并不是來自于哪個現(xiàn)成的模板,而是針對你應(yīng)用的不同布局不同考慮的,甚至是像素級的細(xì)節(jié)考慮,對設(shè)計者的要求很高,對程序?qū)崿F(xiàn)的要求同樣也很高。這是 Material Design 中許多細(xì)膩的 “激動人心的細(xì)節(jié)” 背后深藏的設(shè)計邏輯。更何況,我只能說,我舉的這個例子也是 Material Design 復(fù)雜語言的一個很小的部分而已。
二、Material Design 的設(shè)備兼容性不夠好。
Material Design 的設(shè)備兼容性是比較差的,當(dāng)然比起當(dāng)年 Holo 設(shè)計在 Android 2.x 上的完全不兼容不同,Material Design 是可以做到 4.x 的半兼容的。所謂半兼容,指的是使用 Google 提供的控件和兼容包,可以基本顯示。但是比如狀態(tài)欄的顏色的設(shè)置、各個控件的 elevation 陰影、selectableBackground 的按鈕響應(yīng)動畫都會失效。

(如上圖這樣的 Elevation 效果,在 Android 4.x 上會被直接“壓扁”顯示)
而與 Android 2.x 更是完全不兼容了。開發(fā)者即使愿意忍痛讓 4.x 用戶看一個不完整的設(shè)計,也不能滿足 2.x 用戶的兼容需求。
雖然這種苛刻的兼容需求對于大多數(shù)應(yīng)用來說都不是很有關(guān)系,但是比如像 QQ(最低兼容至 Android 1.6)、微信(最低兼容至 Android 2.2)這樣的應(yīng)用,他們的市場的廣度迫使他們不能嘗試這樣的事情,畢竟在中國,使用 Android 2.x 的手機(jī)的用戶依然還是有相當(dāng)一部分的。
在這樣的背景下,Material Design 在 QQ、微信、淘寶 這樣的應(yīng)用上,短時間是不可能實(shí)現(xiàn)的。他們處于兼容性的考量,需要使用系統(tǒng)最基礎(chǔ)的控件以及利用這些控件組合的自定義控件,而不能去使用高版本才擁有的特性。這樣的應(yīng)用又卡、又慢、又丑也是有一定客觀原因的。
三、Material Design 的一些其他劣勢。
當(dāng)然上述的兩點(diǎn)原因并不是一些大廠商不使用 Material Design,寧可用自己設(shè)計的極丑無比的界面的唯一原因。還有一些細(xì)碎的原因,也是左右這個設(shè)計普及受阻的砝碼。比如像阿里、騰訊、百度這樣的企業(yè),他們并不是設(shè)計驅(qū)動的,而是商業(yè)驅(qū)動的。如果跟進(jìn) Material Design,勢必會影響他們的一些商業(yè)利益。
比如說,頁面的邏輯會受到牽制,他們再也無法放一些活動、廣告的按鈕放在用戶最易點(diǎn)擊的地方,顏色也不能總是整片整片的大紅大綠。一些頁面的訪問頻次會隨著邏輯層級變深而降低。這也是當(dāng)時 微信 5.2 測試版剛開始試圖 Holo 化又叫停的重要原因。

(微信 5.2 內(nèi)測版截圖,圖源網(wǎng)絡(luò))
更有一些想法是希望 Android 和 iOS 能擁有一樣的 UI,使得用戶降低學(xué)習(xí)成本,更快上手,更好賺錢。所以在 Android 上出現(xiàn)底欄兩層皮、三層皮什么的就是出于這樣的想法。
在目前中國市場上,用戶對設(shè)計的品味還處于一個比較初級的階段,對設(shè)計幾乎沒有要求。而你就算有要求,你為了使用應(yīng)用也愿意去做這樣的妥協(xié)。開發(fā)者做跟進(jìn)花費(fèi)的代價遠(yuǎn)小于他們的收益??峙逻@是許多公司寧可設(shè)計一套奇丑無比的 UI,也不愿意跟進(jìn) Material Design 的核心原因。