Electron 基礎教程-1.4 為什麼選擇Electron
為什麼選擇Electron
既然你選擇了這本書,肯定是為了專案需求開發桌面應用,亦或是純粹的個人興趣。
如果你曾開發過web應用,你應該對適配各種瀏覽器平臺的痛苦歷歷在目。瀏覽器標準的適配過程經歷了很多年,但web開發者仍要關注適配問題。對於那些與企業客戶合作的開發者來說,更有可能被舊版瀏覽器和作業系統困擾。當你使用Electron開發時,你的應用中會有一個完整的Chromium引擎拷貝,因此你會十分明確應用所支援的特性以及內容渲染的效果。舉個例子,如果你想使用Flexbox作為佈局方案,在Electron應用中是安全的(見下圖)。再例如想要使用Service Worker或者Fetch API,只要確認Electron是否支援即可。
Figure 1-1. The FlexBox support table from caniuse.com
雖然不再支援caniuse.com上的特性會令人失望,但也不排除這種可能性。
按照慣例,Electron大約在Chromium釋出新版本後約兩週更新,Node的更新通常會稍微長一些。當你著手去開發一個較大規模的Electron專案時,你應關注這兩個元件的更新,可能某些新特性會使得開發工作更高效。但是別擔心版本問題,一旦你打包你的應用,這些執行時環境都會被整合進去。
Electron的優勢
Electron應用與其他桌面應用程式一樣:安裝在本地硬碟、直接在Windows的狀態列或OS X的Dock欄中啟動、也不需要像使用web程式一樣在瀏覽器中輸入某個URL才能進入。當需要儲存檔案時,對話方塊也是本地互動的。Electron應用也完全支援滑鼠拖放本地檔案,甚至能將自身與檔案型別相關聯,因此當雙擊某型別檔案時你的應用將會開啟它。
也可以為各個平臺的使用者開發使用者選單,也允許使用者在右鍵單擊或按住control單擊時呼叫上下文選單。稍後的章節將會看到如何進行選單開發。
如果需要觸發系統級別的通知,可以使用Chromium的Notification API。Electron比傳統桌面應用更先進,也可以開發只在選單條或系統托盤上的程式。
Electron提供了一套可靠的框架,可以讓你開發出一流的桌面應用。
超越沙盒環境
如果有過使用外部API開發的經驗,你可能就會了解其中的一些限制。我們要與跨平臺資源共享問題作鬥爭,或要建立代理來使得web應用正常工作。
在執行環境安全性方面,Electron比一般瀏覽器更加寬鬆。我們假定使用者既然主動選擇了安裝和運行了應用,使用者就和應用之間就建立了某種信任關係。
寬鬆的安全性環境使得應用更不受限制,但同時我們也要慎用這些許可權。
離線優先
傳統的web應用都假定使用者是一直是線上狀態的,如今這一狀況在日益廣泛的PWA(Progressive Web Apps,漸進式網頁應用)中有所變化,但是一定程度的線上狀態對也是程式執行所必須的。Electron採用相反的方式:不必要求應用保持網路連線。實際上本章是我在35000英尺高空、沒有WiFi的飛機上寫的,在完全離線模式下我依舊能夠寫作。即時你的應用後臺依賴於網路通訊,也能為其設計離線模式,一旦網路恢復再傳輸資料。你可能需要一些時間來體會這種設計模式對互動設計和程式開發的影響。