无论HTML5再怎么发展,原生APP依然顽强

经常有人在争论HTML5与原生APP的问题,首先我把自己之前开发的项目遇到的问题说明一下,看看用HTML5能不能解决,

1、我们平时使用手机的话,使用得比较多的相机,假设我们有这样的一个需求,需要自定义一个相机,里面有保存图片,滤镜,还需要录制视频功能,视频需要转换成MP4,16kHz采样频率,对于使用html5可不可以直接通过javascrpit实现?

2、我们曾经做过一个名片识别的项目,需要我们利用相机,在不联网的情况,能够通过相机,对着我们平时的名片,然后直接识别出来里面的文字内容。里面涉及到大量的识别算法,包括训练与配对,单纯的html5任凭再再强大,还是控制不了底层的语言。

3、一个语音通讯的工具,我们曾经需要录下一段音,然后发送到对方,对方可能是用android,也可能是ios,因为IOS与android录音的格式不相同,可以播放的格式也不同,所以我们需要在录音的同时,将音频进行编码与解码,在不同的平台上才可以顺利的播放。

4、对于使用TCP/UDP服务的程序,我们有一个项目,利用手机做远程摄像头做监测,因为需要的是实时数据,所以我们的客户端需要保持长连接与稳定,当然用web也可以做到,但是视频编码部分,单纯通过这个html5又能否解决。

5、一个3D的游戏,我们知道3D游戏需要大量的渲染,那么通过html5又能否解决这个流畅的问题?

虽然在大部分的程序里,我们仅仅是需要到提供一个数据给用户,然后用户根据提供的数据进行选择,这样就完成了一项服务,其实html5的确大大简化了我们开发的难度,所以我认为对于 展示性的项目,个人感觉用html5可能会更加方便快捷,比如我们平时看到的京东产品,我们可以通过直接在客户端上显示相应的产品,用户点击购买这样就完成操作了。而对于我们部分精确到提供某种优化的服务的时候,我们可以采用原生的开发,比如我们在手机进行人脸识别解锁的应用,我们可以通过jni调用c或者c+x来实现。

理解原则性问题,对于我们开发者,无论用那种语言,其实原理都是一样,感觉并无具体区别,只是语言的写法不一样而已,此外,我们要知道,我们的系统是android和ios,谷歌和苹果只是引导大家使用html5,但是不是说叫开发者全部使用html5,我们要知道,当初谷歌推送go语言,苹果推出swift语言的时候,就是在为原生开发者提供更加快速的开发与更加清晰的编程语言。而不是直接让开发者放弃原生开发接触JS,可想而知,原生的开发是操作系统上的必备的。

我们总是在争论未来是原生的胜利还是html5会胜利,总是喋喋不休的,其实大家关注的不是谁会赢,而是关心自己的工作会不会被胜出的一方取代,无论原生app还是HTML5,最终还是会像网站开发那样,慢慢被新的产品淘汰,所以我们程序员要不断学习新的东西,这样才不会被社会淘汰。