相关文章推荐

大家好,我是 世奇 ,笔名 ConardLi

使用 Electron 开发客户端程序已经有一段时间了,整体感觉还是非常不错的,其中也遇到了一些坑点,本文是从【运行原理】到【实际应用】对 Electron 进行一次系统性的总结。【多图,长文预警~】

本文所有实例代码均在我的 github electron-react 上,结合代码阅读文章效果更佳。另外 electron-react 还可作为使用 Electron + React + Mobx + Webpack 技术栈的脚手架工程。

一、桌面应用程序

桌面应用程序,又称为 GUI 程序(Graphical User Interface),但是和 GUI 程序也有一些区别。桌面应用程序 将 GUI 程序从GUI 具体为“桌面”,使冷冰冰的像块木头一样的电脑概念更具有 人性化,更生动和富有活力。

我们电脑上使用的各种客户端程序都属于桌面应用程序,近年来 WEB 和移动端的兴起让桌面程序渐渐暗淡,但是在某些日常功能或者行业应用中桌面应用程序仍然是必不可少的。

传统的桌面应用开发方式,一般是下面两种:

1.1 原生开发

直接将语言编译成可执行文件,直接调用系统 API ,完成UI绘制等。这类开发技术,有着较高的运行效率,但一般来说,开发速度较慢,技术要求较高,例如:

  • 使用 C++ / MFC 开发 Windows 应用
  • 使用 Objective-C 开发 MAC 应用
  • 1.2 托管平台

    一开始就有本地开发和UI开发。一次编译后,得到中间文件,通过平台或虚机完成二次加载编译或解释运行。运行效率低于原生编译,但平台优化后,其效率也是比较可观的。就开发速度方面,比原生编译技术要快一些。例如:

  • 使用 C# / .NET Framework (只能开发 Windows应用 )
  • Java / Swing
  • 不过,上面两种对前端开发人员太不友好了,基本是前端人员不会涉及的领域,但是在这个【大前端😅】的时代,前端开发者正在想方设法涉足各个领域,使用 WEB 技术开发客户端的方式横空出世。

    1.3 WEB开发

    使用 WEB 技术进行开发,利用浏览器引擎完成 UI 渲染,利用 Node.js 实现服务器端 JS 编程并可以调用系统 API ,可以把它想像成一个套了一个客户端外壳的 WEB 应用。

    在界面上, WEB 的强大生态为 UI 带来了无限可能,并且开发、维护成本相对较低,有 WEB 开发经验的前端开发者很容易上手进行开发。

    本文就来着重介绍使用 WEB 技术开发客户端程序的技术之一【 electron

    二、Electron

    Electron 是由 Github 开发,用 HTML,CSS JavaScript 来构建跨平台桌面应用程序的一个开源库。 Electron 通过将 Chromium Node.js 合并到同一个运行时环境中,并将其打包为 Mac,Windows Linux 系统下的应用来实现这一目的。

    2.1 使用Electron开发的理由:

     
    推荐文章