玩过Tauri和Electron,最终我选择Flutter进行跨平台应用开发

news2025/7/8 21:51:25

Flutter、Tauri 和 Electron 都是现代桌面应用程序开发的流行选择,每种技术有其独特的优缺点,下面我们就来对它们进行一个全面的技术对比。

一、Flutter

Flutter 是 Google 推出的一款开源的 UI 工具包,用于构建高性能、高保真度的移动、Web 和桌面应用程序。Flutter 使用自己的渲染引擎来绘制 UI,从而提供更快的性能和更好的用户体验。Flutter 还提供了丰富的构建工具、库和插件,使得开发者可以更快速地构建应用程序。

image.png

Flutter框架具有如下的一些特点:

  • Flutter 的渲染引擎可以提供高性能的 UI 渲染,支持 60fps 的动画效果,据说,性能比原生都强。
  • Flutter 多端体验一致性强,因为他有自己的渲染引擎,脱离原生那套UI束缚。
  • Flutter 使用 Dart 语言,具有强类型、高效和易于学习的特点,基本上,你会写JS,这个上手很快。
  • Flutter 支持快速迭代和热重载,使得开发者可以更快速地进行开发,Ctrl+S马上就看到你的变更。
  • Flutter 支持跨平台开发,可以在 Android、iOS、Web 和桌面上运行,你没看错,真正的全平台啊,可谓是一网打尽。
  • Flutter 提供了丰富的 UI 组件和插件,使得开发者可以更快速地构建应用程序。
  • Flutter 社区插件也非常丰富 ,https://pub.dev/,基本上你能想到的所有插件他都有,就是算没有,自己懂Android和iOS开发,封装一个也非常简单,都有套路模版。

同时,作为一个开源的跨平台方案,Flutter也获得了大量的star。

image.png

当然,Flutter也并不是没有缺点,下面就来罗列一下Flutter框架的一些缺点。

  • 初学者需要花费一定时间来学习 Dart 语言和 Flutter 框架,但好在上手难度非常低。
  • 打的包比Tauri要大,因为自身做了一套渲染引擎需要打进去的缘故,但是要比Election要小很多。
  • Flutter 的桌面应用程序开发仍处于实验阶段,可能存在一些稳定性和兼容性问题。

不过,相信随着Google的版本迭代,这些问题很快被解决,Flutter也将成为一款真正意义上横跨pc、mobild和桌面的跨平台解决方案。

二、Tauri

Tauri 是一款用 Rust 编写的桌面应用程序开发框架,它结合了 Web 技术和本地应用程序的优点,可以使用常见的 Web 技术(如 HTML、CSS 和 JavaScript)来构建应用程序,并将其封装在一个本地应用程序中。

image.png
作为一款基于Web技术来构建的跨平台应用方案,Tauri有如下特点:

  • Tauri 提供了一种易于使用的方式来构建跨平台的桌面应用程序,可以使用常见的 Web 技术来构建应用程序,这点和election打个平手,可能略好于Flutter,。
  • Tauri 的本地应用程序提供了更好的性能和更好的用户体验,与传统的 Web 应用程序相比,具有更快的加载速度和更好的响应能力,因为本地加载资源码,但仅仅是对比web应用而已,对比Flutter这不算什么优势。
  • Tauri 的本地应用程序可以借助rust与操作系统进行交互,可以访问操作系统的原生 API,如文件系统、网络和系统通知等。
  • Tauri 后端使用 Rust 语言,具有高效和安全的特点。

目前,Tauri在github也获得了大量的star。

image.png

不过,作为一款跨平台解决方案,Tauri的缺点也是蛮明显的。

  • Tauri 的文档和社区支持相对较少,可能需要开发者花费更多的时间来熟悉开发流程,遇到问题可能花费的时间也更长。
  • Tauri 的跨平台支持可能不如 Flutter 和 Electron 那么广泛。
  • Rust 语言上手难度还是比较大的,如果使用Tauri额外的增加了Rust语言的学习成本。
  • Tauri 在各平台上交互体验可能有较大差别,因为他基于平台自带的 WebView2 内核渲染,这就决定了不同平台可能会有较大差异。
  • 不支持移动端,虽然说提出了开发计划,但是却迟迟没有发布。

image.png

三、Electron

Electron 是一款基于 Chromium 和 Node.js 的桌面应用程序开发框架,可以使用 HTML、CSS 和 JavaScript 来构建跨平台的桌面应用程序。Electron 提供了丰富的构建工具、库和插件,使得开发者可以更快速地构建应用程序。

