前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩过Tauri和Electron,最终我选择Flutter

玩过Tauri和Electron,最终我选择Flutter

原创
作者头像
brzhang
修改2023-04-16 17:51:31
5.4K0
修改2023-04-16 17:51:31
举报
文章被收录于专栏:玩转全栈玩转全栈

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

Flutter

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

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 有取之不尽,用之不竭的icon https://www.fluttericon.com/,也就是说,即便你没有重构和美工同学加持,写一个美观的应用也不是什么难事。
  • Flutter 开源,start多达150k,而且Google在维护,且更新非常频繁,这说明Google是把他当重点在培养。

Flutter缺点

  • 初学者可能需要花费时间来学习 Dart 语言和 Flutter 框架,但好在上手难度非常低,24小时就可以看到搞App的那种。
  • 打的包比Tauri要大,因为自身做了一套渲染引擎需要打进去的缘故,但是要比Election要小很多。
  • Flutter 的桌面应用程序开发仍处于实验阶段,可能存在一些稳定性和兼容性问题,但是做一个简单的桌面版本App,必须不在话下呀,可以参考我写的 flutter_chat_box ,https://github.com/bravekingzhang/flutter_chat_box。相信,随着Google巨硬的版本迭代,这些问题很快被解决

Tauri

我用Tauri也做了一个可以和chatGPT聊天的桌面端App,界面风格简洁,可以围观

https://github.com/bravekingzhang/tauri-chat-box

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

Tauri优点

  • Tauri 提供了一种易于使用的方式来构建跨平台的桌面应用程序,可以使用常见的 Web 技术来构建应用程序,这点和election打个平手,可能略好于Flutter,毕竟会JS就可以玩的那种。
  • Tauri 的本地应用程序提供了更好的性能和更好的用户体验,与传统的 Web 应用程序相比,具有更快的加载速度和更好的响应能力,因为本地加载资源码,但仅仅是对比web应用而已,对比Flutter这不算什么优势,作为三个端都趟过坑的人,Flutter的启动速度绝对是最快的。
  • Tauri 的本地应用程序可以借助rust与操作系统进行交互,可以访问操作系统的原生 API,如文件系统、网络和系统通知等。
  • Tauri 后端使用 Rust 语言,具有高效和安全的特点。
  • Tauri github start数量也不低,更新也比较频繁,这点还算挺不错的

Tauri缺点

  • Tauri 的文档和社区支持相对较少,可能需要开发者花费更多的时间来解决问题。
  • Tauri 的跨平台支持可能不如 Flutter 和 Electron 那么广泛。
  • Rust 语言上手难度应该来说比较陡峭,比go会难上很多,主要是所有权等概念会吓到一大片人,不过玩好了,也是想到不错的利器,至少能够编译,就不怕出什么大问题,build出来肯定很稳定。
  • Tauri 在各平台上交互体验可能有较大差别,因为他基于平台自带的 WebView2 内核渲染,这就决定了不同平台可能会有较大差异,而Flutter可能在这点上就完胜,Flutter自己实现UI渲染,因此在多端都可以保持一致的体验。
  • 不支持,移动端!!!,虽然说提出了计划,但是迟迟没看到退出,等的有点心凉了

Electron

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

Electron优点

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

Electron缺点

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

总结

应用场景

Flutter

Tauri

Electron

构建高性能和高保真度的桌面应用程序

✔️

支持移动端和桌面端

✔️

✔️

交互一致性

✔️

✔️

使用常见的 Web 技术构建桌面应用程序

✔️

✔️

需要较好的性能和用户体验,打包轻量

✔️

✔️

快速构建跨平台的桌面应用程序,注重交互一致性,需要广泛的文档和社区支持

✔️

✔️

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flutter
    • Flutter优点
      • Flutter缺点
      • Tauri
        • Tauri优点
          • Tauri缺点
          • Electron
            • Electron优点
              • Electron缺点
              • 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档