每週專案:WordPress 桌面版
本週我們與 Automattic 的同仁聯繫,討論關於 WordPress 桌面版,這是一個用於管理 WordPress 內容的開源桌面用戶端。
大家都知道 WordPress,但什麼是 WordPress 桌面版?
WordPress.com 桌面應用程式提供無縫的跨平台體驗,讓您可以專注於內容和設計,而不會被瀏覽器索引標籤分散注意力,或是讓您的網站閒置但可存取。結合我們的瀏覽器支援和行動應用程式,您可以隨時隨地以任何方式建置您的網站,協助您完成工作。
為什麼要建置用於管理 WordPress 網站的桌面應用程式?難道不能全部都以網路為基礎嗎?
實際上,它使用的技術與您在瀏覽器中造訪 WordPress.com 時所使用的技術完全相同。不過,它全部都是在本機託管,因此載入時間最短。憑藉本機功能 (例如在您的 Dock 中、通知等) 的優勢,您真的可以專注於您的 WordPress 網站和部落格。
為什麼您選擇在 Electron 上建置 WordPress 桌面版?
在 2015 年底,我們以 Calypso 的形式重建了大部分的 WordPress.com,這是一個使用 React 的開源現代 JavaScript 應用程式。我們開始研究 Electron,並對 Calypso 進行了一些變更,使其能夠在本機執行。這是一個引人入勝的體驗,我們認為進一步開發它很有價值。
我們有幾個團隊在開發 Calypso。若要使用傳統的桌面技術開發與此相符的完整多平台 GUI 用戶端,則需要更多工作。透過使用 Electron,我們一個由 2-4 個人組成的小團隊能夠利用其他團隊的努力,在幾個月內建置桌面應用程式。
在建置 WordPress 桌面版時,您遇到哪些挑戰?
我們很快就讓應用程式的初始版本執行起來,但調整其行為以使其作為桌面應用程式的最佳化運作卻花費了更多時間。此應用程式的一個大挑戰是,您實際上是在自己的機器上執行 Calypso 的副本 - 它純粹是 API 驅動的 UI。這其中牽涉到許多橋接工作,並且變更會回饋到 Calypso 本身。
此外,我們還花費大量精力來封裝不同平台的應用程式 - 我們提供 Windows、macOS 和 Linux 版本 - 而且有足夠的差異使其變得棘手。
當時 Electron 相對較新,我們不斷遇到很快就修復的問題 (有時候是同一天!)
Electron 應該在哪些方面進行改進?
Electron 已經提供我們桌面應用程式所需的大部分功能,而且自我們開始使用以來,它進展迅速。也就是說,桌面應用程式中有一些理所當然的領域,例如拼字檢查和尋找/取代,使用 Electron 現有的功能很難複製。
我們也希望看到一些較新的 Chrome 技術也滲透到 Electron 中。我們特別熱衷於嘗試 WebVR。
您最喜歡 Electron 的哪些方面?
我們選擇 Electron 的主要原因,也是它最大的優勢,是非常活躍且開放的社群。Automattic 一直以來都相信開源。這是我們的核心原則之一,而 Electron 專案和社群遵循許多非常開放和積極的核心信念。
WordPress 桌面版的下一步是什麼?
我們模式的優點在於桌面應用程式可以從任何新的 Calypso 功能中受益 - 而且不斷在改進。我們希望我們可以向應用程式新增其他功能,例如離線支援,這確實會將應用程式帶入本機領域,並提供更好的系統通知。
Automattic 是否有任何團隊在開發其他 Electron 應用程式?
是的,在我們為桌面應用程式努力之後,Simplenote 團隊決定使用 Electron 為 Windows 和 Linux 建置桌面應用程式 (已經存在原生 Mac 用戶端)。Simplenote Electron 應用程式也是開源的,並可在 Github 上取得。
我們還有一個即將推出的 Raspberry Pi 整合功能,該功能使用 Electron。
如果這些聽起來很有趣,那麼我們非常樂意收到您的來信!
是否有任何可能對其他開發人員有用的 Electron 訣竅?
交付已簽署的桌面軟體的程序對我們來說相對較新,尤其是對於 Windows。我們為 程式碼簽署 Windows 應用程式撰寫了一篇文章,其中包含該程序以及我們為正確執行該程序而經歷的一些障礙。