1. Electron 发展现状

2020年5月SpaceX发射的Dragon 2载人航天飞船,使用了Chromium和JavaScript来构建用户界面。消息一出,立即引起了技术界的热烈关注,一个Web框架被使用到对效率和可靠性要求极高的航天应用场景,一方面反映了SpaceX在技术领域的敢于突破传统的实干精神,同时也把两个跨领域的技术:桌面客户端和Web技术栈的完美结合案例带入了大众的视野。

Electron作为一个优秀的PC端应用开发框架 ,主要应用在开发Windows/PC的桌面应用。本人在2017年公司开始做一个PC端的游戏控制终端,类似于我们现在看到的自助唱K终端、麦当劳自助点餐和地铁站自助购票等终端,一方面,需要像传统WEB项目一样快频繁迭代UI界面和请求网络资源,另一方面需要使用设备端的原生资源,比如外部进程,串口/USB设备等。在这种需求的前提下,我们没有进行太多的甄选而选择了NW.js(和Electron 组成架构几乎一样), 而2019年新开了一个PC端的项目,我们又选择了electron来开发。其实NWJS和Electron的区别不大,这里主要介绍Electron相关的知识。

2 PC客户端的横向比较

时间倒回到2015年以前,如果大家选择桌面端的开发框架,会在MFC,Qt和C#等框架中选择。这三者都有比较完善的功能类库,比如消息机制、组件钩子等,技术栈相对贴近操作系统底层,开发者需要了解Windows API 和 Linux系统的一些知识,入门的门槛也相对较高。比如Websocket这些在HTTP协议中非常成熟的应用协议,在这些框架中需要额外调用动态库或者插件来实现,架构的设计、代码的层次远比Web技术栈更加复杂

当然这里不是完全的摒弃这三个UI框架的价值,在一些计算密集型场景,比如音视频播放、图像处理,或者说工业控制领域,如果现成已经有技术积累是在这几个框架的基础之上,那么继续采用MFC/QT/C#框架会是更好的选择。

在小团队或者应用场景相对简单的背景下,采用Electron会是一个好的选择。

3 Electron的框架介绍

这个公式阐明了Electron的功能组成:

  1. Chromium: 作为google推出的浏览器内核,大规模应用在了Chrome浏览器、360浏览器、QQ浏览器、微信内嵌网页等应用场景。
  1. NodeJS: 把JavaScript技术栈延伸到了服务器和操作系统(文件操作、异步读写、进程/线程管理等)领域,让前端技术的可应用场景进一步丰富和下沉。
  1. Native API: 对Window、Linux和IOS的跨平台做了兼容处理,把窗口操作、弹窗消息、操作系统信息等API封装了一遍, 使得Web界面和Native功能完美结合到一起。

4. Electron的应用场景

A. 文件管理

比如开源的PicGo,一个图片管理软禁,github Star数已经12K+,就是集成了本地图片管理、云端上传等功能,类似于一个本地/远程同步的电子相册。

技术栈是Vue+Electron

阿里云OSS 的PC客户端也是基于Electron,前端框架是angular。

B. 前端IDE

微软推出的 visual code是基于Electron,Electron的强大之处在于集成了很多前端的插件,比如代码规范、找回历史代码、代码比对、注释信息格式、甚至取变量名也有插件。

而且媲美notepad++的启动速度,以及永远免费的使用权限,受到了大批开发者,尤其是前端开发者的青睐。

C. 触屏客户端

国内第一家VR游戏自助终端-肉丸VR(现在改名为"弥天"VR)就是本人主导开发的,集成了游戏界面列表、玩家自助选择游戏、自助付费、体验游戏、商户运维等功能,最大的有特色就是界面的更新和迭代采用的是web前端技术,游戏进程的管理采用的是native模块,让客户端具有了前端界面开发的高效,以及native技术在操作系统层面的丰富资源。关于这其中的详细架构,在其它文章中国再详细阐述。

像国内现在随处可见的自助K歌、自助售货机等智能终端,它们的UI也有很多采用的是chromium + web + native的架构,与Electron的技术栈是异曲同工的。

后续的章节会继续介绍Electron的详细技术点,以及实际开发中会遇到的常见问题,请大家持续关注。

