2021年跨平台开发框架大比拼:Flutter、RN、Ionic、NativeScript与AVM谁更胜一筹?

2025-02-12
来源:网络整理

哪个跨平台开发框架在2021年更好?

当前,有多个专门从事市场上跨平台开发的框架。那么,哪个框架更符合开发人员的需求?作者专门概述并比较了不同框架的特征。

国内外的作者总共选择了5个主流评估目标,即由团队开发的RN和AVM。

目前,最受欢迎的是RN是第二个,取决于企业的应用程序方案和字段。 AVM在许多企业和个人开发人员中也高度使用。

1。安装环境和开发工具的比较。

任何框架的安装环境都表示该框架是否对新手很友好。因此,作者从安装环境和开发工具中介绍了不同框架的情况,并比较了新移民开始的成本和阈值。作者是用户。下面的全文介绍了Mac下的开发环境和开发工具。

1.1

RN是一个跨平台移动应用程序开发框架,于2015年4月开发。它已经开发了6年以上。最新版本为0.66。将于2021年12月10日发布一个小版本。总体而言,该框架仍然非常重要。官方网站:

让我们看一下安装环境和开发工具。在最新的官方网站上,我们可以看到,如果您刚开始,它非常方便。您只需要在本地安装12版或更高版本即可。然后,借助官方网站推荐的世博工具,您可以快速构建当地开发环境。因为我是用户并且以前已经安装了它,所以整体安装非常流畅。

首先,命令行工具安装:

yarn global add expo-cli

我不会谈论配置源或其他内容。如果慢,您可以切换到国内纱线源。安装完成后,直接使用它。

expo init AwesomeProject

安装项目后,在安装项目后,输入项目以执行

yarn start

Expo-CLI将被重新安装一次,该项目将在本地启动。 DEV的浏览器接口如下。在最左边,您可以看到本地博览会已打开。您需要调试平台。选择本地LAN网络,然后单击在iOS上运行以启动作者。本地8设备,然后我看到了当前接口,最右边是本地生成的模板代码。

编辑器工具由我使用,官员也推荐。使用脚手架的生成目录类似于普通项目的目录。该条目在app.tsx文件中,并支持修改。对于前端开发而言,整个过程不高。至少在调试和开发阶段之前,如果仅涉及UI写作,则可以在配置后直接开始工作。

1.2

自出生以来已有3年多(V1.0于2018年发布)。强烈建议这是一个跨端开发框架。与RN不同,它是开发语言中使用的飞镖,官方网站在这里:

近年来,主要公司一直在迅速发展。他们介绍了主要业务,包括我工作的许多公司,这些公司都使用了UI零件来开发。作者将简要介绍下面的开发环境和工具。

首先,我们必须下载并安装完整的开发工具。默认情况下,我们都安装了它们,因此以后不会详细介绍。

需要首先下载的SDK:

解压缩SDK后,设置相应的SDK环境变量地址:

cd ~/development
unzip ~/Downloads/flutter\_macos\_vX.X.X-stable.zip
export PATH="$PATH:`pwd`/flutter/bin"

如果在此过程中遇到问题,则可以使用它们查看问题并解决问题。如果存在错误或丢失的环境,将提示您修改它们,这更方便。

如果没有错误,则安装命令行。让我们看一下发展经验。

首先,作者将其用于开发。您需要安装正式推荐的插件。只需搜索并将其直接安装在插入市场中。然后,您可以通过插件创建一个新项目。

本地配置相应的iOS模拟器,单击左侧的“调试”按钮以选择相应的模拟器,您可以直接开发和调试。

屏幕截图是我制作的一个小型应用程序项目。目录结构相对简单。 lib目录中的主。是输入文件。唯一的缺点是它对前端发展的语法不友好。尽管飞镖并不复杂,但它仍然存在越来越多的差异,需要一定时间来掌握和学习,并且许多相应的系统库的使用也不同。

总体而言,它比RN配置更为复杂。对于前端开发,DART语法是一个挑战。除了DART外,您还需要了解自己的状态管理机制,概念和相关库的功能,以便开始。新移民的门槛仍然相对较高。

1.3

公司于2013年成立,可以说是混合发展的发起人()。在启动之前,每个人通常都开发了混合开发应用程序。它在一开始是高度融合的,但是现在它支持与Vue的集成。除了可以使用的图书馆外,整体生态系统仍然还不错。优势主要是网络技术,缺点也很明显。与RN的性能和性能比较。编译后代码的性能比较绝对更糟,并且某些Web不支持功能需要编写大量本机插件以支持。

