【移动架构】Flutter vs React Native:最后一句话。

简介: 【移动架构】Flutter vs React Native:最后一句话。

首先,有点离题。做出决定的最简单方法是回顾历史。让我们沿着怀旧之路走一趟。早在2000年初,JAVA就有两个UI框架。一个是AWT,它是一种为多个操作系统构建UI的方法,同时仍然保持操作系统的外观。

每个操作系统都有自己的组件,这些组件映射回使用AWT框架创建的AWT组件。

Java随后决定开发自己的渲染组件库Swing。Swing所做的是处理自己的渲染

依赖底层操作系统组件的风险。Swing得了这场战斗,不久AWT就从地球上消失了。

这有什么关系?我为什么要离题?

如果您一直在关注React Native vs Flutter 的辩论,您应该很熟悉这一点。React Native 组件被传输到IOS或android组件,而Flatter使用自己的渲染引擎(基于称为SKIA的2d渲染引擎)渲染自己的UI。(类似于游戏引擎自己进行渲染的方式)。它仍然依赖于材料设计(Android风格)和Cupertino(苹果风格)

小部件模仿本机平台像素完美的外观和感觉。如果我们回顾一下Swing与AWT之战作为参考,那么Flutter 可能会在这里获胜。

第一轮:Flutter

我又离题了,但传统上基于操作系统的开发是基于小部件的,而基于浏览器的开发依赖于模板和DSL。尽管WPF/Silverlight等异常试图将相同的模板机制(XAML)引入操作系统,但它们已经多次失败。

开发人员需要什么?

React Native有一个使用React Underthe hood的绝妙策略,它允许您转移现有的React开发者技能集。颤振使用Dart,这是一种新时代的语言,具有更陡峭的学习曲线(主观),尽管它是一种更好的UI开发语言。[6]

在“人才大战”和“大辞职”的时代[2],这比以往任何时候都更为重要,因为你不能指望雇佣最好的开发人员并让他们永远被占用。它比以往任何时候都更有意义保持你的技术堆栈精简,而不是分散在不同的技术

第二轮:React Native

那么移动和网络上的通用代码库呢?

啊哈,圣杯。有两种方式来看待这个问题。React Native开始考虑利用React开发者技能集进行移动开发。在抽象屏幕和组件的同时,有一些简单的方法可以维护用于状态管理和行为的单个代码库。[5]

微软还发布了一个伟大的项目,允许您使用React Native for the web。[4]

另一方面,Flutter 将传输到web的JS。任何透明都是不好的,因为它是一个泄漏的抽象[3]。(记住GWT)。我对漏洞百出的抽象法则的推论是,你永远不应该选择一种可以转换成另一种语言的语言。

Flutter 还可能提供编译到web组装(WASM)的选项,允许在移动和web上使用通用的代码库。WASM将提供支持javascript以外语言的选项


未来在撰写本文时,WASM仍然存在SEO和性能问题,并且还没有为web产品做好准备。苹果承诺在safari中支持WASM。如果苹果足够体贴地为PWA提供全面支持,我们就永远不会做出选择。

尽管关于React Native和它的JS桥已经写了足够多的文章,导致了很多性能问题,但我相信这很快就会得到解决[1]

第三轮:React Native。可能是2022年

受欢迎程度如何?

截至11月11日,

github

Flutter 132K stars

React Native 99.2K stars

Stackowverflow:

此外,谷歌的趋势率也比谷歌高。这可能是因为框架的新颖性

第四轮:没有明显的赢家。

开发人员的生产力如何?

有两种方式来看待这个问题。

JS根深蒂固。Dart是一个相对较新的语言(已经存在10年了),尽管它是一种更好的语言。使用react Native和我们的react技能,起步更快。

一旦您忽略了初始起飞时间,与React Native相比,Flutter上市更快。虽然这是有争议的,但由于每个平台可能需要进行性能优化,我还是让颤振占上风。


总而言之,由于Flutter在框架本身内置了许多开发人员友好性(部署、CI/CD、丰富的组件库、调试、IDE支持),所以它在这里绝对是一个赢家。尽管像Expo、react native paper和fastlane这样的第三方组件确实为react native提供了很多便利。

第五轮:一触即发

最后决定:

如果要利用现有的开发人员技能集,请选择React Native。在当前的人才争夺战中,当你不能总是吸引最好的人才时,这比以往任何时候都更加真实。

如果你想首先成为移动用户,那么就选择Flutter,并且不介意开发两次,一次用于移动,一次用于网络。(目前)而且你没有开发商或现金短缺。它将成为未来单一前端框架的选择。

目录
打赏
0
0
0
0
110
分享
相关文章
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
111 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
深入理解React Fiber架构及其性能优化
【10月更文挑战第5天】深入理解React Fiber架构及其性能优化
221 1
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
358 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
Flutter 与 React Native - 详细深入对比分析(2024 年)
Flutter和React Native是两大跨平台框架,各有优缺点。Flutter性能优越,UI灵活,使用Dart;React Native生态广泛,适合JavaScript开发。
1956 5
Flutter 与 React Native - 详细深入对比分析(2024 年)
深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
本文深入探讨了 Flutter 在屏幕适配、横竖屏切换及多屏协作方面的兼容架构。介绍了 Flutter 的响应式布局、逻辑像素、方向感知、LayoutBuilder 等工具,以及如何通过 StreamBuilder 和 Provider 实现多屏数据同步。结合实际应用场景,如移动办公和教育应用,展示了 Flutter 的强大功能和灵活性。
285 6
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
167 4
flutter鸿蒙版本通过底部导航栏的实现熟悉架构及语法
这篇博客详细解析了一个 Flutter 应用的完整代码,实现了带有底部导航栏的功能,允许用户在不同页面之间切换。通过逐行讲解,帮助读者理解 Flutter 的结构、状态管理和组件交互。代码涵盖了从引入包、创建主入口、定义无状态和有状态组件,到构建用户界面的全过程。希望对 Flutter 开发者有所帮助。
219 3
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
244 3
Flutter&鸿蒙next 布局架构原理详解
Flutter&鸿蒙next 布局架构原理详解
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
116 0

热门文章

最新文章

  • 1
    ClkLog埋点分析系统-Flutter埋点上报攻略
    36
  • 2
    Flutter敏感词过滤实战:基于AC自动机的高效解决方案
    195
  • 3
    【Flutter 开发必备】AzListView 组件全解析,打造丝滑索引列表!
    62
  • 4
    flutter3-wetrip跨平台自研仿携程app预约酒店系统模板
    71
  • 5
    通过外部链接启动 Flutter App(详细介绍及示例)
    59
  • 6
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    289
  • 7
    零基础构建即时通讯开源项目OpenIM移动端-Flutter篇
    151
  • 8
    flutter3-dart3-dymall原创仿抖音(直播+短视频+聊天)商城app系统模板
    94
  • 9
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    208
  • 10
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    72
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等