Web App三大挑戰:瀏覽器性能不足是最大障礙
究竟什么是Web App?
很多人從Web App字面上理解就是運行在網頁上的應用。可普通用戶很難理解:應用是App,網頁是web,兩個不同的東西是怎么結合呢?另外,綜合當前的軟件和硬件環境來看,顯然不是所有的應用都能跑在網頁上的。還有,應用要有應用的“樣子”,WebApp和普通的網頁從UI和UE的層面也有比較大的差別……這種種的區別和不解造成的疑惑讓很多人認為WebApp就是更像應用的WAP。那到底什么是WebApp?維基百科上WebApp的定義是:
“A web application is an application that is accessed over a network such as the Internet or an intranet [1]. The term may also mean a computer software application that is coded in a browser-supported language (such as JavaScript, combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable.” |
我們來拆分一下這里面的幾層含義:
- Application:應用,為用戶完成一個或多個功能而設計的程序;
- Internetor Intranet:運行于廣域網或局域網之上;
- Browser-supported language:使用瀏覽器支持的語言;
- Web browser:運行于標準的瀏覽器解析引擎上。
移動端WebApp和WAP有什么不同?最直接的區別就是功能層面。WAP更側重使用網頁技術在移動端做展示,包括文字、媒體文件等。而WebApp更側重“功能”,是使用網頁技術實現的App??偟膩碚f,WebApp就是運行于網絡和標準瀏覽器上,基于網頁技術開發實現特定功能的應用。
Web App有眾多的優點
第一、使用W3C標準的HTML語言開發,能夠輕松實現跨平臺,移動應用開發者不再需要考慮復雜的底層適配和跨平臺開發語言的問題。與此同時,使用HTML來開發的Web App在投入上會大大的低于傳統的Native App。

第二、基于當下開始普及流行的HTML5,Web App可以實現很多原本Native App才可以實現的功能,比如LBS的功能、本地數據存儲、音視頻播放的功能,甚至調用照相機和結合GPU的硬件加速功能。
第三,移動應用的迭代周期平均不到1個月,用戶需要不停的重新下載與升級。而WebApp則無需用戶下載,并且和傳統網站一樣可以動態升級。
第四,Web App有App的特性,更有Web的特性。每一個NativeApp在當前的用戶使用場景下是相對孤立的,而WebApp則可以像傳統互聯網網頁那樣相互鏈接,從一個Web App直接跳轉到另外一個Web App。這無論是從用戶的使用體驗層面還是從應用之間的數據傳輸來看都是非常不錯的選擇。
WebApp當前也有很多的缺陷

首先是標準的規范尚未定案。
Web App的實現需要多個層面的標準配套,如WAC標準、Device API標準以及HTML5標準。在這些標準都尚未完善之前,Web App還無法實現Native App的常用功能,如攝像頭的調用。
其次,不同瀏覽器支持的差異性將成為長久的問題。
在PC端Firefox、IE、Chrome等瀏覽器雖然都遵循HTML標準,但最終展示效果仍舊會有偏差。在移動端這種情況只會進一步加劇。比如HTML5標準中對input的類型進行了定義,其中包括時間型如type=datetime。不同的瀏覽器展示出來的最終效果千差萬別。另外CSS3的支持效果各個瀏覽器核心也會有自己的風格,做不到完全統一。這和NativeApp相比,成為比較大的弱勢。
第三,最大的問題就是移動設備瀏覽器的性能還不能支持與Native App體驗媲美的Web App。
體驗不流暢和響應速度慢是Web App當前面臨兩個最大的硬傷。目前Web App主要使用第三方的JS框架來完成開發,其中國外比較知名的包括JQuery Mobile、Sencha Touch、JQMobi等。這些開發框架的比較統一的特色比如都是把代碼寫在一個網頁文件內,不同的界面通過不同的DIV切換來展示。這直接導致了Web App在界面切換過程中的不流暢。而這一問題必須隨著硬件的發展和軟件的優化來逐漸的完善。根據分析從存量智能手機和新手機發展的狀況來看根本上解決這個問題可能還需要到2014年。
總結
Web App當前在優勢和缺陷都十分明顯的情況下,開發者該如何選擇?一方面是跨平臺和低成本開發的巨大吸引力,另一面是似乎還缺少實用性。國內外開發者陷入到Native App VS Web App的巨大爭論中。正是在這樣的環境下,Hybrid App的概念被提出。這種兼具Native App和Web App的優勢又能將兩者的缺陷最小化的移動應用開發模式成了一種全新的選擇。國內外知名的Hybrid App移動應用開發框架有Phonegap、App mobi以及AppCan等。從2011年底開始這些移動應用開發框架逐漸進入移動應用開發者的視野,面對這種全新的選擇,開發者還需要更深入的了解。雖然從學習到實用還需要一個過程,但是終究不用僅僅局限于Nativeor Web這種二選一的困惑中。Hybrid App正在悄無聲息的挑戰著Native App和Web App!
本文作者劉鑫,跨平臺及WebApp研究和踐行者