未來不是Web與App的生死之爭,而是Web和App的融合
文/Hans
Web 的優勢是
- 對用戶而言:通過 Web 訪問業務,無需下載安裝,快速安裝使用,手機上也就無需安裝大量的 App,影響注意力;
- 對開發者而言:手機瀏覽器跨操作系統,App 開發商一次開發,就可以部署在 Android,iOS,WP 等不同平臺的手機瀏覽器上,開發效率遠超 App;
- 對互聯網公司而言:基于 Web 訪問業務,可以方便地跨應用訪問和調用數據,這一點 App 目前還很難做到。
Web 沒有真正提高開發效率
但是即使理論上 Web 有諸多優勢,但是無法改變目前 App 開發占據主流的現狀,其原因不外乎以下:
- 執行效率:在手機端,無論就 JavaScript 的執行效率,還是渲染性能,Web 技術都無法與更直接調用 OS 功能的 Native App 技術匹配,這是天然的;
- 內容呈現能力:在手機端,傳統 Web 的 UI 控件與 Native App 的 UI 控件的的形態和表現能力有較大差距;
- 功能覆蓋:一些I/O功能調用如:拍照、音效、視頻...基于 HTML5 的調用效果仍然不及 Native API。
從用戶體驗的角度來講,用戶對于 Web 并沒有強烈的需求。而且傳統 Web 模式在產品模式上是有問題的,它在操作系統與應用之間插入一個自有的操作體系和業務體系。這在 PC 上可行,在手機端則會引發以下問題:
-
操作極其不流暢 相對于 PC 上可以通過鼠標、鍵盤、菜單等豐富的操作方式,手機上的操作方式非常有限。用戶在手機瀏覽器等 Web 平臺中針對 Web App 的操作,一部分將會被平臺本身截獲,產生不符合用戶預期的執行結果。典型的被截獲操作是系統回退和左右滑屏——這使得 Web App 在傳統應用模式下無法實現應用內回退或側邊欄等設計。
-
沒有減少操作 傳統手機瀏覽器試圖在其自身操作范疇內建設一個大而全的生態。用戶進入所謂的輕應用,和桌面一樣 需要尋找,指示操作的對象從 App Store 換成了搜索引擎。Android 和 iOS 的 App 雖然數以百萬計,但用戶常用的業務類型只有 10 種左右,除游戲外,用戶只需要針對每種業務類型選擇安裝 1~2 種垂直領域的“超級 App”就可以滿足日常絕大部分移動互聯網需求。
-
UI 元素落后 所有的手機瀏覽器,基本操作元素都來自 PC 瀏覽器,包括:菜單欄、網址框、搜索框、窗口標簽等。不過,在寸土寸金的手機屏幕,這些元素都是必須的嗎?在功能機時代,系統桌面不是多任務的,手機瀏覽 器的多任務會給用戶帶來極大的便利;但智能手機系統本身就是多任務、多窗口的。用戶沒有感受到 Web 的便利。
除了一般意義上的 Web,還有一個要單獨拿出來講的是手機上的網頁游戲。
高品質的手機游戲,如果完全基于傳統 Web App 即時下載的運行模式,根本無法啟動運行。而針對一些輕小的休閑游戲,微信、QQ 空間、微博等平臺基于其社交屬性,很容易引起用戶的交流和分享,給“打飛機”“神經貓”“2048”等看似簡陋卻極易傳播的 HTML5 游戲帶來了巨大的訪問量,但這樣的游戲又很難找到持久粘性。
HTML5 標準的設計者認為 Canvas 就是 2D HTML5 游戲的技術基礎;但在實際的開發中,絕大部分 HTML5 手游開發商卻選擇 DOM 作為運行基礎。根本不是為游戲定義的。但是基于 canvas 開發高品質游戲,對研發人員有很高的要求。DOM 是 HTML 的基本組成部分,所有的前端開發人員都會;而擁有 Canvas 商用開發經驗的前端人員則鳳毛菱角。Canvas 的 API 非常底層,如果基 Canvas 開發游戲,必須從最基礎的元素開始構建幀畫面,其開發成本并不亞于基于 Native。
綜上所述,傳統意義上的 Web App 應用模式,面臨諸多挑戰。但是傳統 Web App 應用模式的問題并不意味著移動 Web 缺乏應用價值。恰恰相反,移動 Web 具備其他平臺技術很難有的獨特優勢。基于開放的應用模式,移動 Web 可以在更大的應用場景下,充分實現其平臺化價值。在移動端,Web App 與 Native App 最終將不是孰優孰劣的問題,而是 Web App 自身將融入操作系統的大平臺中。
Web 的歸 Web,App 的歸 App
在移動端,社交平臺內傳播的內容形態,當前移動搜索可以訪問的內容形態,當然還有手機瀏覽器,都是基于 Web 的。所以,在幾乎所有的 App 應用領域,幾乎所有的 App 開發商都必須提供基于移動 Web 的內容呈現形態,否則,將失去社交平臺、手機瀏覽器、移動搜索等重要的流量入口——這就是移動 Web 技術的平臺化價值。
所以,對于移動 App 開發商而言,存在一個普遍的需求:只開發一套基于 Web 的應用,就可以同時部署在應用商店、社交平臺、手機瀏覽器,可以被移動搜索訪問,甚至還可以被其他應用直接調用。以下是某電商的新版移動端解決方案,融合和 Web 和 App。
同時,如果想將 Web 與瀏覽器內核打包為 App,Web App 在手機瀏覽器中運行可能存在的問題將得到自然解決,例如:
- 功能缺陷可以通過 Native API 調用實現(Hybrid App 技術);
- 杜絕與業務本身無關的操作元素,不產生操作混淆;
- 資源可以預先下載到本地,不需要運行時下載大量資源。
這個思路簡單總結起來就是 Web 的歸 Web,App 的歸 App。但是這種思路也面臨著一個問題,因為當前智能手機操作系統并不能很好地滿足這個需求,當前應用 App 開發可用的內核平臺運行效果很差。正如之前 36 氪討論 HTML5 的文章中說的那樣:
HTML5 標準本身涉及的技術并無任何障礙,截止 2013 年 90% 以上的 HTML5 的標準早已完成,但是遲遲無法定稿的原因則是各種利益集團的政治博弈。
不僅要優化,還要開放
再這樣的局面下,其實是需要有一方出現強力推廣自家的標準打破這種僵局。不管是蘋果的 Safari 和 Google 的 Chrome,還是國內的大多數手機瀏覽器,都在基于 WebKit 不斷優化瀏覽器引擎,也取得了很好的效果。但是這些引擎并不對第三方開放,開發者無法用他們來完成自己想要的 Hybird 開發。
在今年 9 月底,騰訊首先開放了 QQ 瀏覽器使用的 X5 內核,我認為這只是行業的第一步。順便八個卦,這個內核很快也被微信采用了,這讓我很意外。因為微信和 QQ 兩家向來是不喜歡用對方的東西。
未來騰訊應當充分利用作為微信內核的優勢,爭取給 App 開發商提供真正一站式的應用開發服務支撐。 對其他手機瀏覽器內核廠商而言,如果面向移動 App 開放內核,同樣可以獲得廣泛的需求空間;其他三方瀏覽器完全可以找到獨特的差異化優勢,也可以與 AppCan、PhoneGap 這些移動 Web 框架引擎巨頭合作獲得廣泛的用戶(應用開發商)資源。
一旦這樣的整合完成后,對移動 App 開發商而言,只需要開發一次,就可以順利適配微信、QQ、QQ 空間并打包為 Native App。對騰訊而言,借助這個內核,甚至可以直接打通包括應用寶、微信、QQ、QQ 空間、QQ 手機瀏覽器的完整的應用開發服務和應用分發產業鏈。
現在很多通過微信出現在我們面前的 HTML5 頁面都是使用了騰訊的 X5 內核,比如各種 HTML5 招聘微門戶,HTML5 邀請函還有最近的微信連 WiFi 彈出的商家營銷頁面。還有新浪新聞、鳳凰客戶端、知乎等平臺也采用了騰訊 X5 的內核和云平臺。
未來微信利用自己在用戶技術方面的優勢,“挾用戶以定標準”,必然能推動國內 HTML5 開發向前推進。微信的心態也應該更開放。比如微信目前已經開始開放 API,支持從第三方 App 直接跳轉微信公眾號,但是必須經過微信的嚴格審核。如果未來采用騰訊 X5 內核的 Web 頁面也可以直接跳轉微信的各種服務,那想必也是極好的。
對其他手機瀏覽器內核廠商而言,如果面向移動 App 開放內核,同樣可以獲得廣泛的需求空間;其他三方瀏覽器完全可以找到獨特的差異化優勢,也可以與 AppCan、PhoneGap 這些移動 Web 框架引擎巨頭合作獲得廣泛的用戶(應用開發商)資源。
除了手機瀏覽器之外,硬件和平臺級廠商也應當對移動 Web 的運行性能和運行效果提供持續的平臺支撐和優化,若干廠商早已在為之投入,例如 Intel 支持基于 CPU SIMD 指令來加速 JS 代碼的執行,xDK,crossWalk 框架;ARM 一直在持續優化 WebKit 關鍵庫、cocos2d-js,推出 NEON;iOS8 正式開放 webGL;Chrome Mobile 支持 WebGL,并且從 Android4.4 開始,系統自帶 WebView 基于 Chromium(但還沒有支持 webGL)。
不過這只是一個開始,未來開放的 Web 和 App 的融合還要解決很多問題:
-
提供針對移動 App 應用(而不僅僅是手機網頁)的功能支持:傳統上,Web 規范的使用對象是 Web 網頁;但在今日,移動 Web 技術的用戶已經遠遠不止是手機網頁,而是大量的 Native App。移動 Web UI 控件的形態,應當與 Native App 的控件形態看齊,而不是與 PC 瀏覽器的 Web 形態保持規范上的一致。移動 Web 技術平臺,應當更多地考慮如何基于 Web 技術實現 Native App 的內容體現和運行效果。
-
提升 JS 運行性能:JS 非常靈活的高級語言,其開發靈活的代價就是運行效率明顯低于 Native 程序,因為 JS 在設計之初根本沒有料想到將來會在手機這樣的微型設備上運行。通過系統硬件和軟件的改進不斷提升 JS 運行性能,是需要芯片廠商、操作系統廠商、瀏覽器內核廠商持續解決的。
-
提升基于移動 Web 的渲染性能:筆者認為,操作系統、手機瀏覽器內核應用盡早實現和開放 webGL。webGL 的開放價值遠不止于提供 3D 渲染,而是在于直接向 Web 應用開放硬件渲染能力。未來的渲染框架引擎,可以直接基于 JS+webGL 完成,而不需要依賴 Native 的渲染框架,這將幫助大量具備 HTML5 商用開發經驗的團隊靈活地實現和提供更有針對性的開發框架。甚至,DOM 體系的解析、布局和渲染,未來也可能基于 JS + webGL 直接實現。
本文作者 Hans,移動互聯網開發者,微信號 1396255225
<span id="shareA4" class="fl">
</span>