2020年Flutter和 React Native如何选择
如果你想要开发一款App,那么选用什么技术一定是你首要考虑的问题。其次采用什么语言也是需要考虑的。是使用Java,还是Kotlin。是使用object-c,还是采用Swift。是原生开发还是混生开发,这些问题都是我们在开发App之前需要深思熟虑的。
flutter vs react native
如果我们想要进行跨平台开发,那么Flutter和React Native一定是我们最优先考虑的。因为目前看来,Flutter和React Native的运行效率是那些混生开发无法比拟的,因此它们就是当下最适合跨平台开发的技术。
流行度
react是2015年发布的,flutter是2018年发布的,因此,目前react的社区是比flutter的社区更强大些。不过在亚洲地区,flutter还是有着很大的用户社区的,似乎谷歌的产品在亚洲都有着不错的口碑。
开发语言
React Native的开发语言是JavaScript,因此如果你是前端开发人员,并且有接触过react框架的话,那么react native的开发对你来说会变得非常容易上手。
Flutter采用的是Dart语言,Dart是面向对象的、类定义的、单继承的语言,Dart2是强类型的语言,对于物联网,移动端开发非常适合,而且Dart语言上手也相对比较容易。
开发易用性
前面我们提到React Native是使用JavaScript开发的,因此上手起来会比较容易。Flutter是采用dart语言开发,因此开发之前,我们需要先学习下这个语言,相比较而言,React 比Flutter入手更快一些。
无论是React Native和Flutter都是支持热加载的,这对于我们平时的开发调试是非常友好的,我们可以所改即所得。
flutter
React Native编写之后会打包成bundle文件,Flutter会直接生成二进制文件,不过两者的开发都需要android和ios jdk的支持才行。
性能对比
在理论上 Flutter 的设计性能是强于 React Native 的,这是框架设计的理念导致的,Flutter 在少了 OEM Widget 之后,直接与 CPU / GPU 交互的特性,决定了它先天性能的优势。
react native
不过React Native相比较ionic等混生应用,还是有着出色的性能体验的。
UI对比
Flutter采用一切皆widget思想,所有的一切都是可以组件化的,非常适合定制跨平台组件。也就是说使用Flutter可以一份代码可以让android,和ios有着一样的用户UI。
Recat Native采用的是使用原生UI绘制,有些时候如果我们想要拥有一样的用户UX,我们可能需要使用第三方插件才能实现。
总结
目前来看,React Native仍然占据着大部分市场,而且和Flutter相比,它的坑可能更少些,不过从未来来看,作为依靠android爸爸的Flutter会更有发展前途。
相关文章
- Flutter之GetX集成及使用详解
- 【Flutter&Flame 游戏 - 贰伍】pinball 源码分析 - 资源加载与 Loading
- flutter主题设置
- flutter绘制系列
- 真香,我用Makefile做Flutter项目的自动化管理
- flutter中多flavors方案以及添加firebase
- flutter系列之:永远不用担心组件溢出的Wrap
- flutter源码:setState分析
- react的jsx和React.createElement是什么关系?面试常问_2023-02-27
- Flutter混编工程之异常处理
- react源码分析:深度理解React.Context_2023-02-07
- Flutter 3.7更新详解
- 【Flutter】Dart 数据类型 ( var 数据类型 | Object 数据类型 )
- 【Flutter】Dart 函数 ( 函数构成 | 私有函数 | 匿名函数 | 函数总结 )
- 【Flutter】Flutter 项目中使用 Flutter 插件 ( Flutter 插件管理平台 | 搜索 Flutter 插件 | 安装 Flutter 插件 | 使用 Flutter 插件 )
- 【错误记录】Flutter 报错 ( Could not resolve io.flutter:flutter_embedding_debug:1.0.0. )
- 【Flutter】Flutter 拍照示例 ( 拍照并获取照片源码示例 | image_picker 0.7.2+1 | Flutter 最新 SDK 安装 )
- 【错误记录】Flutter 报错 ( Because xx depends on flutter_driver any from sdk which depends on args 1.6.0 )
- 【Flutter】Banner 轮播组件 ( flutter_swiper 插件 | Swiper 组件 )
- 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 EventChannel 通信 )
- Flutter中的Key