Electron是利用web前端技术进行桌面应用开发的一套框架。
若想开发一个兼容多平台的桌面应用,以往常用的技术框架有wxWidgets、GTK、QT等,这些框架受语言限制,且学习成本较高,效率有限。目前一些基于前端技术的hybrid框架很流行,且已经在多个领域得到了广泛的应用和验证,比如利用前端技术+相应的打包工具可开发适配多平台的应用(PC、微信公众号、小程序、Android、IOS等)。Electron就是这样一款框架,为前端技术人员利用web前端技术开发桌面应用带来了可能,开发人员可利用已经掌握的前端技术如Html、CSS、JavaScript,以及结合一些前端技术框架:Vue、Angular、React、webpack,加之浏览器渲染引擎、Electron封装的系统API快速实现一款桌面应用的开发,Electron做了大部分复杂的工作,开发人员只需要专注在核心业务和前端技术本身。同时,通过一定的优化,Electron可以做到很好的体验。
目前有不少知名桌面应用采用Electron开发,如:开发人员熟知的Visual Studio Code、MongoDB桌面版管理工具、Skype桌面版、WhatsApp桌面版、HTTP网络测试工具Postman等。所以前端开发者不用担心案例问题。
Electron是基于Chromium和Node.js实现的,所以开发人员所需要使用到的前端技术主要包括以下方面:
1、Html、CSS、JavaScript、ES6
2、前端开发工具Vue、Angular、React等的一种
3、其他网络、缓存、通讯等前端技术
当然Electron也有不足之处,主要是:
1.打包体积大
一个小应用打包下来可能就需要几十兆,不过目前磁盘存储已经不是什么大问题,随着网路环境越来越好,磁盘容积也越来越大,这个问题给用户带来的负担越来越不明显,几乎可以忽略。
2.开发具有一定的复杂度
除需要掌握必要的前端知识外,基于Electron开发仍需要了解跨进程通信的一些知识点,进程上的一些问题往往还是容易给开发者带来一定的困惑,有一定的学习成本,但是通过系统学习还是容易攻克的。
3.版本更新快
因为是基于Chromium的,所以Electron跟随Chromium的版本发布节奏,版本迭代较快,这可能会导致一些兼容问题,但幸运的是目前Electron的核心功能一直都算是很稳定的。
4.安全问题
Electron提供给了开发人员足够的便利,同时也有一些具有风险的开关,开发者需要在开发中妥善处理,避免对应用客户带来安全隐患,开发人员需要关注安全问题。
一直以来都想找一款编程语言或者一门技术尝试桌面应用编程,来实现我的“全栈”梦 ^_^。不论是学些C#还是C++或是其他语言都觉得成本太高,平时也抽不出那么多时间去学习和进阶。经过一通调研,最终还是觉得采用Electron来开发桌面应用,利用现在已经掌握的前端技术,快速的开发和落地想做的桌面应用,一定是个不错的选择,期待接下来的学习历程,并想通过自己的学习总结梳理一些实用的笔记,为自己或他人提供一定方便。