究竟什么是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。总的来说,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研究和践行者