D2 2014的一点总结

有关Hybrid客户端H5的内容

这次参加D2前端大会,有关客户端H5的内容《航旅无线H5技术体系成长之路》和自己的工作比较相关,会后再看了下ppt,结合苏宁互联手机客户端客户端开发现状,个人作了几点总结:

  • 离线包机制
  • 前端html5 页面和客户端通信
  • 构建与发布流程

离线包机制

弘树在讲hybrid的时候多次且反复提到了前端h5页面和客户端通信的方式,并且在开端部分,讲到了为什么不使用html web app的原因,究其根本就是网速慢
带了的用户访问一个页面等待半天的问题(说到这个个人就想扯个蛋,尼玛在某国都秒下电影了,咱才开始推4g,能再慢点吗-_-)。
在网速特么慢的这种情况下,离线包把前端文件打包到app里面,用户打开app访问的是app里面的html5页面部分数据从服务端拉取,速度能提升不少。不过这个貌似需要和客户端配合一起完成,真正来完成离线包还是需要客户端开发人员来完成。

前端html5 页面和客户端通信

这一部分有很大一个篇幅讲到了,说实话,没搞过客户端开发的前端不一定能理解,毕竟里面大部分设计到客户端开发相关的内容。另外关于互通有个很重要的概念Bridge,全篇只谈到了概念,没有上代码,略难猜测-_-

构建与发布流程

该部分有基础kissy库,加上已经完善的发布流程,这一块我们没有一个统一的前端库,暂时很难做到一致。至于less和sass我觉得主要是看开发自身需要,比如我就没有使用less或sass的习惯。
最后,作者讲到hybrid中的h5类似一辆开的很快的拖拉机上了高速路。我觉得很多时候,具体问题还得看场景,比如一个很慢的2g网络环境,使用h5来拉数据和使用原生app来拉数据,不见得哪个会快到哪里去,但是如果在网络环境良好的情况下,使用h5却可以带来很大的灵活性和可维护性,当然页面功能足够简单的时候,不失为一个很好的移动开发方案。

使用phonegap开发的一点体会

在使用phonegap搭建hybrid应用,可以发现phonegap的整个www目录可以作为hybrid应用的离线包,样式,js文件等都存放在改目录,并且phonegap中一些访问外网,硬件等特性需要在config.xml文件中配置。具体结构如下:
phonegap文件目录
另外最近看到一篇很详尽的介绍phonegap运行机制的文章很不错,PhoneGap版支付宝Android客户端开发小结 里面关于phonegap的结构图:
phonegap结构
ps: phonegap在安卓上面的性能还是略慢,会后@Ngot_ftd 讲过另外一个混合的比较彻底的hybrid框架:Titanium。按照Titanium的说法,其本身就是内置于安卓代码库,不同于phonegap对文件请求进行拦截,所以运行效率有个质的提升。当然,航旅是使用内部开发的node工具进行混合app的开发,其具体实现需要客户端开发提供js对象的支持,具体的通信拦截,就需要该对象的方法调用了。