【Electron教程01】跨平臺桌面應(yīng)用開發(fā)介紹
一、 為什么要學(xué) Electron
Electron 是一個跨平臺的桌面應(yīng)用開發(fā)框架,用 html css js 的技術(shù)開發(fā)桌面上面可以安裝的軟件。
“Electron 又為前端開發(fā)者謀得了一份好的差事”。
想起在網(wǎng)路里流傳很廣的一句話“不要和老夫說什么 C++,Java,老夫行走江湖就靠一把 JS,遇到需求擼起袖子就是干”。
是的 Electron 看上去是在蠶食桌面客戶端領(lǐng)域的市場份額。
說起桌面應(yīng)用, 想必大家使用過的就已經(jīng)海了去了。什么暴風(fēng)影音、QQ、skype 之類的,早已不是新鮮事!不過大家有沒有了解過如何編寫一個桌面應(yīng)用? 歷史上, 我們都有哪些方式去編寫桌面應(yīng)用呢?
實際上,桌面應(yīng)用的歷史并不算久遠,不去查找各種資料,僅憑記憶,我能想到的曾經(jīng)出現(xiàn)過的桌面應(yīng)用編寫語言就有:C++、Delphi、VB、winForm、WPF、swing、awt、QT、flash、Objective-C、Swift...或許還有更多。
學(xué)習(xí)成本是不是有點高?這么多語言/技術(shù)!! 如果你恰好還碰到了一個吹毛求疵的老板或 者PM,他就是那么迫切的希望自己的 app 能夠多平臺發(fā)布(也不管在那些平臺上是否有客戶),作為程序員的你,腫么辦?是勇挑大梁,然后各技術(shù)棧學(xué)習(xí)失敗,最終自盡以謝老板?還是果斷離開?
當(dāng)然都不是,夠懶的程序員應(yīng)該尋找更容易實現(xiàn),又能滿足老板需求的解決方案。那么,我們來看看今天的話題,electron 吧!
截止 2019-9-7: electron Github 的 star 已經(jīng)達到 76萬了,那么他的用戶量可能已經(jīng)上 1000萬了。還有大家知道的 github 的 atom 編輯器、微軟的vscode 編輯器,還有迅雷X以上版本,包括阿里內(nèi)部的一些軟件也是用 electron 開發(fā)的。既然這么熱,那就一個字:學(xué)。
二、 基于 Nodejs 的主流桌面應(yīng)用開發(fā)框架 NW.js 和 和 Electron
NW.js 和 Electron 都可以用前端的知識來開發(fā)桌面應(yīng)用。NW.js 和 Electron 起初是同一個作者開發(fā)。后來種種原因分為兩個產(chǎn)品。一個命名為 NW.js(英特爾公司提供技術(shù)支持)、另一命名為 Electron(Github 公司提供技術(shù)支持)。
NW.js和Electron可以用Nodejs中幾乎所有的模塊。NW.js和Electron不僅可以把html寫的 web 頁面打包成跨平臺可以安裝到電腦上面的軟件,也可以通過 javascript 訪問操作系統(tǒng)原生的 UI 和 Api(控制窗口、添加菜單項目、托盤應(yīng)用菜單、讀寫文件、訪問剪貼板)。
三、Electron 詳細介紹
1. Electron 目前是由誰開發(fā)并維護的?
答: Electron 是由 Github 開發(fā)維護
2. Electron 是什么?
答:Electron 是一個用 HTML,CSS 和 JavaScript 來構(gòu)建跨平臺桌面應(yīng)用程序的一個開源庫。
3. Electron 把 HTML,CSS 和 JavaScript 組合的程序構(gòu)建為跨平臺桌面應(yīng)用程序的原理是什么?
答:原理為 Electron 通過將 Chromium 和 Node.js 合并到同一個運行時環(huán)境中,并將其打包為 Mac,Windows 和 Linux 系統(tǒng)下的應(yīng)用來實現(xiàn)這一目的。
4. Electron 何時出現(xiàn)的,為什么會出現(xiàn)?
Electron 于 2013 年作為構(gòu)建 Atom 的框架而被開發(fā)出來。這兩個項目在 2014 春季開源。(Atom:為 Github 上可編程的文本編輯器)
一些歷史:
2013 年 4 月 Atom Shell 項目啟動 。
2014 年 5 月 Atom Shell 被開源 。
2015 年 4 月 Atom Shell 被重命名為 Electron 。
2016 年 5 月 Electron 發(fā)布了 v1.0.0 版本 。
5. Electron 當(dāng)前流行程度?
目前 Electron 已成為開源開發(fā)者、初創(chuàng)企業(yè)和老牌公司常用的開發(fā)工具。
6. Electron 當(dāng)前由那些人在維護支持?
Electron 當(dāng)前由 Github 上的一支團隊和一群活躍的貢獻者維護。 有些貢獻者是獨立開發(fā)者,有些則在用 Electron 構(gòu)建應(yīng)用的大型公司里工作。
7. Electron 新版本多久發(fā)布一次?
Electron 的版本發(fā)布相當(dāng)頻繁。每當(dāng) Chromium、Node.js 有重要的 bug 修復(fù),新 API或是版本更新時 Electron 會發(fā)布新版本。
一般 Chromium 發(fā)行新的穩(wěn)定版后的一到兩周之內(nèi),Electron 中 Chromium 的版本會對其進行更新,具體時間根據(jù)升級所需的工作量而定。
一般 Node.js 發(fā)行新的穩(wěn)定版一個月后,Electron 中 Node.js 的版本會對其進行更新,具體時間根據(jù)升級所需的工作量而定。
8. Electron 的核心理念是什么?
Electron 的核心理念是:保持 Electron 的體積小 和 可持續(xù)性開發(fā)。
如:
為了保持 Electron 的小巧 (文件體積) 和可持續(xù)性開發(fā) (以防依賴庫和 API 的泛濫) ,
Electron 限制了所使用的核心項目的數(shù)量。
比如 Electron 只用了 Chromium 的渲染庫而不是其全部組件。這使得升級 Chromium 更加容易,但也意味著 Electron 缺少了 Google Chrome 里的一些瀏覽器相關(guān)的特性。
添加到 Electron 的新功能應(yīng)該主要是原生 API。 如果可以的話,一個功能應(yīng)該盡可能的成為一個 Node.js 模塊。
9. Electron 當(dāng)前的最新版本為多少?
Electron 當(dāng)前的最新版本為 7.0(當(dāng)前時間為 2019 年 9月 7 號)
四、 學(xué)習(xí)前的準(zhǔn)備工作
1. 電腦需要安裝 nodejs
2. 電腦上面需要安裝 git
3. 需要有 Html css js 以及 nodejs 基礎(chǔ)