人的一生从来不缺比较对象,在编程领域,亦是如此。框架的比较,语言的比较是我们茶余饭后老生常谈的话题!
站在现在看未来,站在未来看现在。最近,Flutter 引起了我的注意,不仅如此,Flutter 的搜索指数也一直居高不下。作为一个后起之秀,Flutter 和 RN 到底谁更代表未来?今天我们一起来看看它们之间的区别与联系吧!
Flutter 是由谷歌在 2018 年 6 月 21 日发布,作为 Google 大力推出的一种全新的响应式,跨平台,高性能的移动开发框架。Flutter 是一个跨平台的移动 UI 框架,旨在帮助开发者使用一套代码开发高性能、高保真的 Android 和 iOS 应用。Flutter 出生就带有金钥匙,看似前途无量啊!
既然有了 RN,那为什么还要推出 Flutter 呢?这说明 React Native 肯定有很多缺点是谷歌不能忍受的,所以他们认为很有必要推出一个新的框架。事实上,正是如此,Flutter 的优点如下:
- 跨平台
- 开源
- Hot Reload、响应式框架、及其丰富的控件以及开发工具
- 灵活的界面设计以及控件组合
- 借助可以移植的 GPU 加速的渲染引擎以及高性能 ARM 代码运行时已达到高质量的用户体验
但是,任何事情都是两面的,有优点就有缺点。Flutter 目前的几个缺点如下:
- Flutter 学习资料太少,对于英文不好的同学相对来说比较困难
- 官网文档示例不够健全,不够直观
- 各个 widget 的用法各异,属性纷繁,要运行一个 widget 的 demo 往往要到处翻阅各种资料
- Flutter 采用 Dart 语言,学习成本更高
天下苦 React Native 久已!RN 长期制霸天下,在一些更深层次上,使用 RN 还需要懂一些原生 API,原生技术。另外,在性能上 Flutter 优势明显。尤其是在中低终端机器上,表现的非常明显。
目前,比较知名的使用 Flutter 技术的公司,要数闲鱼和美团了。并且,根据闲鱼的性能报告显示,Flutter 确实在某些方面的优势明显。
Flutter 出生于谷歌,在未来谷歌新系统 Fuchsia OS 上,很可能将有大作为。Flutter 很可能代表着 Fuchsia 未来的 UI 框架,所以,深入学习 Flutter 应该不会亏。
Flutter 与 RN 异同总结如下:
- 都实现了移动开发跨平台
- 界面的编写都很类型,采用响应式视图,维护了一个状态机,只更新改变的最小区域界面
- 都支持热重载 hot reload,开发调试非常方便
- 调用系统的service仍然需要封装接口,仍然还是需要懂得native开发
- RN 采用 JS 语言开发,基于 React,受众更多。Dart 语言受众小
- Flutter 的 UI 框架性能貌似更高一些,但是直接丢弃了原生 UI 框架。而 RN 还是可以自己利用原生框架,两个各有好处。Flutter的兼容性高,RN 可以利用原生已有的优秀 UI
- Flutter 的第三方库还很少,RN 发展的早,虽然也还不完善,但是比 Flutter 好
- RN 的界面布局更像网页布局,而 Flutter 的布局更像 native 布局
- Flutter 在跨平台这方面做得更彻底一些
另外有些人还根据启动速度、内存占用、帧率三个方面来比较 Flutter 和 RN。没有完美的技术,只要我们一直学习,总能在未来引领潮流!
: » Flutter 与 RN 的对比总结
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/251106.html