正如 Electron 官方所说“如果你可以建一个网站,你就可以建一个桌面应用程序”。

作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和 Node.js 之上的 —— 二位分工明确,一个负责界面,一个负责背后的逻辑,构成了一个成本低廉却十分高效的优秀“集成框架”

如果用一张图来直观诠释 Electron 的强大之处,就是下面这样。

但是,不同系统间还是会有很大的差异,需要相应地做一些额外处理,使得打包出的应用在不同系统下都能正常运转。但相比于 80% 都能完全复用的代码,这些成本几乎可以忽略不计。

所以,对 Web 前端开发者来说,用 Electron 开发多平台客户端的成本非常低

而且,Electron 是基于 Node.js 的,这就意味着,Node 这个大生态下的模块,Electron 都可以用。同时,跨平台也让 Electron 可同时开发 Web 应用和桌面应用,无论是 UI,还是代码,很多资源都可以共享,大幅减少了开发者的工作量。

作为目前非常热门的技术,Electron 在 GitHub 上已经有 8W+ star 了,很多应用都是用 Electron 开发的,比如字节跳动的飞书、Slack、VS Code、Atom、Skype、WhatsApp、支付宝小程序 IDE(蚂蚁开发者工具)等。

与此同时,包括蚂蚁金服、小米、华为、GitHub、微软在内的很多大厂都在使用 Electron。因此,学好 Electron 是你日后跳槽加薪的加分项,毕竟,大厂都在用。

如何高效使用 Electron?

用 Electron 写一个简单的桌面端应用并不难,有一定 JavaScript 基础的话,可能只要半小时。但要做一个项目,就没那么容易了:

首先,Electron涉及的技术栈比较多,不仅需要了解客户端知识,在客户端中使用Node.js、集成C++、Rust等三方库,还会涉及到多进程概念等等,对于基础薄弱的前端工程师不太友好。

而且在实际开发项目中推行 Electron,工程化建设流程上有很多技术关键点和坑,需要丰富的实战经验来化解。

这些问题,我也曾遇到过。都知道光理论是不够的,还是要落地,是了解其在工程化建设方面具体应该如何推进

但这种实践不是谁都愿意共享的,如今的各大厂里,美团大象应该是比较早的一批用 Electron 做大型项目的团队,这个团队的负责人「邓耀龙」,我之前听过他在 Qcon (全球软件开发大会)的分享,当时就很受启发。

后来听说他开了个《Electron 开发实战》视频课,我第一时间就订阅了,毕竟这种内部经验难得能公开。先分享一张邓耀龙总结的「Electron 核心知识图谱」,从全局了解下 Electron 要掌握什么。

跟着学下来,收获完全超出预期。开始先通过一个番茄钟小应用,带你快速入门;然后从 0 到 1,带你完整搭建了一个桌面远程控制项目,并在此过程中把 WebRTC 三大模块讲透。

更让我觉得可贵的是,邓耀龙不仅是技术高手,还非常具有分享精神,慷慨的把 Electron 工程化建设、实战中的问题和解决方案都分享出来了,指出有哪些技术关键点,和需要避开的坑,很多知识点都要反复看、反复体会才能吃透,真的让人醍醐灌顶。

跟着高手学,是较快提升自己的方式,马上要涨价到 129 了,现在只需要 69 拿下,如果你是新人,只要 59.9,别错过了。

新人首单 ¥59.9  ,仅限「前 50 人」

即将涨价至 ¥129,相当于 5 折

关于邓耀龙

邓耀龙,美团高级前端工程师。他所负责的美团大象,早在 2016 年就开始用 Electron 构建桌面端了,从 0 开始搭建了 Electorn 更新、崩溃治理、异常监控等多个基础服务。

除业务支撑外,他还负责公司内的 Electron 桌面应用基础建设,致力于提升桌面端开发的交付效率和交付质量。凭借累计的实战经验,他帮很多兄弟团队实现了 Electron 技术从无到有的落地过程。

我为什么推荐这个 Electron 课。

相比市面上的其他 Electron 资料,邓耀龙是以 Web 前端工程师的视角设计这门课的。也因此,更贴合真实开发,主要有 2 个吸引我的点:

1. 偏实战,让你在项目中熟悉 Electron 的技术特点并感受其乐趣。

2. 重工程化,为你梳理在工作中推行 Electron 工程化的建设思路,讲述真实项目中遇到的坑和具体的解决方案。

所以,课程并不仅仅局限于 Electron 本身,更多讲解与其相关的工程化建设流程,侧重于提升你的整体开发能力。带你掌握这些问题的最佳解决方式,触类旁通

再简单介绍一下内容结构

第一部分为基础篇,介绍 Electron 并深挖其原理,与 Web 开发做对比,针对不同之处介绍 Electron 开发。让你在实战中巩固基础,并带你写出一个 Demo。

第二部分为项目实战篇,带你从 0 开始,完成一个桌面控制软件——这是一个结合 Electron、Node.js 和 WebRTC 技术的综合项目。

第三部分为工程篇,这部分他逐步完善实战篇的项目,讲解在真实项目中做 Electron 应用的流程、工程化建设的关键点和实践技巧,帮你在业务中顺利落地。

类似的干货有很多,具体可以看看目录:

我们常说“不积跬步,无以至千里”,这句话中的“跬步”,我把它定义为:做成一件事。我们总会做很多事,但大多数时候,能真正得到提升的是“把事做成”。

