德胜云资讯,添加一些关于程序相关的内容,仅供大家学习交流(https://www.wxclwl.com)

网站地图

搜索
德胜云咨询
前端分类 javascript CSS 正则表达式 html 前端框架 typescript Ajax
热门标签:
最新标签:

ElectronElectron 十年的发展史electron替代方案不看后悔,

日期:2023/03/24 07:37作者:王雅娥人气:

导读:大家好,我是Echa。时间过得好快,2013年3月13日Electron 首次面世大众。到现在已经十年零八天了。小编从事IT行业13余载,说短不...

大家好,我是Echa。

时间过得好快,2013年3月13日Electron 首次面世大众。到现在已经十年零八天了。小编从事IT行业13余载,说短不短说长不长。这一路走来也是见证了各类平台框架和开发技术的发展史,从前端(Web 前端-桌面端-手机端(安卓和苹果))到后端,中国科技发展迅速,已经慢慢的离不开这些平台框架和技术支撑。

图片来自 Electron 官网 Blog

若想开发一个兼容多平台的桌面应用,以往常用的技术框架有wxWidgets、GTK、QT等,这些框架受语言限制,且学习成本较高,效率有限。目前一些基于前端技术的hybrid框架很流行,且已经在多个领域得到了广泛的应用和验证,比如利用前端技术+相应的打包工具可开发适配多平台的应用(PC、微信公众号、小程序、Android、IOS等)。Electron就是这样一款框架,为前端技术人员利用web前端技术开发桌面应用带来了可能,开发人员可利用已经掌握的前端技术如htmlcssjavascript,以及结合一些前端技术框架:Vue、Angular、React、webpack,加之浏览器渲染引擎、Electron封装的系统API快速实现一款桌面应用的开发,Electron做了大部分复杂的工作,开发人员只需要专注在核心业务和前端技术本身。同时,通过一定的优化,Electron可以做到很好的体验。

目前有不少知名桌面应用采用Electron开发,如:开发人员熟知的Visual Studio Code、MongoDB桌面版管理工具、Skype桌面版、WhatsApp桌面版、HTTP网络测试工具Postman等。所以前端开发者不用担心技术问题。

知名桌面应用采用Electron开发

今天小编就详细讲解Electron 十年的发展史,希望对大家有所帮助。

全文大纲

Electron 介绍Electron 是怎么来的Electron 优点与不足详解Electron 十年总结

Electron 介绍

官网:

https://www.electronjs.org/

Github:https://github.com/electron/electron

Electron是利用web前端技术进行桌面应用开发的一套框架。

Electron的前身是 atom 编辑器,是在它的基础上实现过来的一套跨平台解决方案。最初被GitHub开发,2013年4月11日以Atom Shell为名起步,2014年5月16日开源,2015年4月17日改名为Electron。

Chromium : 为Electron提供了强大的UI能力,可以不考虑兼容性的情况下,利用强大的Web生态来开发界面。electron本质上就是chromium(chrome开源版本)浏览器,最新的东西都会在chromium测试,所以electron可以体验最新的api,这也是好处之一)

Electron是基于Chromium和Node.js实现的,所以开发人员所需要使用到的前端技术主要包括以下方面:

Html、CSS、JavaScript、ES6前端开发工具Vue、Angular、React等的一种其他网络、缓存、通讯等前端技术

Chromium 多进程架构图

Electron 架构

Electron 官网

Electron 是怎么来的

Atom Shell是作为GitHub Atom编辑器的骨干构建的,该编辑器于2014年4月推出公测版。它是作为当时可用的基于web的桌面框架(node-webkit和Chromium Embedded Framework)的替代品从头开始构建的。它有一个致命的功能:嵌入Node.js和Chromium,为web技术提供强大的桌面运行时。

不到一年,Atom Shell的功能和受欢迎程度开始大幅增长。大公司、初创公司和个人开发者都开始用它构建应用程序(一些早期采用者包括Slack、GitKraken和WebTorrent),该项目被恰当地更名为Electron。

从那时起,Electron就开始奔跑,从未停止过。以下是npmtrends.com提供的随时间推移的每年的下载量:

Electron 每年的下载量

Electron v1于2016年发布,官方承诺提高API稳定性,并提供更好的文档和工具。Electron v2于2018年发布,并引入了语义版本控制,使Electron开发团队人员更容易跟踪发布周期。

到了Electron v6,官方改为常规的12周主要发布节奏,以匹配Chromium的节奏。这一决定改变了该项目的心态,将“拥有最新的Chromium版本”从“必须拥有”变成了优先事项。这减少了升级之间的技术债务,使我们更容易保持Electron的更新和安全。

从那以后,我们一直是一台润滑良好的机器,在每个Chromium稳定版的同一天发布了新的Electron版本。当Chromium在2021将其发布时间表加快到4周时,我们能够耸耸肩,并相应地将发布节奏增加到8周。

我们现在使用的是Electron v23(而且还在不断增加),并且仍然致力于构建跨平台桌面应用程序的最佳运行时。即使近年来JavaScript开发工具蓬勃发展,Electron仍然是桌面应用程序框架领域稳定、久经考验的中坚力量。如今,电子应用程序无处不在:你可以用Visual Studio Code编程,用Figma设计,用Slack通信,用Notion做笔记(以及许多其他用例)。我们为这一成就感到无比自豪,并感谢所有使之成为可能的人。

Electron v23 版本介绍

Electron 优点与不足详解

Electron 优点:

Electron 开发效率高

相较于基于 C++ 库开发桌面软件来说,基于 Electron 开发更容易上手且开发效率更高。

由于 JavaScript 语言是一门解释执行的语言,所以 C++ 语言固有的各种问题都不再是问题。比如:

- C++ 没有垃圾回收机制,开发人员要小心翼翼地控制内存,以免造成内存泄漏;

- C++ 语言特性繁多且复杂,学习难度曲线陡峭,需要针对不同平台进行编译,应用分发困难。 Electron 执行效率高

在执行效率上,如果前端代码写得足够优秀,Electron 应用完全可以做出与 C++ 应用相媲美的用户体验,Visual Studio Code 就是先例。

另外,Node.js 本身也可以很方便地调用 C++ 扩展,Electron 应用内又包含 Node.js 环境,对于一些音视频编解码或图形图像处理需求,可以使用 Node.js 的 C++ 扩展来完成。

无需考虑兼容性问题

在完成 Web 前端开发工作时,开发者需要考虑很多浏览器兼容的问题,比如:用户是否使用了低版本的 IE 浏览器,是否可以在样式表内使用 Flexbox(弹性盒模型)等。这些问题最终会导致前端开发者束手束脚,写出一些丑陋的兼容代码以保证自己的应用能在所有终端表现正常。

但由于 Electron 内置了 Chromium 浏览器,该浏览器对标准支持非常好,甚至支持一些尚未通过的标准,所以基于 Electron 开发应用不会遇到兼容问题。

基于 JavaScript 生态

随着 Web 应用大行其道,Web 前端开发领域的技术生态足够繁荣。Electron 可以使用几乎所有的 Web 前端生态领域及 Node.js 生态领域的组件和技术方案。截至本文发布时,发布到 http://npmjs.com 平台上的模块已经超过 90 万个,覆盖领域广,优秀模块繁多且使用非常简单方便。

Electron 可以使用操作系统接口

Web 前端受限访问的文件系统、系统托盘、系统通知等,在 Electron 技术体系下均有 API 供开发者自由使用。

Electron 不足:

打包后的应用体积巨大

一个小应用打包下来可能就需要几十兆,不过目前磁盘存储已经不是什么大问题,随着网路环境越来越好,磁盘容积也越来越大,这个问题给用户带来的负担越来越不明显,几乎可以忽略。

开发复杂度较大

除需要掌握必要的前端知识外,基于Electron开发仍需要了解跨进程通信的一些知识点,进程上的一些问题往往还是容易给开发者带来一定的困惑,有一定的学习成本,但是通过系统学习还是容易攻克的。

安全性问题

Electron提供给了开发人员足够的便利,同时也有一些具有风险的开关,开发者需要在开发中妥善处理,避免对应用客户带来安全隐患,开发人员需要关注安全问题。

资源消耗较大

底层基于的 Chromium 浏览器一直以来都因资源占用较多被人诟病,目前来看这个问题还没有很好的解决办法,只能依赖 Chromium 团队的优化工作。

版本发布过快

因为是基于Chromium的,所以Electron跟随Chromium的版本发布节奏,版本迭代较快,这可能会导致一些兼容问题,但幸运的是目前Electron的核心功能一直都算是很稳定的。

Electron 十年总结

Electron 通往十年大关的道路是漫长而曲折的。以下是一些关键因素,它们帮助我们运行了一个可持续的大型开源项目。

Electron 官方必须克服的一个挑战是,一旦Electron首次大受欢迎,就要处理该项目的长期方向。作为一个由分布在公司、国家和时区的几十名工程师组成的团队,我们该如何应对?

早期,Electron 官方的维护小组依赖于非正式的协调,这对于较小的项目来说是快速和轻量级的,但不能扩展到更广泛的协作。2019年,官方团队转向了不同工作组有正式职责范围的治理模式。这有助于简化流程,并将部分项目所有权分配给特定的维护人员。如今,Electron 团队每个工作组负责什么?

