又开始做APP了。
一共4个,每个都要支持iOS、Android,而且时间紧迫,用原生实现已经不可能了。
Hybrid模式没跑了,目前接触到的一共有几种方式,RN/Weex,cordova(phonegap/ionic),appCan/dCloud,来说说我对这几个的理解。
- RN/Weex
- RN:2013年,facebook开源了其新一代JS库-reactjs。并在2014年提出了React-Native的概念---可以采用reactjs开发native应用,2015年正式推出了Reac-Natvie之后,一直火得不行。我学过一阵子的reactjs,由于不喜欢jsx的语法,后面也就没有深入研究了。并不是RN不好,没详细研究过,所以不好说太多。
- Weex: 这个是阿里推出的一个基于vuejs实现的跨平台开发框架,于2016年下半年开源。Weex的实现思想和RN差不多,毕竟vue现在也越来越靠近React了。发布之后,去看了下官网,感觉好简陋,肯定一堆坑在等着我。
- cordova(phonegap/ionic)
- cordova(phonegap)这个是我最熟悉的了,接触过两年,cordova算是移动应用跨平台开发的先行者了。可以让完全不懂java、Object-c的新手直接开写移动app,并且官方提供了常用插件,重要的是作者一直在升级cordova,努力让它变得越来越好。当然,cordova也是有坑的,但对于填过两年坑的我来说,问题应该也不大了。上一次用phonegap主要是因为用了jquery-mobile+backbone,jqm太过重,page管理太烂,兼容性也差;backbone倒还好,不过目前来说,也是该淘汰了。cordova本身是个好东西,除了在低端机上流畅性不够之外,想不出有什么大毛病了,最最最重要的是,跨平台多,对native要求低,开发效率贼高啊。
- ionic:一开始挺好的,只做css framework,不说美观,至少不丑,在bootstrap没有适配移动端的时候,确实是个不错的UI框架。可是后来野心勃勃,把cordova整合进来了,只要一套就能开发APP了,再后来又傍上了angular,成了一个巨无霸,但也成了一个三不像,要是用这个开发,光angular的指令就不容易记了,再加上ionic的UI,学习曲线激增,开发效率也高不到哪去了。
- appCan/dcloud
- appCan:国内做跨平台做得比较早的,不过一直和apiCloud有版权纠纷,我也就不论谁是谁非了。appCan我最喜欢的是云打包功能,有一个专门的APP管理平台,只要上传一些图标,代码便可以打包成ios和Android双平台的应用,自己本地开发环境都不用装。当然,也提供了一个基于eclipse封装的IDE,可以在IDE上直接打包。弄过一两个应用,好久没看了,刚才去瞧了一眼,官网都做得不好,提供的服务也就可想而知了。
- dcloud:这个吸引我的地方还挺多的,有自己的IDE---HBuilder,还提供了号称最接近原生APP体验的高性能前端框架--MUI,好像还成立了一个Html5联盟,推出了native.js的运行环境,对native接口进行了封装,吹得和RN有得一拼。之前也搞了几周的MUI+HBuilder。一开始感觉挺好,后面发现MUI无法实现单页面,本质就是基于cordova进行的封装,但吹得比cordova还牛逼多了。唉,国内的竞争环境,连开源都变成了商业化,令人担忧。
也想过自己用开源的jsbridge进行封装,无奈自己native技术太差,只会web,又没那么快招到合适的人,所以只能干回老本行,用cordova了。鉴于之前踩过了许多坑,这次选了vue2+vue-router+vuex+muse-ui,vue全家桶就不用说了,muse-ui是基于 Vue 2.0 和 Material Design 的 响应式UI 组件库,同时支持移动和PC,虽然用得少,但总该是要走这条路的。