image.png

Electron有如下的一些特点:

  • Electron 提供了易于使用的方式来构建跨平台的桌面应用程序,可以使用常见的 Web 技术来构建应用程序。
  • Electron 的文档和社区支持非常丰富,可以快速解决问题。
  • Electron 的跨平台支持非常广泛,可以在 Windows、macOS 和 Linux 上运行,很遗憾也没有移动端。
  • Electron 提供了丰富的构建工具、库和插件,使得开发者可以更快速地构建应用程序。

并且,作为目前主流的桌面应用开发方案,Electron也获得了大量的star。

image.png
不过,Electron的缺点也是蛮多的,比如:

  • Electron 的性能可能不如Flutter 和 Tauri 那么好,尤其是在处理大量数据和复杂 UI 的情况下,性能会相对差一些。
  • Electron 使用 JavaScript,可能存在一些安全和性能方面的问题,就说,如果想保护商业机密,保护一些代码实现,这点上可能很难做到,不像tauri,rust实现是打包为二进制的,flutter也可以打包加加密,让别人难以窥探,而election这个不太安全的点背诟病很多。
  • Electron 打包巨大,一个Demo程序就上百M,这个受限于他的实现原理。他打包会把chrome内核一起打进去,也正因为如此,所以Election相对tauri来说,这点又算个优势,保证各个平台交互体验基本一致。
  • Electron 不支持移动端,且没有支持的计划。

image.png

四、总结

下面是我从UI性能、是否支持移动端和桌面端、打包体积和交互一致性等几个方面来对比Flutter、Tauri、Electron,如下表。

应用场景FlutterTauriElectron
构建高性能和高保真度的桌面应用程序✔️
支持移动端和桌面端✔️✔️
交互一致性✔️✔️
使用常见的 Web 技术构建桌面应用程序✔️✔️
需要较好的性能和用户体验,打包轻量✔️✔️
快速构建跨平台的桌面应用程序,注重交互一致性,需要广泛的文档和社区支持✔️✔️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年6月杭州/广州/深圳NPDP产品经理认证找这里

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

从搜索电商,社交电商到兴趣电商如何进化

【搜索电商】需求>联结>信任 淘宝、天猫、京东这些是属于什么电商? 答:这些都是属于搜索电商。 某宝,某东等用户有需求,才能产生主动寻找商品的触点,由第三方担保,产生信任。 试想一下,我…

高逼格的 SQL 写法:行行比较

