袅袅青烟散 2019-08-29
现如今,业界的开发人员普遍开始使用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。
结论