随着移动互联网业务的不断丰富,无论是原有的NativeApp还是传WebApp都无法满足业当下的务需求,随之兼具“Native App良好用户交互体验”和“Web App跨平台开发”的双重优势的HybridApp成为各大互联网公司的新宠。
为什么是Hybrid App
市场上一些主流移动应用都是基于Hybrid App的方式开发,比如工商银行、百度搜索、东方航空等。
在曾健看来,一个APP的核心功能应该通过Native的方式去实现,以此保证用户体验的稳定性。而一些非核心功能—需要频繁更新、优化的用H5来实现,在很大程度上提高了研发效率。
腾讯应用宝作为国内最大的APP分发平台之一,日均分发量达到1.2亿,其主要的几个table—首页、发现、游戏……都是通过Native来实现的。而类似娱乐、读书以及礼包中心等小的功能则通过H5实现。
由于上一轮的企业信息化在PC端大多选择了B/S架构,这也和Web App通过手机浏览器访问的方式无缝过渡。然而WebApp在3D特效、频繁的输入输出体验上并不够优秀。曾健告诉记者:“比如下拉刷新、左右滑动这些用H5实现还是比较困难的。所以在需要这种体验时我们就会选用更加合理的技术。
在平面结构布局以及稳定性方面,曾健认为:“布局是H5天生的优势。在稳定性方面H5的WebView会导致APPCrash提高,因此我们把Webview做成一个独立的进程,就算它Crash也不会影响AppCrash,然后在这个基础上再做一些统计上报。另外就是利用QQ浏览器X5团队的内核来做,这样Crash率会相对好一些。
最近两三年出现了许多开源的H5框架,许多框架都被打上“优秀”,“不可不错过”的标签。而曾健告诉笔者:“现在手机屏幕大小有限,需要展示的东西并不多,要么是一个列表要么是一两个模块,那种复杂的框架或者模块管理,都不是特别好的使用场景,而在拉数据展示或者直接取源生js可能更好一些。所以在做纯粹H5相关的时候未必要使用别人的框架,你只要思考他是怎么实现的,然后把自己想要的东西这么做就可以了。
Node.js还是H5?
Node.js还是H5这可能是许多前端工程师都难以抉择的问题,有人认为Node.js不够稳定,不够成熟,有人认为H5不过是旧瓶装新酒而已。在曾健说:”腾讯的一些团队在使用Node.js,但是没有大规模使用。而阿里,百度已经有一些业务已经在用了。
node.js给前端开发提供一种新的方向,在一些成功的实践中可以看到,它对于研发效率的提升的作用是不可磨灭的。但是在做一些线上业务时,工程师除了把它做出来以外,还要关心一些运维上的东西;比如服务器挂了,硬盘挂了……这对于工程师的要求会大大提高,有很多方面的东西需要进行自我补充,才能把线上服务做起来。“
他还指出:”虽然Node.js只需要一套js代码,前后台就都可以跑起来,从而提升研发效率。并且在高并发服务时也有其自身的优势。但它的在于核心数据存储方面还是需要C++来做,在大量访问时还是C++比较优秀。”
小结:
无论是NativeApp还是HybridApp又或者Node.js和H5都是用来开发的技术手段。总有人说这样的一句话,技术没有好坏高低,只要能实现功能就是好的技术。否则再优秀的技术不再合理的场景下使用都无法达到最优秀的效果。