跨平台开发,Flutter还是React Native?( 三 )


2.在应用程序大小方面的比较React Native应用程序通常包含一个压缩的约300kb的JavaScript运行时文件,尽管可以通过调整一些选项来降低文件大小,如Bypass filling(这将迫使React Native跳过填充其虚拟DOM的过程,从而造成与原生UI的差异),以及将useDeveloperMode设置为true(这将在内存中调整图像大小并降低其质量) 。Flutter提供了一个预编译器,允许开发者只发送他们正在构建的应用程序所需的代码库,而不必与之捆绑任何组件 。如果你愿意,可以在现有的JavaScript虚拟机内运行Flutter,这样可以节省应用程序所需的空间 。
3.最小所需SDK版本的比较React Native通常可以在任何iOS 9+或Android 5.0+的SDK上构建,而不会存在任何问题 。但为了达到最佳性能,你应该在发布时使用最新的可用SDK版本 。
实际上,React Native应用可以在更早的iOS和Android SDK上构建,并可以在运行时提供一组有限的功能,但为了获得所有的功能,你需要使用最新的SDK版本 。
Flutter应用程序可以在Android 21 (Lollipop)或更新的版本上进行构建,我们同样建议使用最新的SDK版本进行构建以获得最佳性能 。Flutter可以在iOS 8或更新的系统上运行,但鉴于苹果已经废弃了Flutter使用的大部分API,调用那些API可能会导致运行时崩溃 。
4.在UI开发方面的比较Flutter有自己的一套用于渲染用户界面的组件,在构建Flutter应用程序时,你也可以重用现有的iOS或Android代码 。作为第三方库可能更容易地重用现有的本地组件,所以将Flutter组件映射到现有的iOS和Android UI组件并不容易,但这仍是一项正在进行的工作 。React Native则提供了一个桥接,允许你将现有的iOS和Android代码作为JavaScript模块进行重用,以及公开了一些API,作为手动创建本地UI组件和渲染它们的JavaScript代码之间的桥梁 。
5.在调试方面的优缺点React Native有自己的调试器,可以连接到你在iOS和Android上运行的应用程序,它为开发者提供了JavaScript虚拟机当前状态的预览,以及各种检查内存使用情况或动态调整某些选项的工具 。Flutter也提供了类似的调试器,除了提供渲染引擎当前状态的预览与React Native不同之外,其余都类似 。
6.移动平台间代码重用的比较React Native有自己的一套API,在开发iOS和Android时都可以使用 。虽然大多数使用React Native的公司会先在一个平台(通常是iOS)上开发他们的应用程序,然后再移植到另一个平台,但如果愿意你也可以很容易的在iOS和Android应用程序里面编写共享组件 。Flutter应用程序是用特定平台的代码构建的,因此不可能在你的iOS和Android应用程序里共享任何代码 。然而,作为第三方库可以使重用现有的本地组件变得更容易 。
7.Flutter或React Native哪一个更容易学习?React Native和Flutter都很容易学习(就API而言),但前提取决于开发者的专业知识 。两者都有一个庞大的、参与性强的开发者社区,可以给新的开发者提供帮助,并不断创建新的工具和组件 。对于一个几乎没有编码经验的全新开发者,我们可能会建议从React Native开始,因为它提供了一套预定义的组件,可以用来构建iOS和Android应用程序,这样你就可以专注于学习一种API,而不必担心要学习所有用于渲染视图的API 。而对于有一定编码经验的开发者,我们可能会推荐Flutter而不是React Native,因为Flutter提供的API更接近于iOS和Android 。此外,Flutter背后的团队非常注重Flutter提供的开发体验,确保能够与其他SDK(包括React Native)提供的开发体验媲美 。
8.2023年Flutter与React Native的对比React Native于2015年问世,那时起已经被许多公司所使用 。JavaScript变化非常快,所以React Native也随着时间的推移不断发展,而且在开源社区的贡献下加入了很多新的功能 。Flutter是一项较新的技术,如果你习惯了Android或iOS,开始可能会感到相当陌生 。但谷歌为了使其更易入手付出了很多努力,因此大多数熟悉iOS或Android开发的人应该能够很快掌握它 。
九、结论Flutter和React Native都是跨平台应用开发的绝佳选择 。虽然它们有一些相似之处,但也有一些关键的差异是你需要知道的 。为你的商业应用或初创应用选择合适的跨平台框架,主要取决于你的开发经验、开发团队,以及你的项目需要访问哪些本地组件,我们希望这篇文章能帮助你做出明智的选择 。
原文链接:https://dzone.com/articles/comparing-flutter-vs-react-native
译者介绍胥磊,51CTO社区编辑,某头部电商技术副总监,关注Java后端开发,技术管理,架构优化,分布式开发等领域 。


推荐阅读