让我们看一下其安装环境和开发工具的一部分。首先,安装全局CLI命令行工具,版本12.14或更高版本。

npm install -g @ionic/cli

ionic start myIonicApp blank --type vue

ionic serve █

这似乎相对简单,但是需要安装很多东西。建议提前将NPM设置为国内来源,否则您将不得不等待很长时间。

使用后,实际上在本地创建了-DEV-。

打开8100地址实际上是一个普通的Web项目。熟悉Vue的学生可以看出,它作为Vue的插件存在。

因此,让我们看一下如何在模拟器上预览。首先,您需要安装以下两个工具,即前依赖性。

npm install -g ios-sim

brew install ios-deploy

然后在项目目录中的第一个项目,然后我们直接使用CLI:

npm run build

ionic capacitor run ios -l --external

选择本地模拟器,您可以看到接口。但是,由于作者本地版本是11的旧版本,并且会报告汇编错误,因此您需要升级到最新版本,但作者无法升级它,因为我的计算机系统不支持更高级别,因此后来将其更改为调试。

作者以前已经安装了它,需要将SDK更新为最新信息,然后在其中找到AVD面板并创建模拟器。

启动后,您需要检查它。如果设备在线,请继续下一步:

ionic capacitor add android

ionic capacitor run android

这个步骤是第一次非常非常慢。它应该与iOS相同。它需要将其编译到APK中,然后将其同步到模拟器。

最终效果是这样。当您看到日志的最后几行时,您将获得模拟器的APK。

总体而言,安装步骤并不复杂。如果网络更好,则整个过程不到半小时。如果它是系统的最新版本,则升级到最新版本应该更顺畅。我查看了官方网站,方法是使用或调试Web调试工具,因此每个人都知道调试方法和调试方法与此外壳相同。

1.4

这是一家由公司开发的上市公司,一直专注于工具的开发已有30多年的历史。整个功能是专门针对iOS和同名的,但写作是。与上面提到的内容不同,它是JS之间打开的外壳或桥梁,并真正使用代码渲染页面,这也使其性能更强大。在官方网站上,它还支持不同的网络框架写作,例如VUE,当然也可以用本机JS和HTML编写。官方网站:。

让我们看一下下面的安装环境和开发工具体验,它仍然是在系统环境上构建的。

首先需要安装的同一CLI工具:

npm install -g nativescript

在此过程中,您将遇到下载依赖关系中的问题,您可以设置代理或修改主机。作者遇到了它,但这不是问题:)。

140.82.114.9 codeload.github.com

使用 ns 命令创建 NativeScript 项目:

ns create myNativescriptApp

选择创建一个空项目以创建VUE模板。命令行将指导您进行交互选择。您可以通过打开它进行编辑。目录结构基本上与普通VUE项目的结构相同。该条目是App目录中的App.js,VUE实例是 - vue替代方案。

Run the project on multiple devices:

`  `$ ns run ios

`  `$ ns run android

Debug the project with Chrome DevTools:

`  `$ ns debug ios

`  `$ ns debug android

让我们看一下它的外观。 iOS也是因为本地版本太旧了,无法运行。它第一次编译相对较长,因此您需要耐心等待。

运行后,它是相似的。 APK安装在模拟器中。我测试了前端代码的局部修改,并在本地进行模拟器同步,以实现热门更新。速度还可以,但是需要经常开始冷。该应用将生效。

1.5 AVM

AVM是研发开发的跨端框架。全名是(-View-)。写作方法VUE还与JSX兼容,具有双向绑定,组件化和状态管理支持,并配备了系统级API来支持云编译和发布。对于不同的平台,官方网站是:它具有自己的开发IDE支持。我认为它将在今年12月(2021-12-3)进行更新,其中JS部分都是开源的,包括JS组件库。

让我们看一下其安装环境和开发工具。首先,您需要注册一个帐户,因为它们继承了云编译的功能,并且IDE还要求该帐户登录和同步代码。然后下载官方网站3。如果是Mac系统,则必须小心。您不能直接在目录中打开它。您需要在使用之前将其复制到应用程序文件夹。

下载后,打开它,熟悉的学生应该能够发现这是基于二级发展的IDE。

