ReactNative调研报告
2015年9月15日Facebook发布了ReactNative for Android,引发了学习使用ReactNative开发跨平台引用的热潮。目前React Native发布到了0.44的版本。最近项目中考虑是否要接入ReactNative,所以对ReactNative进行了一些调研性的工作。 ReactNative简介在reactnative中文网上有以下简介: React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。 React Native着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once,write anywhere) Facebook已经在多项产品中使用了React Native,并且将持续地投入建设React Native。 React Native是使用javascript和react来实现跨平台开发的,React Native提倡组件化开发: 即提供一个个封装好的组件,组件相互嵌套形成新的组件.你可以完全将App使用ReactNative编写,也可以使用原生和react native混合和的方式。由于目前React Native才发布到0.44版本,还没有发布正式的1.0,其变动相对比较频繁,在react native升级后经常导致项目不能运行,你必须去做额外的工作来保证项目正常的运行。不过最近React Native的发布已经慢慢趋于稳定了,现在基本是1-2个月发一次版本更新,更新内容也没有之前变化那么大了。 众所周知Android的碎片化和厂商的定制化是影响app稳定的很重要的原因之一,尤其是在国内,各个手机厂商都对Android系统进行了深度定制。这样的问题在ReactNative上也有很明显的体现,ReactNative在兼容Android各个系统版本和厂商版本的时候会暴露出不少的问题,目前React Native只支持Android 4.1以上,IOS 7.0以上的版本.附上最新的Android版本分布,Android3月份分版本分布可以看到Android 4.0的应用占比基本在%1左右,所以影响不大。 在2017年3月爆发了一股苹果商店禁止热更新的事件,很多人都担心苹果是否会封掉Reactnative,其实苹果想要禁止的是热更新的功能。在苹果的拒绝邮件上也只是说明拒绝热更新的能力。从目前来看,这2个月苹果ReactNative依然可以过审。在各个论坛上也并未发现此次禁止热更新对ReactNative有较为明显的影响。 ReactNative VS 原生 VS Hybrid实现(hybrid和 phoneGap APICloud AppCan等思想相同) 性能原生 > ReactNative > Hybrid 开发&维护以下成本和更新能力模块参考了H5、React Native、Native应用对比分析 维护成本Hybrid < ReactNative < 原生 H5/Hybird: Web代码 + iOS/Android平台支持 React Native:可以一个开发团队 + iOS/Android工程师;业务组件颗粒度小,不用把握全局即可修改业务代码。 Native:iOS/Android开发周期长,两个开发团队。 总结:React Native 统一了开发人员技术栈,代码维护相对容易。 更新能力H5/Hybird: 随时更新,适合做营销页面,目前携程一些BU全部都是H5页面;但是重要的部分还是Native。 React Native:React Native部分可以热更新,bug及时修复。 Native:随版本更新,尤其iOS审核严格,需要测试过关,否则影响用户。 React-Canvas为了解决webapp渲染dom的效率问题,Flipboard推出了一款react-canvas,它的思想是用做游戏的方式来做app。界面渲染针对到canvas上,通过重新定义绘制过程来减少web界面渲染时候的开销问题。 案例目前国内使用ReactNative的还不是很多(有些小的应用是完全用React Native来实现的),比较出名的是 携程的火车票模块, QQ空间,销售易的包中也发现了React Native的痕迹。要想看到更多的国内案例可以通过react native中文网收集的案例上查看: ReactNative案例。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |