Native的突围之路_混合开发

前言

技术发展日新月异,前端技术迭代速度更是快的飞起来,微信小程序,公众号,H5,ReactNative和各类前端框架,都能快速的开发一个移动端产品。

在看原生开发,需要IOS,Android两倍的人力,近几年培训机构越来越多,也越来越多的人投身到码农大军,加之需求被公众号,小程序分割,导致原生开发者工作越来越难找。现在面试都要求至少会一点混编的知识,因此为了讨口饭吃!是时候丰富下自己的技术栈了!

内容

原生开发:基于JVM,原生Android代码
Web开发:一个WebView,全部代码都是Html
混合开发:简单来说就是原生应用里使用一些H5,RN等技术。

比如电商产品,应用框架是Java写,商品详情用WebView嵌一个H5的页面,方便随时更新。

混编和原生开发的比较

Name 优势 劣势
原生 开发人员多;性能可控;和系统层交互 Android、IOS 两套人力;在线更新比较麻烦
混编 节约成本;更新灵活 性能体验上没原生好;和系统层交互麻烦

概括下就是两点:1 原生成本高,应用体验好 2 混编成本低,应用体验欠缺

常见的混编技术比较

框架名 优势 劣势
PhoneGap(Cordova) 由Adobe公司和Apache基金会共同支持;
开发门槛低,兼容性不错;
浏览体验在部分机型会有卡顿;
Xamarin 可以使用C#语言开发;
本地打包,不在受其他平台服务器的制约;
调试方便,vs开发工具打断点容易;
国内资料少,资料都是国外;
应用群体少,成熟解决方案少;
开发成本高,C#程序员也来越少也越来越难招;
DeviceOne 开发效率极高,组件拖拉拽就可以;
开发门槛低,会js即可;
执行效率高;
发质量、开发的功能,受组件的制约,组件没有的功能,你app也实现不了;
deviceone的打包次数和下载次数有限制,超出的需要收取费用;
在线打包,服务器偶尔也会挂;
使用的人不多,网上的资料/替代方案相对匮乏;
DCloud 门槛比较低(懂Js和Html的程序员对照着api很快能够上手);
有一整套的解决方案,开发工具+UI库;
传统H5技术,在性能上尤其是低端android机上有瓶颈,高端机操作上也有明显的延迟;
在线打包,服务器经常挂;
文档不是很全
React Native FaceBook、JD 维护支持;
开发门槛低(会js稍加学习jsx语法即可);
资料多,解决问题成本低;
开发效率高,第三方集成组件多;
有好的开发生态圈,性能好,背靠npm有万级以上的优秀开源三方组件支持;
初学者,配置较多,开发环境配置不是很方便
Facebook的更新频率比较快,版本存在一定的差异,有些老的资料可能并不适用于现在的版本;
基本只支持两端,WEB端写法会有差异;
Weex alibaba 维护支持;
三端支持;
文档欠缺,上手比较难

目前使用较多的是Weex和ReactNative,别人都在用,我为啥不试试?
Weex和ReactNative的比较

不想看的我摘录出一些大家可能比较关心的问题:

Name Weex ReactNative
Android版本支持 API14以上可用 API16以上可用
跨平台 支持Android iOS web三个平台 支持Android iOS两个平台,需要自己扩展去支持web

总结

  1. 框架很多,基础是要熟悉前端开发知识,H5,CSS,JS
  2. 混合开发可以提升迭代速度和开发效率
  3. 今后的团队基本会使用30% 原生 + 70% 的混编
  4. 完全的跨平台只会是什么都能做,但并不是什么都做得好
  5. 如何选择需要结合具体的项目需求

也看了网上各路同行的留言回复,各大论坛对混编和各种框架的褒贬不一,可能要自己用过之后才知道好坏,但是一门技术最重要的是减少工作量,提升效率。

你可能感兴趣的:(混合开发)