在移动开发这片热土上,除了原生以外,也有一些公司在尝试着新技术、新模式,这是混合开发诞生和延续意义以及价值。node
原生开发和混合开发的优缺点也已是一个老生常谈的事儿了,在这里我就简单来讲一下:android
原生开发优势:灵活、主流、成熟、解决问题成本等优势;ios
混合开发技术:开发效率快,上手难度低,跨平台(一套代码能够运行在ios/android)上;程序员
缺点就不用多说了,他们自己的优势也是牵制对方的缺点。es6
进入主题web
而咱们本文重点要说的是咱们在将近3年的实践当中,对与混合开发的一些思考与总结,但愿能够帮助一些公司在混合开发技术框架选型上少走一些弯路,固然本文所述的全部信息都是我对于这些技术一些本身的理解,对你只是有参考做用,不能彻底替代和帮助框架师对于技术的选型,俗话说的好:“明白了不少道理,依然过很差这一辈子.”,有些坑仍是要本身踩的,否则也不会懂得什么叫“刻骨铭心”!npm
框架进阶之路api
咱们这三年的时间,作的是一款综合类app,里面主要的功能有:新闻、工具(十余款)、聊天、朋友圈,功能能够说比较多。服务器
而咱们使用的混合开发框架有:app
下来咱们说这四款框架的优缺点;
DCloud做为咱们最先(2015年)使用的WebApp框架,能够说让咱们用的很是的不舒服,DCloud是咱们精心选择的第一款混合开发框架,对比了同类的webapp框架还算优秀,有本身的开发工具HBuilder,有很好的模板和Demo让咱们能很快的上手写代码,配合官方MUI(DCloud的UI解决方案),咋一看用起来还能够,然而在咱们的实践中还暴露了不少问题,下面我来列举一下:
优势:
缺点:
整体来讲:DCloud看起来入门很容易,可是想要写好须要很好的js功底,普通水平的js写出来的app用户体验很是有局限性,基于上面的问题,咱们决定换掉它。
DeviceOne(下文简称do)是咱们国内北京的一个公司作的,他也有本身的开发工具,是基于eclipse改的,编译器能够说很很差用,不时的须要从新启动一下,而do和DCloud的最大区别是,do不是webapp,因此在性能上do是远远胜于DCloud的,do在UI上采用的是“组件商店”的概念,在说这个概念以前先要说说do的基本原理,do开发使用的是js语言,是标准的js函数,而js方法调用的组件,所有是用原生封装好的,因此你使用的每一个组件:第1、能够在开发工具上拖拉拽;第2、官方开发了他们开发组件的接口每一个人均可以给他们写组件,下来具体说说他们的优缺点:
优势:
缺点:
整体来讲:do性能和模式都是ok的,只是开发app受外界因素影响比较多,资料比较少,替代方案几乎没有。
经历了两次框架更换以后,咱们把但愿寄托给了微软的Xamarin,用它的一个好处是可使用C#开发,对于C#出身的程序员来讲,简直是求之不得的事情,在一个好处就是他有一个“好粑粑”,以以前咱们对于C#的信任,让咱们对于Xamarin的技术,也不自觉的产生了好感,以致于咱们错误了低估了他能带给咱们的“麻烦”。
优势:
缺点:
整体来讲:开发成本相对于以前两款框架来讲,耗费的成本要高不少,Xamarin自己的功能也有限,使用的人数少,致使资料和解决方案少,开发成本和解决问题的成本很高,有不少组件没有很好的封装,集成起来也相对麻烦不少。
咱们目前正在使用的框架,Facebook和JD的开发框架,在混合开发技术领域属于正统的,主流的框架,网上的资料多,基于React技术JSX技术相对成熟,开发成本低会js稍加学习一下JSX的语法便可,基于npm生态系统,全部nodejs可使用的三方包,均可以使用,可使用es5/es6/es7的语法开发app,很是舒服,第三方组件和绑定原生库都很是的简单方便,网上的资料也很是多。
优势:
缺点:
整体来讲:React Native对于混合开发来讲应该是一个不错的选择。
全部的经历,到最后都会变为经验,拥抱变化,不断的尝试和学习新的技能,会让你收益匪浅,墨守成规已经不在适应这个物竞天择的世界。成长的道路上会遇到不少坎坷和挫折,但无论这些试错成本有多大,他最后产生的价值,要远远大于固步自封与墨守成规带来的后果。