码农code之路 2023-06-01 08:28 发表于天津 环境准备 需求背景 循环查询 OR 拼接 混查过滤 行行比较 总结 环境准备 数据库版本:MySQL 5.7.20-log 建表 SQL DROP TABLE IF EXISTS t_ware_sale_statistics; CREATE TABLE t_ware_sale_statistics (id bigin…

面向过程 VS 面向对象

学习编程, 基本功是掌握编程语言,但编程的本质是逻辑,所以编程思维的培养也很重要。面向过程和面向对象是两种重要的编程思想,下面讲述一下这两者的区别和优缺点比较。 1. 面向过程 面向过程是一种以事件为中心的编程思想&#…

cmake编译报错

CMake Error :The source.. 此处大概意思是一个文件地址does not match the 另外一个文件地址so used to generate cache. Rerun cmake...解决方法: vscode 快捷键ctrl shift P ,点击第一行的删除cmake 缓存 或者将 build 下的 CMakeCac…

算法百花齐放:探索常见算法的精妙之道

在计算机科学的领域中,算法是一项关键而令人着迷的技术。它们是解决问题、优化效率以及创造智能系统的核心。从简单的排序和搜索任务到复杂的机器学习和深度学习应用,常见算法为我们提供了解决各种挑战的有力工具。在本篇博客中,我们将探索常…

chatgpt赋能python:Python如何过滤某个字母——关于SEO的建议

Python如何过滤某个字母——关于SEO的建议 SEO(搜索引擎优化)是现代网络营销中的一个重要概念。为了让自己的网站在搜索引擎排名中更加靠前,许多管理员和开发人员都在使用Python等编程语言来过滤特定的字母或符号,以优化关键词的…

linux服务器更新yum源,安装 dnf包管理器

进入yum目录 cd /etc/yum.repos.dls 查看 备份 将“CentOS-Base.repo”重命名备份为“CentOS-Base.repo.backup” mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下载yum源并查看 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请…

MAC 安装配置Tomcat

一、安装Tomcat 1、首先到官网下载Tomcat:https://tomcat.apache.org/download-80.cgi 2、解压tomcat文件,可以通过快捷键(commandshiftG)把它放入/Library(资源库中) 二、用终端打开Tomcat 1.在Bin目录下 打开终端 2.授权bin目录下的所有操作:终端…

Gradle Kotlin 规范插件用于模块化结构 - 共享构建逻辑

Gradle Kotlin 规范插件用于模块化结构 - 共享构建逻辑 我们中的许多人都遇到过Groovy的困难,并习惯于将其转换为Kotlin DSL。 然后,作为Android工程师,在完全使用Kotlin编写的项目上工作是纯粹的喜悦。 我们假设采用基于功能的模块化应用程…

PLSQL Developer 14安装

资源 百度网盘: 链接:https://pan.baidu.com/s/1A4DeaKPF7y-0o90nVKFbZA?pwd6udw 提取码:6udw阿里网盘: PLSQL Developer 14破解版 https://www.aliyundrive.com/s/zUdgF98VCE3安装步骤 解压安装包后,获得PLSQL De…

chatgpt赋能python:Python如何访问网页

Python如何访问网页 Python是一种被广泛用于web开发、数据科学和人工智能的编程语言。但是,你知道Python还可以用于访问网页吗?在本文中,我们将介绍Python如何访问网页,帮助您了解Python的这一方面,并掌握它的实际应用…

什么是快捷支付?

快捷支付是一种便捷的支付方式,它允许用户使用预先绑定的银行卡或支付账户进行快速支付,无需重复输入卡号、密码等详细信息。 编辑搜图 请点击输入图片描述(最多18字) 在快捷支付中,用户可以在商家网站、移动应用或支…

详解YOLOv6.2 Repvgg-style 的高效backbone:EfficientRep

论文地址: https://arxiv.org/pdf/2302.00386v1.pdf github: https://github.com/meituan/YOLOv6/releases I. 引言 自从VGG在图像分类任务中取得成功以来,卷积神经网络设计已经引起了学术界和工业界的广泛关注。目前已经提出了大量经典网络,如Inception和Resnet等。这些精心…

【论文阅读笔记】Fast Bilateral Filtering for the Display of High-Dynamic-Range Images

论文地址:https://people.csail.mit.edu/fredo/PUBLI/Siggraph2002/DurandBilateral.pdf 论文小结 本文提出方法的目标是压缩高动态范围图像,使其能够用于显示。它可以在保留细节的同时降低对比度。   基本原理是将图像分为两个尺度:编码大…

软考知识总结

文章目录 一、计算机系统知识2. 总线包括:数据总线,地址总线,控制总线3. 原码 反码 补码 移码的转换4.计算机指令-流水线和吞吐率5. 漏洞扫描系统基本概念6.CISC和RISC7.[海明码计算](https://blog.csdn.net/alzzw/article/details/123402876…

MVCC在Mysql中的运用

MVCC到底是个啥? 定义: 多版本并发控制,字面理解,在并发过程中利用多个版本进行合理控制(反正我就是从字面这么理解),很明显,这个东西是个抽象的概念,事实也是如此。它主要是出现在…

OpenStack部署(二)

OpenStack部署 4. Glance4.1 创建Glance数据库并授权4.2 获得admin凭证4.3 创建glance用户并设置密码4.4 添加 admin 角色到 glance 用户和 service 项目上4.5 创建glance服务实体4.6 创建镜像服务的 API 端点4.7 yum安装Glance服务4.8 初始化镜像服务的数据库4.9 启动镜像服务…

中企出海,数智人力重构企智人效的人才供应体系

本文来自深度围观 中企出海一直是热度话题,综合来看,中企出海除了市场拓展、国际化战略、多元投资的因素之外,还有非常重要的一点是,全球供应链和资源整合。用友网络副总裁张月强总结为:“在产品国际化、区域经营国际…

在探索嵌入式系统世界的道路上选择51单片机

当我是一个初学者时,我发现选择51单片机是一个绝佳的决定。我发现51单片机基于Intel 8051架构,非常适合学习和教育领域的应用。刚好,我总结了一些嵌入式资料放在视频结尾。以下是为什么我认为51单片机是初学者的理想选择的一些原因&#xff1…