成事的目标不分大小。它可以很小,比如学完两节课;也可以很大,比如用 2 个月时间搞懂 Electron 工程化建设的核心方法。最重要的是,一旦定好目标,就要竭尽全力把事做成。

申请了专属优惠:

新人首单 ¥59.9  ,仅限「前 50 人」

即将涨价至 ¥129,相当于 5 折

如果你也想 Electron 真正为你所用,成为手中的利器,千万不要错过它。

点击阅读原文

新人首单 ¥59.9,即将涨价至 129。

如何利用 Electron 把网页变成桌面程序相关推荐

  1. Nativefier 网页转桌面程序 app

    Nativefier 网页转桌面程序 Nativefier简介 Nativefier是一个命令行工具,仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序,应用程序通过Electron打包成系统可 ...

  2. 利用Register protocol实现网页调用桌面程序(类似迅雷、QQ等)

    前言 我们经常看到 tencent://.. thunder://     这两种开头的网址,往往觉得很奇怪,很想弄懂其中的原理,是如何实现的,我查找了相关的 资料,终于找到了,跟大家分享下. 原理篇 ...

  3. 为Electron 打包后的桌面程序添加自定义向导

    Electron打包 简介 内容 创建package.json 下载打包依赖 添加打包配置----在srcripts下面添加build(此处添加自定义安装向导向导) 配置信息说明 Boolean St ...

  4. 如何利用C#编写网页投票器程序 如何使用代理来投票 代理IP来投票

    一.前言 看个图,了解下投票的过程. 提交投票信息 投票页 ――――――――>投票信息处理页 反馈投票结果 (请求页)<―――――――(响应页) 一般情况下,填写投票信息,然后点提交按钮发 ...

  5. 利用C#编写网页投票器程序

    一.前言 看个图,了解下投票的过程. 提交投票信息 投票页 ――――――――>投票信息处理页 反馈投票结果 (请求页)<―――――――(响应页) 一般情况下,填写投票信息,然后点提交按钮发 ...

  6. 利用线程下载网页中的程序并另存到本地

    前台页面要输入下载地址和另存路径 private void BtnDown_Click(object sender, System.EventArgs e){//开始线程下载文件 DownloadCl ...

  7. web网页浏览器唤起wpf,winform exe桌面程序,并跳转到指定页面

    背景案例 我们看到网页上打开百度网盘,下载的时候会通过浏览器唤起百度网盘桌面端,并进入到指定页面,我们要做的,就是达到类似的效果 实现流程 1.写注册表 在桌面软件首次启动的时候,像注册表中写入程序的 ...

  8. Electron - 创建跨平台的桌面客户的应用程序

    Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序.它是基于io.js 和 Chromium 开源项目,并用于在 ...

  9. electron 桌面程序_如何使用Electron使用JavaScript构建您的第一个桌面应用程序

    electron 桌面程序 by Carol-Theodor Pelu 通过Carol-Theodor Pelu 如何使用Electron使用JavaScript构建您的第一个桌面应用程序 (How ...

最新文章

  1. Visual Paradigm 教程[UML]:如何使用刻板印象和标记值?(上)
  2. 关于python的一些好的书籍推荐-python官方推荐30本面向初学者的书籍!你看过几本?...
  3. pythonurllib模块-Python urllib模块与urlopen()函数解析
  4. Firefox无法启动,提示Profile is yet in use by another Firefox
  5. windows10下安装pytorch并导入pycharm
  6. linux系统下压缩文件,Linux系统下文件的压缩.打包与解压
  7. android 图片分析,Android图片处理实例分析
  8. 腾讯微博——点击按钮自动加关注代码
  9. Java中的LinkedHashSet
  10. java随机数种子_使用种子的Java随机数
  11. 安装解锁网易云音乐 unblockneteasemusic 三种方法
  12. POJ3345 Bribing FIPA(树形DP)
  13. postman不跨域 本地开发跨域_为什么postman调接口不会跨域而浏览器会
  14. 网络爬虫设计中需要注意的几个问题
  15. android 沉浸式按钮,android – 如何完全退出沉浸式全屏模式?
  16. xamarin学习笔记A19(安卓AIDL)
  17. 苹果手机升级13无法开机_苹果手机更新时突然断电,手机无法开机,为什么?...
  18. 844. 走迷宫 + BFS
  19. 【论文阅读】——Spons Shields: Practical Isolation for Trusted Execution
  20. IDEA如何从本地文件导入jar包

热门文章

  1. 家庭娱乐用计算机,普通电脑轻松变身家庭娱乐影音共享中心
  2. MC6630: [ VI ] >热插拔摄像头如何处理
  3. 保定学院计算机专业录取分数线,2021年保定学院各省各专业最低投档录取分数线统计(文科 理科)...
  4. 汽车营销与保险【2】
  5. Python爬取网站图片(爬虫入门demo)
  6. 算法导论、数据结构、设计模式、代码整洁之道、大话设计模式、程序员修炼之道、编译原理、编程之美、阿里巴巴java开发手册等电子书合集
  7. Spring 依赖注入详解
  8. java文本框光标后添加图片_由编辑器从光标处插入图片(失去焦点后仍然可以在原位置插入)实现的富文本编辑器...
  9. Activity生命周期详解
  10. 选址问题matlab,MATLAB 选址问题.ppt