【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 基礎