WEB APP的跨平台特性确实很吸引人,但是大家普遍都认为WEB APP在用户体验上,目前软硬件环境下,还是不如Native APP。 具体是那些方面不如呢?下面是我的总结:
一、进程切换的体验差异
不考虑机器性能和网速,WEB APP 最大的不足在于进程切换。
比如:Native APP 中,我能在Mail里面直接拖入图片作为附件,GMail就只能attach a file。
又比如: Gmail WebAPP for iPad 的手感不如Mail,虽然功能很好,但是手指滑动时,感觉非常滞涩,远远不如Mail的滑动体验。
WEB APP的滑动效果必须通过 CSS3 和 JS 写出来。相对来说 CSS3 的效果要比 JS 流程些。
但是浏览器支持不支持,支持多少,性能优化的如何,都还需要慢慢演化。
一个用户操作,500毫秒的响应时间 和250 毫秒的响应时间,在开发者来说其实差别不大,要让用户来描述两个的具体差别页很难说清楚,但是潜意识里这样的差距就会慢慢累计起来,成为影响用户体验的重要原因。
二、WEB APP 无法访问本地的外设
比如:USB 接口,通讯录,录音设备等 一些数据采集设备等等。WEB APP 是无法使用的。
本机存储的文件也是无法读取的。
通过语音操作,通过复杂一些手势操作,在WEB APP 上都是比较困难的。
又比如 WEB APP 暂时还没办法充分利用手机的特性,比如陀螺仪。
所以如果你是开发游戏APP的话,大部分时候,几乎只能选择 Natvie APP
三、网页的快捷方式
不借助Native APP,无法把打开指定网页的快捷方式放入启动栏或者桌面。
Android 实现把特定网页打开的快捷方式放入桌面的请参看这篇文章。它其实是借用了 Native APP 才实现这个功能。
四、盈利模式
试想一下,如果没有 Native APP,全部是 WEB APP, 那盈利模式就会变成一个大问题。如何收到钱呢?
而且用户在手机上往往不愿意在多个网站上去登录自己的网银账户。
五、网络状况
如果不用Html5的离线存储。网络状况是非常大的问题。
比如用 Google Docs 写稿,如果网络状况不佳,可能会导致反复存盘失败,本地文字编辑器当然没有这个问题。
虽说 HTML 5 的本地存储 (Local Storage)可以搞定这个问题。但是你很难想象把整个Gmail 都通过浏览器拖到本地--它太大了。而且就算全部存下来,JavaScript的执行效率还是没法和本地代码相提并论。
用 Google Gears 实现的离线 Gmail 到现在都很步好用,因为有些重要的功能必须要在服务器端实现,比如搜索。
如果是展示类应用,视频文件的本地存储会是一个很大的数据量,同理上面的道理。
六、进程间互动(进程间通讯)
比如:我们可以在iPhone里面拖拽几张照片到Mail里面发送,Gmail就无法做到。
比如我们可以通过点击连接调用手机的地图功能,或者调用打电话功能。
网页方式就无法。
七、信任
上面提到的都是技术问题,随着时间的推移,是可以解决的。但是时间会很久。
我信任Google,所以重要的邮件,甚至密码我都敢放在Google的服务里面。比如Gmail。
但是随便一个第三方的线上软件,我可能就会比较小心。
针对企业的应用为何要做局域网的应用,希望离开了企业无法使用。
也是基于这个信任的考虑。
而相对来说 Native APP,这方面的信任度要高于WEB APP。
当然国内会有被墙掉的问题,Native APP优势更大。
这种信任也是人心里认知上的一个壁垒。
对于用户来说,真正的软件就是那种自己单独一个窗口(而不是一个标签页),单独一个图标(而不是诸如Firefox图标中的一个)的东西。这是始于1984年的麦金塔GUI多年以来给大家装下的观念。
虽然 WEB APP 是趋势, Native APP 是现在,其实对现在来说,WEB APP 和 Native APP的融合才是现在最好的解决方案。现在一般情况是:Native APP 为主,WEB APP为辅(一定程度上减小工作量),这可以同时借用这两个的优点。避免他们的缺陷。
参考资料:
web app vs. native app
Web App 和 Native App,哪个是趋势?
跨平台手机应用开发
[讨论] 线上软件 vs. 桌面软件