输入文件是目录中的STML代码文件。您可以在右键单击上实时预览它,以直接在右侧查看效果。应该注意的是,您只能在此处预览标准H5的组件和页面效果,并且不能预览本机API的功能,因此建议使用真实。为了开发,有必要使用真实的机器安装进行调试,类似于RN Expo。

下载地址:#

安装后,将Mac和手机放在同一网络上。在IDE中扫描QR码,以实时查看真实的机器效果。

可以正常使用和预览系统级API,例如网络和WiFi,并且会有错误提示。开发经验与迷你计划非常相似。

总体而言,整合了开发环境和开发工具,过程相对平稳,并且在整个过程中没有命令行工具可以修改,但是必须根据官方网站文档的指导使用。

1.6摘要

在对5个框架的初步解释之后,您可以看到基本上每个人的开发过程都分为两类。一种是将其直接包装在手机上进行开发和调试。例如,另一个是需要它。通过额外的辅助调试,例如AVM,RN和后者,也支持将软件包直接安装到真实机器上,但该方法仍然不同。

在开发工具方面,每个人都可以基本上将它们用于开发,所有支持功能,并且有些人提供了自己的IDE,并且具有相对较高的集成程度,例如AVM。

2。性能比较。

下面,作者将从性能的角度讨论不同框架的比较。这可能是每个人最关心的。作者写了一篇简单而超长的文章,以进行水平比较。我放在这里的代码。您可以稍后引用它以实现左右和右侧的1,000行图片和文本列表。

rn效应:

影响:

影响:

效果是这里最糟糕的发展经验。我将在稍后的API分析部分中解释:

在AVM下的效果:

代码实现非常简单,并且没有特殊的优化,没有滚动加载,没有交互式事件,并且1,000个数据直接填充了完整的,并且使用了所有官方列表组件。

在通过ADB直接输入设备后的性能,我们使用顶部命令观察应用程序流程:

其中,我们使用开发人员函数,GPU屏幕截图来识别帧数,并且汇编速度由时命令直接计数,所有这些都使用了第一个启动的时间。

例如:

time ns debug android

框架内存CPU使用汇编速度

RN(Expo GO)

300m

78%-116%

0M32.229S

190m

37%-43%

0m21.336s

138m

49%-65%

0M55.549S

147m

19%〜20%

0m27.862s

AVM

6%-10%

0m0.094s

要简要分析,第一件事是内存使用情况,这基本上是上述,RN和最多的,而AVM是最少的。然后是CPU比例。作者不断提取列表以查看CPU使用率。其中,RN最高,但其FPS非常低。这意味着CPU使用率越高,计算越多,但是FPS底部表明没有滞后。更好的性能。

例如,我们只观看RN的一半,但FPS特别高,并且存在明显的滞后。因此,我们可以说RN的性能要比渲染(包括AVM)好得多。 CPU的比例越高,FPS的比例越低,性能就越好。但是,高CPU使用情况也存在问题,即它将消耗更多的功率...

最后,让我们看一下与调试经验有关的汇编时间。在这里,AVM是最快的,基本上是以毫秒为单位的真实机器,而其他机器基本上是几秒钟的,需要运行。当然,EXPO和AVM都有预设,因此它们绝对比没有程序的速度更快。 AVM我不确定为什么这么快。这真的让我感到惊讶,但是有一件事是AVM无法在模拟器上安装,因此我使用了一台真实的机器来评估它,这可能会产生一定的影响。更多性能。

3。它是否支持多末端汇编(包括迷你程序)。

这里的多终端不仅是指iOS和H5,还包括它是否支持国内迷你程序汇编。由于许多公司当前的业务场景需要在不同的应用程序中运行,因此它们是否支持多个目的对我们的国内用户非常重要。作者特别添加了此比较项目。此外,目前还有PC编译公司的支持,因此还有其他平台比较。

框架小程序

,塔罗

- -

- -

AVM

总体调查情况如上图所示。检查的部分是官方网站直接支持编译。十字架意味着官员不支持它,并且不再有成熟的开源解决方案。但是,某些框架是单独编写的,例如RN,有些是一个成熟的开源解决方案。

总体而言,如果您仅开发和iOS应用程序,这五个框架就没有问题。如果您想支持小程序和桌面软件,则需要考虑更多。目前,RN和生态学是最完整的,当然,如果您是主要使用微信小程序并且不考虑的开发人员,那么AVM可能是一个更好的选择。

4。生态状况。

4.1开源生态系统,受欢迎程度

