Web App 的挑战

fmms 10年前
   Web App 概念的兴起,起源于 HTML5 标准的逐渐成熟和大型互联网公司的推动。这其中包括百度的框计算、谷歌运行于 Chrome 上的 Web App Store 以及 非死book 的 HTML5 项目“斯巴达”(Project Spartan)。前两个项目当前主要侧重于 PC 端,而 非死book 的 Spartan 可以说主要是瞄准了移动端的用户市场。   <p> <strong>一、究竟什么是 Web App?</strong></p>    <p> 很多人从 Web App 字面上认为它就是运行在网页上的应用。可普通用户很难理解:应用是 App,网页是 Web,两个不同的东西是怎么结合呢?另外,综合当前的软件和硬件环境来看,显然不是所有的应用都能跑在网页上的。还有,应用要有应用的“样子”,Web App 和普通的网页在 UI 和 UE 层面有比较大的差别……这种种的区别和不解造成的疑惑,让很多人认为 Web App 就是更像应用的 WAP。那到底什么是 Web App?</p>    <p> 维基百科上 Web App 的定义是:</p>    <blockquote>     <p>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.</p>    </blockquote>    <p> <strong>我们来拆分一下这里面的几层含义</strong>:</p>    <ol>     <li>Application:应用,为用户完成一个或多个功能而设计的程序。</li>     <li>Internet or Intranet:运行于广域网或局域网之上。</li>     <li>Browser-supported language:使用浏览器支持的语言。</li>     <li>Web browser:运行于标准的浏览器解析引擎上。</li>    </ol>    <p>移动端 Web App 和 WAP 有什么不同?最直接的区别就是功能层面。WAP 更侧重使用网页技术在移动端做展示,包括文字、媒体文件等。而 Web App 更侧重“功能”,是使用网页技术实现的 App。总的来说,Web App 就是运行于网络和标准浏览器上,基于网页技术开发实现特定功能的应用。</p>    <p> <strong>二、Web App 有众多的优点</strong></p>    <p style="text-align:center;"><img alt="" src="https://simg.open-open.com/show/7882619a1504db6655bdced336a647d8.jpg" /></p>    <p> 第一、使用 W3C 标准的 HTML 语言开发,能够轻松实现跨平台,移动应用开发者不再需要考虑复杂的底层适配和跨平台开发语言的问题。与此同时,使用 HTML 来开发的 Web App 在投入上会大大的低于传统的 Native App。</p>    <p> 第二、基于当下开始普及流行的 HTML5,Web App 可以实现很多原本 Native App 才可以实现的功能,比如 LBS 的功能、本地数据存储、音视频播放的功能,甚至还有调用照相机和结合 GPU 的硬件加速功能。</p>    <p> 第三、移动应用的迭代周期平均不到 1 个月,用户不需要频繁的重新下载与升级。而 Web App 则无需用户下载,并且和传统网站一样可以动态升级。</p>    <p> 第四、Web App 有 App 的特性,更有 Web 的特性。每一个 Native App 在当前的用户使用场景下是相对孤立的,而 Web App 则可以像传统互联网网页那样相互链接,从一个 Web App 直接跳转到另外一个 Web App。这无论是从用户的使用体验层面还是从应用之间的数据传输来看都是非常不错的选择。</p>    <p> <strong>三、Web App 当前也有很多的缺陷</strong></p>    <p> 1、首先是标准的规范尚未定案。</p>    <p> Web App 的实现需要多个层面的标准配套,如 WAC 标准、Device API 标准以及 HTML5 标准。在这些标准都尚未完善之前,Web App 还无法实现 Native App 的常用功能,如摄像头的调用。</p>    <p> 2、其次,不同浏览器支持的差异性将成为长久的问题。</p>    <p> 在 PC 端 Firefox、IE、Chrome 等浏览器虽然都遵循 HTML 标准,但最终展示效果仍旧会有偏差。在移动端这种情况只会进一步加剧。比如 HTML5 标准中对 input 的类型进行了定义,其中包括时间型如 type=datetime。不同的浏览器展示出来的最终效果千差万别。另外,各个浏览器对 CSS3 的支持程度不同,这和 Native App 相比,成为比较大的弱势。</p>    <p> 3、最后,最大的问题就是移动设备浏览器的性能还不能支持与 Native App 体验媲美的 Web App。</p>    <p> 体验不流畅和响应速度慢是 Web App 当前面临两个最大的硬伤。当前 Web App 主要使用第三方的 JS 框架来完成开发,其中国外比较知名的包括 jQuery Mobile、Sencha Touch、JQMobi 等。这些开发框架有着比较统一的特色,比如都是把代码写在一个网页文件内,不同的界面通过不同的 DIV 切换来展示。而这直接导致了 Web App 在界面切换过程中出现不流畅的情况。而这一问题必须随着硬件的发展和软件的优化来逐渐的完善。根据分析从存量智能手机和新手机发展的状况来看,想要从根本上解决这个问题,可能还需要等到 2014 年。</p>    <p><strong> 四、总结</strong></p>    <p> 面对 Web App 当前在优势和缺陷都十分明显的情况,开发者该如何选择?一方面是跨平台和低成本开发的巨大吸引力,另一面是似乎还缺少实用性。国内外开发者陷入到 Native App VS Web App 的巨大争论中。</p>    <p> 而正是在这样的环境下,Hybrid App(混合型应用)的概念被提出。这种兼具 Native App 和 Web App 的优势又能将两者的缺陷最小化的移动应用开发模式成了一种全新的选择。国内外知名的 Hybrid App 移动应用开发框架有 Phonegap、Appmobi 以及 AppCan 等。从 2011 年底开始,这些移动应用开发框架逐渐进入移动应用开发者的视野。面对这种全新的选择,开发者还需要更深入的了解。虽然从学习到实用还需要一个过程,但是终究不用仅仅局限于 Native or Web 这种二选一的困惑中。Hybrid App 正在悄无声息的挑战着 Native App 和 Web App!</p>