|
|
51CTO旗下网站
|
|
移动端

Flutter与React Native针对移动开发的比较

就在几年之前,我们还会看到各种移动应用程序需要在Android Studio里使用Java来进行开发。然而,在Google推出了Kotlin之后,人们不再过于关注针对框架的开发了。本文将从多个方面综合比较Flutter和React Native两种移动应用开发框架的优劣势。

作者:陈峻编译来源:51CTO.com|2019-08-29 09:00

【51CTO.com快译】就在几年之前,我们还会看到各种移动应用程序需要在Android Studio里使用Java来进行开发。然而,在Google推出了Kotlin之后,人们不再过于关注针对框架的开发了。

Flutter与React Native针对移动开发的比较

现如今,业界的开发人员普遍开始使用Flutter和React Native之类新的框架,来开发各种移动应用程序了。这些新生的框架不但能够使得应用程序的编写过程更为容易,而且能够给用户带来更多的跨平台功能,并且能够支持横跨不同域的开发。

基本比较

简单而言,如果您需要在应用程序中包含某些动态功能的话,那么请使用React Native框架。它能够支持比Flutter更多的第三方库。鉴于Flutter是一个相对较新的框架,其社区仍然在不断地发展和完善之中,因此您可能很难找到高质量的在线使用教程。

而作为对比,React Native如今已经稳固了其市场占比,因此它拥有着比Flutter更为庞大的社区,您可以从中获得基于不同行业的各种在线帮助。此外,随着那些经验丰富的JavaScript开发人员在React Native社区中越来越活跃,他们更愿意、也更频繁地将自己所掌握的先进知识和技能分享出来。

就程序代码的可重用性而言,Flutter允许用户针对新的开发任务,直接修改现有的代码。然而,React Native的代码可重用性则相对较为复杂。鉴于其现有的平台样式,该框架需要用户付出更多的工作量。

框架开发人员

由Google推出的Flutter,自2017年面世以来,其实用的功能、以及易于开发移动应用的特性,备受业界的欢迎。而React Native则是由Facebook于2015年开始研发,2017年推出的产品。因此,如果您想通过诸如HTML、JavaScript和CSS等Web技术,创建运行在某个容器中的混合应用程序,以供用户手机上的兼容性网页来访问的话,那么这两个平台都是您的好选择。下面,我们将针对混合应用程序的开发,进行两种框架的优势比较。

哪个更稳定?

众所周知,我们在为大型项目研发应用程序时,应用本身的稳定性是尤为重要的。与此同时,应用程序应该能够随着用户数的增加,持续保持其稳定性。那么,就项目规模而言,大多数开发人员会针对大型项目推荐使用React Native来开发应用,他们普遍认为由Flutter开发的应用程序不太适合于大型项目。

在我看来,虽然React Native与Flutter在所支持的用户数量方面不相上下,但是React Native的稳定性的确见长。这主要是因为,其庞大的社区能够保障该框架的可持续改进,即使它的某些功能特性在某个特点应用上碰到问题时,该社区也能很快找到弥补、甚至是替换方案。

语言

如前所述,这两个框架都能够支持混合式的应用程序开发。因此,您完全可以使用相同的编程语言,来创建Android和iOS版本的应用程序。具体说来,在跨平台开发方面,React Native使用的是JavaScript,而Flutter则用到了Dart。由于支持JavaScript,而恰好业内许多开发人员都具有此类经验,因此大家普遍认为使用React Native框架开发起来,会更加得心应手。相比之下,Dart较为新颖,许多开发人员对它不甚了了。

界面上的比较

许多熟悉这两个框架的人都一直认为:由于用到了各种原生的组件,因此React Native提供了一个更新颖、更优秀的用户界面。而Flutter则需要依赖各种不同的部件集合(widget sets)。尽管Flutter的部件集合为用户提供了自定义用户界面的多重选择,但是有时候这种自定义方式反而会影响用户在使用中的直观体验。

测试

在测试方面,由于Flutter为用户界面提供了不同的内置测试单元,因此它的优势较为明显。相反,由于React使用的是JavaScript,因此它并没有许多可用的官方测试工具。虽然您可以使用Jest测试工具,来进行快照式的测试,但是如果您想通过测试用户界面,来发现具体问题的话,React并没有提供合适的官方测试工具。当然,您可以从Detox等非官方测试工具处获得帮助,以测试那些由React Native构建的应用程序,不过此类测试的成功性并无保证。

相关的指南支持

下面,我们来比较一下两者的在线文档与指南。由于Flutter提供了完备的在线和离线式文档,开发人员可以轻松地使用相关文档来开发应用程序,因此Flutter略胜一筹。而且,由于Flutter文档提供了简化复杂任务的快捷方式,因此Flutter开发人员更容易在较短时间内,创建出自己的移动应用。

不可否认,React Native也提供了相应的文档,但其文档的条理结构程度远不及Flutter。

结论

综上所述,我们得出了这样的结论:如今,由于得到了来自世界各地开发人员、以及相关行业的支持,React Native无疑在移动应用开发领域得到了、而且还将被继续广泛地被运用在不同的移动开发项目中。不过正所谓:“江山代有人才出”,Flutter的社区规模也在持续增长,业界不少开发人员满怀信心地认为,Flutter必将成为移动应用开发的未来。

原文标题:Comparison Between Flutter vs. React Native for Mobile App Development,作者:vibha Pareek

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. Flutter与Android 原生WebView对比
  2. Flutter 开发中的一些 Tips
  3. 两个星期,用Flutter撸个APP
  4. 一篇看懂Android与Flutter之间的通信
【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

111人订阅学习

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

371人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

755人订阅学习

读 书 +更多

.NET for Flash动态网站开发手札

本书深入浅出地说明了如何利用.NET、Flash及XML来辅助Flash富媒体应用程序的开发。 本书首先介绍了Flash影片应用程序与.NET应用程序结合的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微