今天,web僅僅是另外一個(gè)原生平臺,展望未來(lái),它不得不憑借自身的獨特優(yōu)勢與原生平臺進(jìn)行競爭,而不是憑借internet賦予它的優(yōu)勢,因為其他原生平臺也正在實(shí)現并擁有這些相同的優(yōu)勢。當你決定你的下一個(gè)應用是使用web平臺還是其他平臺時(shí),你要回答的一個(gè)棘手問(wèn)題是,采用原生應用來(lái)展現用戶(hù)界面,還是通過(guò)訪(fǎng)問(wèn)URL和HTML服務(wù)器,著(zhù)兩種方式那種更好。Web應用也正在實(shí)現原生平臺的一些功能(像本地存儲和離線(xiàn)運行模式),Web應用和原生應用之間的界限越來(lái)越模糊了。像Palm web和Google Chrome這樣的操作系統表面,原生技術(shù)就是web技術(shù)。
我們需要了解,運行再這樣一個(gè)操作系統上的web應用是一個(gè)原生應用。這樣說(shuō)來(lái),我們知識要決定采用哪種原生操作系統和框架,選擇一個(gè)能夠提供良好用戶(hù)體驗的操作系統。然后,我們還要選擇合適的原生編碼技術(shù):原生web應用上的HTML、CSS和Javascript,原生IOS應用上的Objective-C和Cocoa Touch,Android應用上的Android SDK和Java,windows Phone應用上的C#和.NET等。最后,無(wú)論哪一個(gè)平臺和技術(shù)贏(yíng)了,很明顯地,將來(lái)的趨勢都是原生,web僅僅又是另一個(gè)客戶(hù)端?,F在,關(guān)鍵問(wèn)題不是“我們是要web還是原生”,而是“我們的新產(chǎn)品應該支持哪一個(gè)或哪幾個(gè)平臺,應該采用哪種客戶(hù)端技術(shù)或那些客戶(hù)端技術(shù)”。
要回答這個(gè)問(wèn)題,我們需要了解我們產(chǎn)品的本質(zhì),特別是,我們的產(chǎn)品介于文檔和應用之間時(shí)。
Web產(chǎn)品- -般會(huì )被分為內容型和行為型兩種。我們通常將內容型的產(chǎn)品稱(chēng)為一個(gè)網(wǎng)站,行為型網(wǎng)站的稱(chēng)為一個(gè)應用。你的產(chǎn)品可能不屬于這兩個(gè)類(lèi)別中的任何一個(gè),可能是處于這兩種類(lèi)別之間的。當一個(gè)產(chǎn)品更接近內容型時(shí),我們會(huì )使用漸進(jìn)增強的技術(shù)分層實(shí)現基本功能和基于內容的核心交互動(dòng)作, .以此保證更多的人們能夠訪(fǎng)問(wèn)到。這些漸進(jìn)增追的功能通常既不是先進(jìn)的格式或布局,也不是一些別出心 裁的導引類(lèi)交互行為。我們可以使內容適合于不同尺寸的屏幕,使有限的導引類(lèi)交互行為適合于不同的輸入機制。這不是一-項簡(jiǎn) 單的工程,但也不是不可能實(shí)現的。然而,當產(chǎn)品從文檔型向應用型轉變時(shí),實(shí)現漸進(jìn)增強將變得更加困難。事實(shí)上,這也可能會(huì )變得完全沒(méi)有意義或不可能。例如你將怎么優(yōu)雅降級一個(gè)圖片在線(xiàn)編輯器?再一個(gè)不能希納是圖形的功能型手機上,一個(gè)圖形編輯器應如何工作?你將會(huì )使其顯示什么內容?應用不是內容型的,而是行為型的。無(wú)論應用程序是什么內容,我們對其進(jìn)行優(yōu)雅降級將不總是有意義。應用通常是完全由行為構成的,這些行為促使用戶(hù)去創(chuàng )建內容。再來(lái)看圖片編輯器的例子:圖片編輯器本身沒(méi)有任何內容,但它能夠使用戶(hù)創(chuàng )建內容。為了創(chuàng )建卓越的用戶(hù)體驗,我們需要保持專(zhuān)注,盡可能以最好的方式去滿(mǎn)足我們用戶(hù)的需求。假設時(shí)間和資源不受限制,我們可以?xún)?yōu)化我們的應用在每一個(gè)設備和平臺上的用戶(hù)體驗。然而,假設在實(shí)際項目中我們的時(shí)間有限,預算也有限,我們就必須要選擇滿(mǎn)足哪些用戶(hù),解決哪些問(wèn)題,優(yōu)化哪些平臺和設備上的產(chǎn)品。我們這么做不是要去除不必要的用戶(hù),而是因為我們意識到,為每個(gè)人提供卓越的用戶(hù)體驗是不切實(shí)際的。畢竟,沒(méi)有哪個(gè)產(chǎn)品團隊有足夠資源來(lái)創(chuàng )建一些能夠為每個(gè)用戶(hù)都提供卓越用戶(hù)體驗的應用。