【Electron教程01】跨平台桌面应用开发介绍

一、 为什么要学 Electron

Electron 是一个跨平台的桌面应用开发框架,用 html css js 的技术开发桌面上面可以安装的软件。
“Electron 又为前端开发者谋得了一份好的差事”。
想起在网路里流传很广的一句话“不要和老夫说什么 C++,Java,老夫行走江湖就靠一把 JS,遇到需求撸起袖子就是干”。

是的 Electron 看上去是在蚕食桌面客户端领域的市场份额。

说起桌面应用, 想必大家使用过的就已经海了去了。什么暴风影音、QQ、skype 之类的,早已不是新鲜事!不过大家有没有了解过如何编写一个桌面应用? 历史上, 我们都有哪些方式去编写桌面应用呢?

实际上,桌面应用的历史并不算久远,不去查找各种资料,仅凭记忆,我能想到的曾经出现过的桌面应用编写语言就有:C++、Delphi、VB、winForm、WPF、swing、awt、QT、flash、Objective-C、Swift...或许还有更多。

学习成本是不是有点高?这么多语言/技术!! 如果你恰好还碰到了一个吹毛求疵的老板或 者PM,他就是那么迫切的希望自己的 app 能够多平台发布(也不管在那些平台上是否有客户),作为程序员的你,肿么办?是勇挑大梁,然后各技术栈学习失败,最终自尽以谢老板?还是果断离开?
当然都不是,够懒的程序员应该寻找更容易实现,又能满足老板需求的解决方案。那么,我们来看看今天的话题,electron 吧!

截止 2019-9-7: electron Github 的 star 已经达到 76万了,那么他的用户量可能已经上 1000万了。还有大家知道的 github 的 atom 编辑器、微软的vscode 编辑器,还有迅雷X以上版本,包括阿里内部的一些软件也是用 electron 开发的。既然这么热,那就一个字:学。

二、 基于 Nodejs 的主流桌面应用开发框架 NW.js 和 和 Electron

NW.js 和 Electron 都可以用前端的知识来开发桌面应用。NW.js 和 Electron 起初是同一个作者开发。后来种种原因分为两个产品。一个命名为 NW.js(英特尔公司提供技术支持)、另一命名为 Electron(Github 公司提供技术支持)。

NW.js和Electron可以用Nodejs中几乎所有的模块。NW.js和Electron不仅可以把html写的 web 页面打包成跨平台可以安装到电脑上面的软件,也可以通过 javascript 访问操作系统原生的 UI 和 Api(控制窗口、添加菜单项目、托盘应用菜单、读写文件、访问剪贴板)。

三、Electron 详细介绍

1. Electron 目前是由谁开发并维护的?

答: Electron 是由 Github 开发维护

2. Electron 是什么?
答:Electron 是一个用 HTML,CSS 和 JavaScript 来构建跨平台桌面应用程序的一个开源库。

3. Electron 把 HTML,CSS 和 JavaScript 组合的程序构建为跨平台桌面应用程序的原理是什么?

答:原理为 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中,并将其打包为 Mac,Windows 和 Linux 系统下的应用来实现这一目的。

4. Electron 何时出现的,为什么会出现?

Electron 于 2013 年作为构建 Atom 的框架而被开发出来。这两个项目在 2014 春季开源。(Atom:为 Github 上可编程的文本编辑器)

一些历史:

2013 年 4 月 Atom Shell 项目启动 。
2014 年 5 月 Atom Shell 被开源 。
2015 年 4 月 Atom Shell 被重命名为 Electron 。
2016 年 5 月 Electron 发布了 v1.0.0 版本 。

5. Electron 当前流行程度?

目前 Electron 已成为开源开发者、初创企业和老牌公司常用的开发工具。

6. Electron 当前由那些人在维护支持?

Electron 当前由 Github 上的一支团队和一群活跃的贡献者维护。 有些贡献者是独立开发者,有些则在用 Electron 构建应用的大型公司里工作。

7. Electron 新版本多久发布一次?
Electron 的版本发布相当频繁。每当 Chromium、Node.js 有重要的 bug 修复,新 API或是版本更新时 Electron 会发布新版本。

一般 Chromium 发行新的稳定版后的一到两周之内,Electron 中 Chromium 的版本会对其进行更新,具体时间根据升级所需的工作量而定。
一般 Node.js 发行新的稳定版一个月后,Electron 中 Node.js 的版本会对其进行更新,具体时间根据升级所需的工作量而定。

8. Electron 的核心理念是什么?
Electron 的核心理念是:保持 Electron 的体积小 和 可持续性开发。
如:

为了保持 Electron 的小巧 (文件体积) 和可持续性开发 (以防依赖库和 API 的泛滥) ,
Electron 限制了所使用的核心项目的数量。

比如 Electron 只用了 Chromium 的渲染库而不是其全部组件。这使得升级 Chromium 更加容易,但也意味着 Electron 缺少了 Google Chrome 里的一些浏览器相关的特性。

添加到 Electron 的新功能应该主要是原生 API。 如果可以的话,一个功能应该尽可能的成为一个 Node.js 模块。

9. Electron 当前的最新版本为多少?

Electron 当前的最新版本为 7.0(当前时间为 2019 年 9月 7 号)

四、 学习前的准备工作

1. 电脑需要安装 nodejs
2. 电脑上面需要安装 git
3. 需要有 Html css js 以及 nodejs 基础

THE END