Web App 的挑戰

fmms 12年前發布 | 20K 次閱讀 web

Web App 概念的興起,起源于 HTML5 標準的逐漸成熟和大型互聯網公司的推動。這其中包括百度的框計算、谷歌運行于 Chrome 上的 Web App Store 以及 非死book 的 HTML5 項目“斯巴達”(Project Spartan)。前兩個項目當前主要側重于 PC 端,而 非死book 的 Spartan 可以說主要是瞄準了移動端的用戶市場。

一、究竟什么是 Web App?

很多人從 Web App 字面上認為它就是運行在網頁上的應用。可普通用戶很難理解:應用是 App,網頁是 Web,兩個不同的東西是怎么結合呢?另外,綜合當前的軟件和硬件環境來看,顯然不是所有的應用都能跑在網頁上的。還有,應用要有應用的“樣子”,Web App 和普通的網頁在 UI 和 UE 層面有比較大的差別……這種種的區別和不解造成的疑惑,讓很多人認為 Web App 就是更像應用的 WAP。那到底什么是 Web App?

維基百科上 Web App 的定義是:

A web application is an application that is accessed over a network such as the Internet or an intranet . 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.

我們來拆分一下這里面的幾層含義

  1. Application:應用,為用戶完成一個或多個功能而設計的程序。
  2. Internet or Intranet:運行于廣域網或局域網之上。
  3. Browser-supported language:使用瀏覽器支持的語言。
  4. Web browser:運行于標準的瀏覽器解析引擎上。

移動端 Web App 和 WAP 有什么不同?最直接的區別就是功能層面。WAP 更側重使用網頁技術在移動端做展示,包括文字、媒體文件等。而 Web App 更側重“功能”,是使用網頁技術實現的 App。總的來說,Web App 就是運行于網絡和標準瀏覽器上,基于網頁技術開發實現特定功能的應用。

二、Web App 有眾多的優點

第一、使用 W3C 標準的 HTML 語言開發,能夠輕松實現跨平臺,移動應用開發者不再需要考慮復雜的底層適配和跨平臺開發語言的問題。與此同時,使用 HTML 來開發的 Web App 在投入上會大大的低于傳統的 Native App。

第二、基于當下開始普及流行的 HTML5,Web App 可以實現很多原本 Native App 才可以實現的功能,比如 LBS 的功能、本地數據存儲、音視頻播放的功能,甚至還有調用照相機和結合 GPU 的硬件加速功能。

第三、移動應用的迭代周期平均不到 1 個月,用戶不需要頻繁的重新下載與升級。而 Web App 則無需用戶下載,并且和傳統網站一樣可以動態升級。

第四、Web App 有 App 的特性,更有 Web 的特性。每一個 Native App 在當前的用戶使用場景下是相對孤立的,而 Web App 則可以像傳統互聯網網頁那樣相互鏈接,從一個 Web App 直接跳轉到另外一個 Web App。這無論是從用戶的使用體驗層面還是從應用之間的數據傳輸來看都是非常不錯的選擇。

三、Web App 當前也有很多的缺陷

1、首先是標準的規范尚未定案。

Web App 的實現需要多個層面的標準配套,如 WAC 標準、Device API 標準以及 HTML5 標準。在這些標準都尚未完善之前,Web App 還無法實現 Native App 的常用功能,如攝像頭的調用。

2、其次,不同瀏覽器支持的差異性將成為長久的問題。

在 PC 端 Firefox、IE、Chrome 等瀏覽器雖然都遵循 HTML 標準,但最終展示效果仍舊會有偏差。在移動端這種情況只會進一步加劇。比如 HTML5 標準中對 input 的類型進行了定義,其中包括時間型如 type=datetime。不同的瀏覽器展示出來的最終效果千差萬別。另外,各個瀏覽器對 CSS3 的支持程度不同,這和 Native App 相比,成為比較大的弱勢。

3、最后,最大的問題就是移動設備瀏覽器的性能還不能支持與 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、Appmobi 以及 AppCan 等。從 2011 年底開始,這些移動應用開發框架逐漸進入移動應用開發者的視野。面對這種全新的選擇,開發者還需要更深入的了解。雖然從學習到實用還需要一個過程,但是終究不用僅僅局限于 Native or Web 這種二選一的困惑中。Hybrid App 正在悄無聲息的挑戰著 Native App 和 Web App!

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!