我们将其直接用于比较,因为NPM上没有与AVM的相应软件包,作者将稍后单独列出。

与下载量相比,RN在遥远的领先地位,还不足以看到它。 RN绝对是第一个,更好。从上面的角度来看,它更好,但可能是由用户太少引起的。总和不如RN那样的时间不如一小部分。

让我们再次看一下AVM,因为找不到相应的软件包和下载,让我们看看我们提取的数据。

可以看出,所得数据与上述结果相似,而相同的总份额仅为2021年的16%+5%= 21%,第一个为42%,第二个为RN为38%。可以看出,它逐渐从2019年逐渐上升到2021年,最终在2021年超过RN。

以上是几个主要框架的主要仓库的比较。可以从中看到数据。从语法的角度来看,RN基本上是长子和第二个。从开放的角度来看,RN比率更好。就时间而言,每个人是7岁。我8年前开始这样做,并且更新情况相似。

让我们从搜索引擎的热门单词中进行一些分析。

图片

从结果来看,中国的受欢迎程度相似。与今年相比,中国越来越多的人开始转变。

4.2 API支持,成分丰富度

该部分比较了来自API级别的五个框架的本机功能和组件支持的支持。

作者只是开发了一个列表功能。让我们比较下面每个框架的基本组件数量(包括布局组件)和API功能。

框架组件编号系统API/数字开发经验

RN

34

33

无缝切入

171

104

DART语法具有一定的阈值和适应时间

90

291

支持,VUE,JS,TS开发

31

87

实时调试功能太弱

AVM

31

219

强大的实时调试功能,与JSX兼容的Vue样语法

来源参考:

RN组件:

RN API:

成分:

API:

成分:

API:

成分:

API:

AVM组件:

AVM API:

尽管数据的差异很大,但例如RN API和组件计数较小,但它们都被模块划分。例如,实际上有很多方法可以在单个API下实现许多功能。此处仅列出了数量,但它仅提供一种相对粗糙和初步的学习成本感觉。真的足够吗?它仍然需要真正的复杂应用程序的真正开发才能具有绝对的发言权。

作者认为它在开发体验中是独一无二的。由于DART和TS和JS不同,因此整个UI开发概念与前端之间仍然存在一些概念冲突。使用技术,AVM和RN开发的其他框架实际上还不错。但是,它支持使用各种不同的JS库进行开发,例如VUE,NG等,而AVM支持VUE和语法功能,并且必须使用RN。尽管它也支持不同前端框架的发展,但总体开发经验是最糟糕的。它的实时汇编,功能和布局系统确实很糟糕。作者不建议在这里再次进入陷阱。确实有很少的用户是有原因的。例如,我是一个初学者,直接说服我阅读了他们的布局文档后离开。

此外,查看所有框架,最详细的文档是RN和AVM。但是,RN和本地化级别还不够,国内数据相对较小,文档相对愚蠢,并且很长一段时间没有更新。

五,摘要

尽管作者从不同的角度分析了每个框架的情况,例如入门,开发环境,简单的表现比较,生态状况等。但是,对于这些框架,实际上有很大的研究空间。本文仅客观地记录作者在入门和研究不同框架时的第一次。因此,不可避免的是某些地方不够全面,但基本上反映了这种情况。

从性能的角度来看,AVM的开发经验和汇编速度非常好。尽管这是一个家庭框架,但并不比外国框架差。其次,RN,最后是。

从开发经验的角度来看,RN越舒适。这两个随后是AVM,是因为Dart语法,但需要单独学习,中小型企业的选择,个人开发人员需要考虑。尽管AVM不支持TS和其他语言框架,但仅支持JS语法。最糟糕的是,基本上不可能实时调试,并且API也非常不友好。

总而言之,作者认为2021年最热门的人已经赶上RN。总体而言,当前的大多数选择和国内外用户的份额都被RN分开了。 AVM和其他框架具有自己的优势,但是从用户体验的角度来看,难以入门以及社区状况,国内AVM绝对更适合家庭开发商。毕竟,它们是基于云的集成的本地化,而且体验也很棒。

因此,大型制造商直接去DART没有问题。这并不是太困难了,这部分成本也不是问题。如果其他公司和个人开发人员在国内市场中选择AVM,RN仍然更合适(与此相比,AVM自然支持国内迷你计划,这是一个重要的加点,而RN的文档具有更多的生态学),如果您考虑考虑,改编看起来更合适。

分享