从HTML5统治全世界的说法来看Native APP 和 WEB APP 的差别

从HTML5统治世界的说法来看Native APP 和 WEB APP 的差别

          不管做什么,我们都希望避免重复劳动。而在移动app平台上,存在这两驾马车并驾齐驱的ios和android,并且两个平台使用的语言以及系统的架构都有着明显的差别。而程序员不希望在开发了ios的app之后,又继续开发出android的app,反之也觉得特别不爽。而HTML5的出现似乎给程序员带来了福音,能够只需要一次开发适应不同的移动平台,甚至还能够支持处于摇篮的win phone。

        基于HTML5的app,实际上是WEB APP,它的跨平台特性确实吸引了不少人,甚至有人喊出了HTML5将统治世界的说法。而实际的用户体验上,大家普遍都认为WEB APP在目前软硬件环境下,还是不如Native APP 这其中的原因不管是硬件的配置(很明显android的速度赶不上iphone),还是软件的原因(画面的渲染速度以及网页的解析速度)暂不好说明。但是native app还是有着明显的优点,下面说说根据两个方面说明我们不得不选择Native app的原因:

  • 技术原因:

1.进程切换和互动

不管机器性能和网速怎么样,Native App可以随意切换不同进行,而WEB APP只能通过网页的跳转

Native APP中,进程的切换可能只需要250ms,而通过网页的跳转则可能需要两倍的时间。或许一个简单的切换动作,用户不会察觉什么,但是积累起来,那么用户会越来越感觉到应用的缓慢,从而会彻底的抛弃缓慢的应用。例如,native app的切换效果,很轻松流畅,给用户一种愉快的感觉;而web app的切换只能通过CSS3和JS模拟出来,显然流畅性要差。

而进程间通信,例如我们经常需要在微博中添加图片,在Native app 比较容易实现而且速度快,而用web app则比较麻烦。

2.Natvie APP能够监测外设的情况,而WEB APP无法访问本地的外设

原生的APP可以随意监测、访问设备的外设,比如:USB接口,通讯录,录音设备等一些数据采集设备等等。同时一些作用的临时文件都可以存储在本机种,同时本机存储的文件也可以随意读取的。而WEB APP是无法做到这些,只能通过保存cookie以及HTML提供的缓存机制来实现。

3.智能应用

通过语音操作,语音设别,复杂一些手势操作(例如摇一摇),这些在native app上轻松实现,而在WEB APP上都是比较困难。

其实设备上提供的很多感应操作,例如陀螺仪,都是只能选择 Natvie APP。

4.网页的快捷方式

web app没有原生APP的支持,是无法把打开指定网页的快捷方式放入启动栏或者桌面的。具体的实现方式可以参考http://blog.csdn.net/llfjfz/article/details/5752017 

5.网络状况

虽然HTML5的离线存储能够一定的解决网络延时问题,不过网络状况对于app来说还是一个非常大的问题。不过比较核心的问题是,即使储存了全部网页显示的数据,JavaScript的执行效率还是没法和本地代码相提并论。

前面说了技术原因,主要是代码执行的效率问题。下面说说非技术原理。

  • 非技术原因

1.盈利模式

如果是web app,那么开发者如何去盈利呢?需要用手机登陆网银,去更多的网站进行充值。很明显,这样子的效率是比较底的。用户还是希望能够在app store里面进行安全的付费。通过苹果也希望在自己这里进行交易,这样即能保持自己的用户忠诚度,又可以避免第三方交易带来的纠纷。

2.用户习惯

用户对于原生的app比较信赖,而对于web app则有种天生的恐惧感,担心自己密码会在web 应用中被盗。并且对于用户来说,根据1984年的麦金塔GUI多年以来给大家装下的观念,真正的软件就是那种自己单独一个窗口(而不是一个标签页),单独一个图标(而不是诸如Firefox图标中的一个)的东西。这种使用习惯和信任也是人心里认知上的一个壁垒。

3.政策原因

对于更外的一些优秀的应用,在国内随时会有被墙掉的可能,而Native APP则完全不会。


说了这么多,我们不禁要怀疑web app的前景是否光明了。但是不管怎么说WEB APP是趋势, 就像伟大的精神导师马先生说的:一旦有适当的利润,资本家就会大胆起来。有百分之五十的利润,它就铤而走险;为了百分之一百的利润,它就敢践踏一切人间法律;有百分之三百的利润,它就敢犯任何罪行,甚至冒绞死的危险。而web app 能够减少工作量,这对于移动互联网的至高境界“天下武功,唯快不破”不谋而合。所以web app随着发展还是有发展空间的。现在的舞台是属于Native APP,将来一段时间是WEB APP Native APP的融合的舞台,结合他们能够减少开发量,扬长避短,未来会是web app的吧。

 

更多关于web app和native app的问题可以一起讨论,也可以参考下面的文章:

web app vs. native app

http://www.douban.com/note/66563788/

Web App Native App,哪个是趋势?

http://www.butno.net/140

跨平台手机应用开发

http://linxinglu.com/2011/01/24/1579.html

Native APP 和 WEB APP 在用户体验上的差别

http://chenxiang5789407.blog.163.com/blog/static/49358277201111186559359/