Electron vs PWA:谁才是最后赢家?
嗨,我是你稳定更新、持续输出的勾勾。
今天的内容来自 Kasra 的文章《Electron vs PWA: The Pros And Cons Of Both Approaches》。
这两种技术放在同一维度进行比较略显怪异,不过也可以看看 Kasra 到底得出了什么样的结论。在阅读过程中,这篇文章可以帮助我们继续加深对这两个技术的理解。
Web 页面是非常神奇的,它不受任何公司的操控,每一个开发者都可以在 Web 上开发软件。任何人都可以访问 Web 应用程序,但是对于用户来说,体验可能大不相同。他们可以出现在桌面,或是浏览器,甚至是在网络连接极弱的时候,会出现在任务栏中。
同样,Electron 是一个帮助开发 Web 应用的框架,使用的语言是 HTML,CSS和JavaScript 等等,兼容后就可以在 Windows、Mac 等系统上运行。
PWA ( Progressive Web Apps)为用户提供可靠又简便的应用。这些 Web 应用使用渐进式的 APIs。用户可以在任意时间和地点使用,并且该应用有着增强特性和稳定性。
为了搞清楚哪种跨平台桌面应用是最好,我们还需要了解 Eletron 和 PWA 的优缺点。
Electron 优点
1)使用 CSS,HTML,JS 语言
这是 Electron 最好的一点,这些语言都是很容易学习的,并且使用方便。
2)最佳桌面应用替代方案
Electron 的行为几乎就像你的本地 Web 应用程序,所以理解它们不会有任何困难。虽然传统的 Web 应用程序只能从计算机上下载文件,Electron 除了访问计算机的文件系统之外,还可以读写数据。
3)基于 Chromium 引擎的 UI 呈现
UI 呈现是选择 Electron 的最佳好处之一。使用 Chromium 引擎,可以访问它的所有嵌入特性。
另一个特性是,即使在修改代码之后也不需要重新启动应用程序。这意味着它在简化用户体验的同时就立刻重新加载了。在这种情况下,您不需要外部 Debugger,因为 Chromium 引擎可以检测内存泄漏和其他错误。
4)包含大量功能型的 API
Electron 的各种 API 可以很容易地集成到桌面应用程序中,这节省了开发人员大量的时间。
5)社区支持
在巨大的社区支持的帮助下,你可以重新使用 package 并进一步开发它们,而无需从头开始。大量的 package 可以被使用,它们被设计用来缩短开发过程。
Electron 缺点
1)占用更大的磁盘空间
如上所述,Electron 运行在 Chromium 上,所以要使用一个 Electron App,你必须下载它的 Chromium 版本。
而 Chromium 由大约 2000 万行代码组成,它的大小与您的操作系统差不多。所以为了运行一个应用,你必须在现有的操作系统上安装另一个操作系统。
2)存在代码泄露风险
Electron 中代码被盗的风险相当高,任何人都可以轻易得到你的代码,因为你的代码并没有经过加密,最多也只是做了一下压缩。
PWA 的优点
1)高度可访问性
开发人员认为 PWA 是本地应用程序和 Web 应用程序的融合,因为 PWA 可以随时在线访问。在网络连接较差的情况下,PWA 会使用它在最后一次交互时缓存的数据。因此,即使在互联网关闭时,用户在访问 PWA 时也不会遇到任何问题。
2)开发成本低
由于 PWA 可以同时在多个平台上运行,因此开发的成本明显低于本地 Web 应用程序。
3)便捷的安装步骤
在安装 PWA 时,你不会被跳转到 App Store。此外,这些 Web 应用程序可以直接在手机上下载,安装过程超级快。由于 PWA 驻留在云服务器上,它们只占用您设备上的一小块空间,因此以后不必担心手机容量问题。
4)包含推送通知
推送通知是在移动设备上弹出的通知,以文本信息的形式提醒你一些事件。推送通知可以更新你的应用信息,也可以提醒你即将发生的事件。PWA 用户可以点击推送消息,直接进入 PWA 应用。
PWA 的缺点
1)耗电量大
PWA 是用高级代码编写的,因此智能手机必须竭尽全力准确地翻译代码来保证运行。因此,优先考虑长电池寿命的用户会不愿意考虑 PWA 应用。
2)访问受限
PWA 不能访问设备的一些功能,包括设备的蓝牙连接,NFC等。
Electron 和 PWA 对比
1)可用性
如果设备上有一个 PWA 兼容的浏览器,那么我们可以在任何时候访问 PWA,甚至不必连接到互联网。
而 Electron 不能安装在任何设备上,因为它们是桌面应用程序的高级版本。
2)性能
用户觉得,在加载方面,PWA 比 Electron 具有更好的性能。这在一定程度上是因为大部分 Javascript 的开销被转移到 Service Worker,从而减少了加载时间。
3)占用空间
Electron 应用的大小都大于 50 MB,而大多数 PWA 要小得多,它通常在 2MB 左右。
4)安全性
Electron 是一个封装在本地 Web 应用程序层中的 Web 应用,因此安全性不高,代码保护也必须手工完成。
另一方面,PWA 的安全性更好,因为它完全依赖于 HTTPS,而 HTTPS 是由浏览器端控制的。
5)更新和集成
我们每个人在安装和更新应用程序时都会觉得有些麻烦,而 Electron 也不例外。但是,如果使用 PWA,那么所有的更新都将在服务器端进行,在更新时将会减少很多麻烦。
结论
你发现了,PWA 显然是赢家。
但是,PWA 并不是适用所有业务领域的一体化解决方案。如果你想自由地使用 Node.js 进行开发,你应该选择 Electron 而不是 PWA。
另外,Electron 允许访问存储在操作系统中的所有 API,这意味着 Electron 会以用户模式运行。如果你觉得你的 APP 需要本地应用提供的特性和功能,那么请选择 Electron,但在其他情况下最好使用 PWA。
推荐阅读:
前端人因为 Vue3 的 Ref-sugar 提案打起来了!
点点“赞”和“在看”,保护头发,减少bug。