让Electron发布(发布工作组)升级Chromium和Node.js(升级WG)监督公共API设计(API WG)保持电子安全(安全工作组)运行网站、文档和工具(生态系统工作组)社区和企业外联(外联工作组)社区审核(社区与安全工作组)维护官方的构建基础设施、维护工具和云服务(基础设施工作组)

大约在官方转向治理模式的同时,我们还将Electron的所有权从GitHub转移到了OpenJS基金会。尽管最初的核心团队今天仍在微软工作,但他们只是组成Electron治理的更大合作团队的一部分。

虽然这种模式并不完美,但在全球疫情和持续的宏观经济逆风中,它非常适合我们。展望未来,我们计划修改治理章程,以指导我们度过Electron的第二个十年。

社区

开源的社区部分很难,尤其是当你的外联团队是十几名穿着风衣的工程师,上面写着“社区经理”时。也就是说,作为一个大型开源项目,意味着我们有很多用户,利用他们的能量为Electron建立用户土地生态系统是维持项目健康的关键部分。

官方一直在做什么来发展官方的社区影响力?

建立虚拟社区

2020年,官方推出了社区Discord服务器。官方在Atom的论坛上有一个部分,但决定使用一个更非正式的消息传递平台,以便在维护人员和Electron开发人员之间有一个讨论空间,并提供一般的调试帮助。

2021,官方在@BlackHole1的帮助下建立了Electron China用户组。该团队在中国蓬勃发展的科技领域的Electron用户增长中发挥了重要作用,为他们提供了一个在我们的英语空间之外就想法进行合作和讨论Electron的空间。官方还要感谢cnpm为支持Electron在npm的中国镜像中的夜间发布所做的工作。

参与高知名度的开源程序

自2019年以来,官方每年都在庆祝黑客节。Hacktoberfest是DigitalOcean组织的年度开源庆典,每年官方都会有几十位热情的贡献者希望在开源软件上留下自己的印记。

2020年,官方参与了谷歌文档季的首次迭代,与@bandantonio合作,重新设计了Electron的新用户教程流程。

2022年,官方第一次指导了一名谷歌代码之夏的学生@aryansridhar做了一些很棒的工作来重构Electron Fiddle的核心版本加载逻辑,并将其bundler迁移到webpack。

自动化部署

如今,Electron治理有大约30名活跃的维护人员。官方中只有不到一半的人是全职贡献者,这意味着还有很多工作要做。官方有什么技巧可以让一切顺利进行?我们的铭是计算机很便宜,人的时间很昂贵。以典型的工程师方式,我们开发了一套自动化支持工具,使我们的生活更轻松。

发展历史

2013年4月 Atom Shell 项目启动 。2014年5月 Atom Shell 被开源 。2015年4月 Atom Shell 被重命名为 Electron 。2016年5月 Electron 发布了 v1.0.0 版本 。2016年5月 Electron 构建的应用程序可上架 Mac App Store 。2016年8月 Windows Store 支持 Electron 构建的应用程序 。2018年5月2号Electron 发布的2.0.02018年9月18日Electron 发布的3.0.02018年12月20日Electron 发布的4.0.02019年4月23日Electron 发布的5.0.02019年7月30日Electron 发布的6.0.02019年10月22日Electron 发布的7.0.02020年2月4日Electron 发布的8.0.02020年5月19日Electron 发布的9.0.02020年8月25日Electron 发布的10.0.02020年11月17日Electron 发布的11.0.02021年3月2日Electron 发布的12.0.02021年5月25日Electron 发布的13.0.02021年8月31日Electron 发布的14.0.02021年9月21日Electron 发布的15.0.02021年11月16日Electron 发布的16.0.02022年2月1日Electron 发布的17.0.02022年3月29日Electron 发布的18.0.02022年5月24日Electron 发布的19.0.02022年8月2日Electron 发布的20.0.02022年9月27日Electron 发布的21.0.02022年12月29日Electron 发布的22.0.02023年2月7日Electron 发布的23.0.0

具体版本更新内容请见:

https://www.electronjs.org/blog/electron-23-0

最后

一台电脑,一个键盘,尽情挥洒智慧的人生;几行数字,几个字母,认真编写生活的美好;

一 个灵感,一段程序,推动科技进步,促进社会发展。

创作不易,喜欢的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。

网站地图

Copyright © 2002-2022 香港德胜云网络 版权所有 | 备案号:蜀ICP备2023007363号-5

声明: 本站内容全部来自互联网,非盈利性网站仅供学习交流