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