【51CTO.com快译】自从智能手机问世以来,移动应用已经逐渐成为我们生活中不可或缺的一部分。有统计显示,人们会将超过90%的智能手机使用时间,花费在各种引人入胜的移动应用程序上。当然,不可否认,实用的移动应用的确是连接客户、并确保他们能够获得最佳应用体验的一种有效工具。

近年来,随着送餐服务作为一类新兴的、按需经济(on-demand economy)的不断崛起和飞速发展,与之相对应的移动应用细分品类,也需要凭借着其高效的服务能力,以满足各类客户的不同使用需求。目前,有Flutter和React Native两种技术,可以被用来创建具有快速响应能力、且高效的送餐应用平台。下面,让我们对它们进行综合介绍与优缺点比较,以便您能够根据实际需求,针对送餐应用的开发,做出明智的选择。

什么是Flutter?

Google于2017年首次推出了Flutter。该跨平台框架使用的是与JavaScript类似,但更为简单的Dart编程语言。由Flutter提供的UI软件工具包,对于使用单个代码库进行开发的、交互式跨平台应用程序来说,是非常高效的。

作为一个完整的SDK,Flutter包含了各种工具、小部件、API、以及带有现成按钮和元素的UI库。该平台可以作为便捷的工具,为时下流行的按需经济,构建和部署各种MVP(Minimum Viable Product,最小可行产品),以便它们能够顺利地运行在iOS和Android系统之上。

什么是React Native?

在2015年、或更早些时候被发布的React Native,是一个由Facebook创建、并采用了JavaScript的框架。该框架不但属于开源工具,而且能够获取强大的社区支持。该框架非常适合于将应用程序构建在iOS、Android、Microsoft Universal Windows平台、以及Apple tvOS等平台上。

Flutter与React Native的共同优势

为了给用户带来最佳的使用体验,服务提供商需要让自己的送餐应用既简单、又使用便捷。当然,他们也需要考虑到开发与实现的成本。如果您想从零开始构建应用的话,请先参考《如何创建送餐应用程序》一文,以了解相关基础概念。在此,我们将主要讨论Flutter和React Native两大平台框架的共同优势。

  • 降低成本。凭借着一整套独特的工具和跨平台选项,Flutter和React Native框架都能够让用户以最低的成本优势,按需开发出各种应用程序。

  • 开源。这两种平台不但开源,而且包含有大量的插件和第三方服务。当然,用户也可以在此基础上针对送餐应用,开发出各种特定的功能。

  • 现成的UI/UX元素。在这个“看脸”的时代,由这两种平台开发出的移动应用,既能够通过友好的UI元素,吸引用户去下载试用;又可以通过简单灵活的UX特性,让用户持续将其保留在其智能终端上。

  • 易于维护。无论处于开发阶段、还是在测试阶段,Flutter和React Native都能够让用户易于对应用程序开展调试和修改。

Flutter与React Native的点对点对比

Flutter和React Native的差异性

人气和市场份额

根据Statista的数据统计,目前,React Native仍然是最受欢迎的跨平台移动框架之一,且占全球份额的42%。Flutter紧随其后,占据了30%的市场份额。而在非Web框架排名中,React Native以11.50%的份额占据第6位,Flutter以7.20%的份额占据第9位。

设置

这两种平台都是开源的,并且都配有关于软件该如何安装的详细文档。当然,Flutter的设置过程会更为直接,可以自动检查出系统的各种潜在问题,而React Native在此方面稍逊一些。

编程语言

正如前面所提到的,这两种平台分别有着自己首选的编程语言。其中,由于React Native基于JavaScript这种非常流行的编程语言,因此开发人员更容易上手。

用户界面

在用户界面上,这两种框架分别使用不同的行为,来构建UI。React Native使用第三方组件,去连接原生的iOS和Android组件;而Flutter具有可定制的各种小部件。因此,如果使用React Native的组件进行跨平台开发,开发人员可能会经常面临重复性的、复杂的用户界面开发等挑战。

开发时间

虽然这两种跨平台框架都适合以最少的预算和开发时间,构建出送餐等类型的移动应用程序。尽管Flutter会以其原生的UI组件略占优势,不过由于Dart语言在开发圈内并不普及,因此开发者学习该语言和相关技术,也需要花费一定的时间。

相反,使用了流行的JavaScript语言的React Native,虽然可以节省开发用时,但事实上它往往需要集成各种插件和组件,因此会在无形中拖慢开发的时间。

应用性能

就它们开发出的应用整体的运行效果而言,由于React Native使用了JavaScript桥接器与各种设备组件进行交互,因此它可能会减慢运行的时间。而Flutter会被编译成适用于iOS和Android的原生ARM代码,进而巧妙地避免了性能问题。可见,此局中,Flutter在性能上胜出。

测试支持

React Native仅带有几个单元级别的测试框架,而且并没有官方支持。用户往往需要使用第三方的、且非官方支持的平台,去测试开发出的应用程序。而Flutter则拥有许多测试功能,可被用于在任何开发级别上,运行各项应用测试。因此,Flutter再胜一局。

对于送餐应用来说,什么是重要的?

我们可以将送餐应用视为一个第三方API的集成。它往往涉及到在线支付、集成地图、聊天机器人、以及路线优化等服务与功能。各种技术栈应该能够被平滑地集成到此类应用中,以便用户按需使用其界面导航和按钮。因此,在创建送餐应用程序之前,您应当事先遵循如下与业务相关的流程:

  • 决定按需应用的运作模式。

  • 确定预算。

  • 选择框架。

  • 设置用户友好的界面。

  • 集成第三方API。

显然,构建一个相对复杂的应用程序,往往无法在数小时内完成开发工作。对此,我们需要根据开发团队所擅长的开发语言,使用带有SDK、以及现成组件的跨平台框架,在保证产品交付质量的前提下,选择合适的架构,以降低整体的开发成本。

总而言之,目前业界不同公司都有着使用React Native和Flutter,来创建送餐应用的先例。这两个框架都能够在有限的项目预算和时间内,为iOS和Android用户构建出界面友好的应用程序。具体应该如何选择,仍取决于待构建应用的复杂性和具体的业务目标。

原文标题:FluttervsReact Native: What Is the Best Language for Food Delivery App Development? ,作者: Anahit Ghazaryan

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