沐鸣娱乐


        Electron是目前最适合使用的桌面框架吗?

        Electron是目前最适合使用的桌面框架吗?Electron是目前最适合使用的桌面框架吗?

        如果您正在尝试使用 JavaScript 来构建桌面应用程序,那么您可能至少考虑过使用 Electron。Electron 于 2013 年由 GitHub 为其 Atom 编辑器发布,已被微软、DiscordSlack 等许多大型公司使用。本文旨在客观地概述 Electron 及其优缺点。本文还概述了一些替代方案以及您是否希望使用它们。

        2013 年,GitHub 试图制作一个新的、时尚的编辑器,称为 Atom。他们还想使用Web技术来构建它 。不幸的是,当时并没有那么多使用 Web 技术构建应用程序的好工具 。嵌入浏览器的方法很少  ,而且很多都没有很好地构建。GitHub 决定为此构建自己的工具并将其命名为 Atom-Shell。它发展迅速 ,即使 Atom 受到 VS Code 的重创 。后来改名为Electron,现在也是这样。

        Electron本质上是将ChromiumNode.js打包成一个桌面应用。Chromium是Chrome的动力,Node.js是最流行的服务器端JavaScript引擎。这两个项目都得到了很好的维护,而且很成熟,所以它们都是优化和可靠的工具。

        Electron允许你在前端使用JavaScript,就像一个普通的网站一样 。它还可以让你使用Node.js来访问文件和其他系统相关的操作 。因为Electron允许你使用JavaScript来做任何事情 ,所以它作为制作JavaScript桌面应用的一种方式而变得很流行。

        然而,因为Electron捆绑了整个浏览器和Node.js ,所以它倾向于创建大型应用 。一个简单的Electron应用程序在没有压缩的情况下通常体积约120MB。

        相比之下,另一个流行的跨平台框架Flutter的应用程序只有5MB大小。此外,因为Electron同时运行多个JavaScript实例,所以它消耗大量RAM和CPU。如您所见 ,使用Electron既有优点也有缺点 。

        你应该使用Electron吗?

        优点:

        大社区

        受到 Microsoft、Discord 、Slack 等的信任

        低的学习曲线

        允许使用Web生态系统

        集成了 Node . js

        缺点 :

        大 (~120MB) 安装大小

        使用大量的内存和CPU

        不支持手机

        有点不安全 ,允许用户轻松查看应用程序内部

        无法在 Node.js FFI 之外集成本机代码

        首先,在Electron背后有一个很大的社区,包括多家公司,这意味着有大量的开源工具、教程等等 。你还可以利用Web生态系统的大部分工具和教程。Electron的学习曲线也很低,因为如果你知道JavaScript,你就知道Electron 。另一个优势是Electron直接集成了Node.js,这使得你可以在沙盒之外使用JavaScript的全部功能 。

        然而,这些优点也有一些缺点。首先,Electron 既沉重又缓慢。Electron 应用程序的基本大小约为 120MB,并且占用大量 RAM 和 CPU,Electron的RAM消耗量可高达数百兆字节。

        Electron 的另一个最大缺点是它没有任何移动支持 。您可以将 Electron 应用程序部署到 Mac、Windows 和 Linux(不包括 PureOS 等一些发行版) ,但不能部署到 ioses 或 androids 。对此有一些解决方案,例如使用 Ionic,但其中许多解决方案需要更改大量代码和工具 。

        另外,如果你有一个注重安全的应用程序,Electron可能不是你最好的选择。Electron允许用户通过开发者工具和ASAR源文件轻松访问源代码 。当然,同样的事情也可以用在Web应用程序上,但一些桌面框架,如Tauri,使访问源代码变得更加困难 。

        最后,如果你在 Electron 中尝试使用其他语言来替代 Node.js ,你会遇到一些麻烦。您可以使用其他语言,但只能通过 WebAssembly 或 Node.js FFI,这可能很难设置并降低性能。

        正如你所看到的 ,Electron在很多方面都很好,但在其他方面却不那么好。总的来说 ,如果你想在任何地方使用JavaScript ,并且不太关心性能或安全问题 ,Electron是一个相当不错的选择。然而 ,如果你有任何性能方面的考虑 ,需要移动支持,或者想要最佳的安全性,你可能不会想使用Electron  。

        Electron的替代品

        Tauri

        Electron 和 Tauri 之间有两个主要区别。

        首先是 Tauri 使用操作系统内置的浏览器,这大大减少了应用程序的大小并可以提高其性能 。

        第二个是 Tauri 的后端是用 Rust 而不是 Node.js 构建的 。这使得直接使用 Rust 成为可能 ,而无需求助于 Node.js FFI 或 WASM。这也使 Tauri 更快,内存效率更高。Tauri 应用程序可以小到几兆字节 ,而且它们的内存使用量通常不到 Electron 应用程序的一半 。

        Tauri也可以更安全,因为它混淆了源代码,并在生产中禁用了开发者工具  。Node.js默认不包括在Tauri中,但你可以添加它 。但Tauri仍有缺点 。第一个问题是 ,由于Tauri并不总是使用Chromium ,你必须支持多种浏览器。

        另一个缺点是,Tauri比较新,没有那么大的社区。如果你愿意尝试一项新技术,Tauri是一个很好的选择。

        优点:

        应用程序更小 ,资源占用更少

        更安全

        与 Rust 集成

        缺点:

        部分用户不会使用 Chrome

        较小的社区

        Progressive Web App(PWA

        渐进式Web应用程序或PWAs是被大多数浏览器原生支持的逐步增强的Web应用程序。

        浏览器可以在您访问其网站时检测 PWA 并显示安装它们的提示  ,而不是打包到可安装文件中  。您还可以从 Microsoft App Store 和 Google Play 等应用商店安装 PWA。

        从浏览器中安装是可行的 ,因为PWA本质上是多了一些功能的网站 。这意味着用户可以使用网站的基本功能,如果他们想要更多,他们可以安装PWA。这就是为什么它们会逐步增强 。

        创建PWA有许多优点 。首先,它们很小,由于PWA和你的网站资源一样大 ,你可以制作小到几百KB的完整应用程序。

        另一个优点是,更新PWA和更新网站一样简单。你不需要做一个自动更新器 ,而只需配置缓存软件,在有更新的时候更新缓存。PWA也很容易分发到许多不同的平台,包括所有主要的移动和桌面平台。

        PWA 也有一些缺点。

        首先 ,他们对原生 API 的访问权限有限,并且浏览器对这些 API 的支持可能会受到限制。其次 ,Firefox 并不完全支持 PWA。

        最后 ,PWA目前不能以许多常见的形式发布,尽管在允许PWA被打包成MSIX包等格式方面有很大的进展。如果你想使用未来的Web应用程序 ,想要轻松部署和更新,或者想要移动支持,PWA是一个很好的选择。

        优点:

        可直接从网站提示安装

        通过应用商店轻松分发

        也能自动作为网站使用

        非常小(可以小于1MB)

        易于更新

        支持桌面和移动设备

        缺点:

        有限的原生 API 访问

        Firefox 不支持 PWA

        难以作为基于文件的安装程序分发

        总结

        在某些情况下 ,Electron能会有所帮助。然而 ,它并不总是最好的工具。这一切都取决于您的应用程序的需求和重点。

        如果您更喜欢与拥有更大社区的项目合作 ,Electron 是一个不错的选择。如果您使用 Rust 并想要快速的桌面 Web 应用程序,Tauri 非常适合。最后,如果你想快速进入市场 、移动支持,并且不想维护你的应用程序的两个版本 ,PWA 可能会很好地工作 。

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图