如果你想要开发一款App,那么选用什么技术一定是你首要考虑的问题。其次采用什么语言也是需要考虑的。是使用Java,还是Kotlin。是使用object-c,还是采用Swift。是原生开发还是混生开发,这些问题都是我们在开发App之前需要深思熟虑的。
fluttervsreactnative如果我们想要进行跨平台开发,那么Flutter和ReactNative一定是我们最优先考虑的。因为目前看来,Flutter和ReactNative的运行效率是那些混生开发无法比拟的,因此它们就是当下最适合跨平台开发的技术。
流行度
react是年发布的,flutter是年发布的,因此,目前react的社区是比flutter的社区更强大些。不过在亚洲地区,flutter还是有着很大的用户社区的,似乎谷歌的产品在亚洲都有着不错的口碑。
reactandfluttergoogletrends开发语言
ReactNative的开发语言是JavaScript,因此如果你是前端开发人员,并且有接触过react框架的话,那么reactnative的开发对你来说会变得非常容易上手。
Flutter采用的是Dart语言,Dart是面向对象的、类定义的、单继承的语言,Dart2是强类型的语言,对于物联网,移动端开发非常适合,而且Dart语言上手也相对比较容易。
开发易用性
前面我们提到ReactNative是使用JavaScript开发的,因此上手起来会比较容易。Flutter是采用dart语言开发,因此开发之前,我们需要先学习下这个语言,相比较而言,React比Flutter入手更快一些。
无论是ReactNative和Flutter都是支持热加载的,这对于我们平时的开发调试是非常友好的,我们可以所改即所得。
flutterReactNative编写之后会打包成bundle文件,Flutter会直接生成二进制文件,不过两者的开发都需要android和iosjdk的支持才行。
性能对比
在理论上Flutter的设计性能是强于ReactNative的,这是框架设计的理念导致的,Flutter在少了OEMWidget之后,直接与CPU/GPU交互的特性,决定了它先天性能的优势。
reactnative不过ReactNative相比较ionic等混生应用,还是有着出色的性能体验的。
UI对比
Flutter采用一切皆widget思想,所有的一切都是可以组件化的,非常适合定制跨平台组件。也就是说使用Flutter可以一份代码可以让android,和ios有着一样的用户UI。
RecatNative采用的是使用原生UI绘制,有些时候如果我们想要拥有一样的用户UX,我们可能需要使用第三方插件才能实现。
总结
目前来看,ReactNative仍然占据着大部分市场,而且和Flutter相比,它的坑可能更少些,不过从未来来看,作为依靠android爸爸的Flutter会更有发展前途。