Electron介绍(一)相关推荐

  1. electron 介绍

    地址:https://github.com/electron/electron electron 是一个跨平台的桌面应用开发框架,用HTML css js 的技术开发桌面上面可以安装的软件,可以让前端 ...

  2. Electron教程 (一)Electron介绍

    Electron介绍 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js合并到 ...

  3. Electron介绍

    1 Electron 快速入门 简介 Electron 可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用.你可以把它看作是专注于桌面应用而不是 web 服务器的,io.j ...

  4. 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld

    场景 Electron介绍 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Electron通过将Chromium和Node.js ...

  5. Electron教程1_Electron介绍

    Electron介绍 Electron 是由Github开发的,用HTML , CSS 和JavaScript 来构建的跨平台桌面应用程序的一个开源库. Electron 通过将Chromium 和N ...

  6. electron 安装import_Electron: 从零开始写一个记事本app

    Electron介绍 简单来说,Electron就是可以让你用Javascript.HTML.CSS来编写运行于Windows.macOS.Linux系统之上的桌面应用的库.本文的目的是通过使用Ele ...

  7. [Electron]仿写一个课堂随机点名小项目

    自从前几个月下了抖音,无聊闲暇时就打会打开抖音,因为打开它有种莫名其妙打开了全世界的感觉... 无意中看到这个小视频:随机点名 于是仿写了一个课堂点名小项目,算是对Electron的一个简单的认识,有 ...

  8. 第八节 Electron主进程和渲染进程之间的通信

    系列文章目录 第一节 electron 介绍 第二节 创建electron项目并启动 第三节 Electron运行流程 . 主进程渲染进程并使用nodejs 第四节 Electron 调用H5事件结合 ...

  9. electron开发计算器

    electron完成一个简易的桌面计算器 效果: 目录 什么是electron,它能做什么 使用electron展示一个桌面应用程序的界面(简单的窗口展示) electron中菜单的添加和配置 ele ...

  10. 使用Squirrel创建基于Electron开发的Windows 应用安装包

    我们把自己开发的Electron应用发布之前,需要把app打包成简单的安装包,这样app更容易被获取,以此来发布我们的应用.我们可以参考Wix或其他的安装程序,但是对于Electron应用更好的打包程 ...

最新文章

  1. VMware助青年时报构建安全高效应用平台
  2. 高职院校计算机基础课程要求,浅谈高职院校计算机的应用基础课程的改革.doc...
  3. ArcGIS 10.7如何获取矢量多边形所有折点的坐标(平面坐标和经纬度坐标)?
  4. 明源云:与阿里云生态共同成长
  5. Python资源大全 屌炸Python库
  6. 精通android学习笔记(一)---广播
  7. ValueError: could not broadcast input array from shape (*,*) into shape (*)
  8. 题解 P1006 传纸条
  9. 64.Linux/Unix 系统编程手册(下) -- 伪终端
  10. 一般的java项目后台都有什么技术?
  11. Windows 下 Spark+Hadoop+Scala 安装
  12. 天下武功,唯创不破:Atlassian产品中文版蓄力以待
  13. POWERDNS + LVS + LAMP + NFS + MYSQL主从读写分离
  14. GPU驱动、CUDA和cuDNN之间的版本匹配与下载
  15. 样本的方差的均值等于总体的方差
  16. HTTP中的常用方法
  17. 8通道同步并行数据采集PCI模块的设计
  18. 一句话完美去除plt保存图像的白边 (plt.savefig去白边, 坐标值和轴)
  19. sql server查询不显示结果_仅凭网上查询结果显示邮件由行政机关签收,能证明行政机关一定收到了当事人的申请吗?...
  20. 人工智能-一种现代的方法 全文总览

热门文章

  1. CCS以及DSP入门帖
  2. 网络工程制图论文计算机,计算机工程制图教学的课业评价的论文
  3. canvas学习(十):font字体设置
  4. Web接入QQ登陆简单入门操作
  5. MapGuide open source开发系列教程四: 体系结构(转贴)
  6. 【设计模式】工厂模式
  7. CG资源网 - Maya教程
  8. cisco fabricpath 功能介绍
  9. 提取swf素材_SWF素材采集软件(SWF Decompiler Magic)V5.2.2.21 免费版
  10. onenote2019导入_将OneNote 2007笔记本导入Evernote