H5能取代移动app(Android和iOS)吗?
大量新生移动设备的兴起,改变了互联网的未来。在技术的发展上, HTML5 会取代 App 应用吗?或者说能够在多大程度上取代呢?在 HTML5 规范中,已经加入了相机、磁力罗盘、 GPS 信息的支持。很多新兴浏览器也已经开始支持这些新特性。能否用一个统一的 HTML5 来替代 android 和 ios 并行开发的双重成本呢?
移动应用程序 (App) 和 HTML5 都是目前最火的技术,二者之间也有不少重叠之处。在移动设备浏览器里运行的 html5 的 web 页面,也可以重新打包成不同平台上运行的 app 。目前很多浏览器都有很好的跨平台支持, HTML5 的 web 方案,对开发者来说更为方便。完成一次,即可多平台使用。但这确实可行吗?仍然有许多必要原因,使得开发者选择了 app 开发。很明显,很多人已经在这么做了。
功能丰富上
很多原生 app 实现的功能是 HTML5 望尘莫及的。不管你的 web 做的再牛,如果停留在一个没有摄像头支持的沙盒中,很多场合还是玩不转。幸运的是,现在没有这样的沙盒限制了。如果你需要你的 web 照相片,可以做一个负责照像的 app ,再把你的 web 打包进这个应用里面。
但这种混合开发的问题在于,增加了复杂性,而且不象传统 web 那样可以直接在浏览器里运行。这个问题短时间内恐怕没辙。好在现在网络标准在不断的高速扩充,先进的浏览器也在一直跟进。 Android 3.1 已经支持 camera 了。 iOS 浏览器也支持 WebSocket 和设备方向检测了。
总得来说,移动设备在发展,而 web 也同样在快速变化。桌面浏览器本身,有 5 家主要浏览器开发商在改进现有标准,丰富新的功能。所以原生 App 在快速前进,同时, web 也在缩小差距。
开发上
原生 APP 使用强壮的程序语言( Java, Objective C, C++ )。适合写复杂程序,经过历史验证, API 丰富。在桌面环境可以方便的用模拟器测试。而 Web 程序的 runtimes 和乱七八糟的各路浏览器让人头大
用户体验上
用户希望在你的程序里,用与系统连贯统一的方式来操作。不同的平台,都有一些约定俗成的习惯。比如长按按钮会有啥反应。你不能指望用一套统一的 HTML5 App 去满足所有用户。此外,整个平台的操作感受都由用平台自有的软件库协调。直接调用平台工具包就能直接免费获得完整支持。
测试上
对 app测试 和 H5 测试来说,就测试项并没有什么区别,主要都是终端机的配饰问题,但一样的是, app 有安装、启动等步骤,相对简单。但在 UI自动化测试 ,功能遍历测试并没什么不一样。
总结
现在还看不出完胜的一方。有些应用适合做 app ,有一些适合用 html5 。目前的情况,原生 APP 肯定是一个很重要的选择。上面提到的混合式开发,可能是一个不错的妥协方案。能用 web 的时候用 app 调用 web 。 web 实现不了的功能用 app 开发。
