《Electron實戰》中文版:使用Electron構建跨平臺的應用程序簡介

本文為《Electron實戰》中文版第二部分內容介紹,私聊得樣本電子書。

《Electron實戰》中文版:使用Electron構建跨平臺的應用程序簡介

第二部分 使用Electron構建跨平臺的應用程序

在第一部分,我討論了是什麼讓Electron變得如此有趣和特別,但我們構建的第一個Electron應用程序非常簡單——我承認——甚至有點缺乏創意。在第二部分,也就是本書的主要部分,我們將開始深入研究Electron更引人關注的功能。在這部分,我們將構建三個應用程序:一個帶實時預覽,並能直接訪問文件系統的Markdown文本編輯器;一個宿主在系統菜單欄或系統托盤的剪貼板管理器,它可以讀寫系統剪貼板;以及一個使用React開發的打包清單程序,它能夠直接讀寫本地數據庫。

在第二部分,我會盡量構建足夠簡單的應用程序,以便能夠在短時間內理解它們,同時又具有足夠的複雜性,使我們能遇到一些更大、更復雜的應用程序需要解決的問題。

在第3章,我們將通過實現UI為我們的Markdown編輯器Fire Sale打下基礎,還會研究調試Electron應用程序的細節。在第4章,我們將探討Node.js主進程與這些瀏覽器窗口(稱為渲染進程)的關係。我們將讀寫文件系統,並在進程之間來回發送數據。在第5章,我將介紹如何管理多個窗口,並深入研究Electron的進程間通信模型。

在第6章,介紹了一些與本機操作系統交互有關的重點內容,我們會根據是否有未保存的更改,來相應地更新標題欄。我們會將文檔附加到操作系統最近訪問的文檔列表中,並監聽是否有另一個應用程序修改了當前在Fire Sale中打開的文件。在第7章,探討如何構建本地應用程序菜單和上下文菜單,這一般不是web和Node.js開發人員會經常遇到的內容。在第8章,我們將實現與主機操作系統的其他交互,以及在應用程序狀態發生變化時啟用和禁用菜單項來動態更新菜單,至此就完成了最後的收尾工作。

在第9章,我們將著手在web開發人員從未涉足過的地方構建應用程序:macOS的菜單欄和Windows中的系統托盤。Clipmaster是一個簡單的應用程序,讓你可以從系統剪貼板讀取文本並將其存儲在內存中。當選中其中一項時,可以將其寫回剪貼板,以便後續粘貼使用,這是我在寫這本書的過程中一直使用的一個應用程序。在第10章,我們將銷燬整個應用程序並從頭開始,在此過程中提供更健壯的UI。

在第11章之前,我們也才使用了一些非常有限的工具來操作DOM。在閱讀第11章之前的章節時,你可能對如何集成你最喜歡的前端框架有很多想法。當我們看到像Babel、TypeScript或Sass這樣的工具的實現比你想象的要容易時,你的耐心終是沒有白費。我們將構建一個名為Jetsetter的簡易清單管理器,用於跟蹤你下一次旅程之前需要打包的東西。在這裡我只使用了React,因為它具有最平緩的學習曲線。但我向你保證,對於Ember、Angular和Vue也是非常優秀的架構。

你可能使用過webpack或Browserify等工具,通過npm將依賴庫添加進應用程序中。如果是這樣,你可能會遇到一些禁止使用的模塊,這些通常是使用C++編譯的。一般來說,瀏覽器只能使用JavaScript,但是Electron應用程序不僅僅是瀏覽器應用程序。在第12章,我們會讓Jetsetter直接使用一個可移植的SQLite數據庫;會了解如何正確編譯Electron附帶Node.js的自定義模塊;還會在一個基於瀏覽器的IndexedDB數據庫中實現持久化存儲,幫助你確定自己應用程序更傾向的方式。

在第13章,介紹了使用Spectron進行端到端測試,它是基於Selenium實現。在該章節,將向你介紹如何編寫測試來提升Electron應用程序的性能。在第二部分結束時,你該對Electron所提供的一切感到滿意了,並且會躍躍欲試地想要做些更有創造性的東西。


《Electron實戰》中文版!


分享到:


相關文章: