本周项目:WordPress 桌面版
本周我们与 Automattic 的同事们聊了聊 WordPress 桌面版,这是一个用于管理 WordPress 内容的开源桌面客户端。
大家都知道 WordPress,但 WordPress 桌面版是什么?
WordPress.com 桌面应用提供无缝的跨平台体验,让您能够专注于内容和设计,而无需浏览器标签页的干扰——或让您的网站保持在后台但可访问。结合我们的浏览器支持和移动应用,您可以在任何地方构建您的网站,以任何有助于您完成工作的方式。
为什么要为管理 WordPress 网站构建桌面应用?它不能完全基于网络吗?
它实际上使用的是您访问 WordPress.com 时所获得的技术完全相同。然而,它都是本地托管的,因此加载时间最短。凭借其作为本地应用程序的优势,例如在停靠栏中、通知等,您真的可以专注于您的 WordPress 网站和博客。
你们为什么选择在 Electron 上构建 WordPress 桌面版?
在 2015 年底,我们以 Calypso 的形式重构了 WordPress.com 的大部分内容,Calypso 是一个使用 React 的开源现代 JavaScript 应用程序。我们开始研究 Electron,并对 Calypso 进行了一些更改后,成功地在本地运行它。这是一个引人入胜的体验,我们认为进一步开发它具有很大价值。
我们有几个团队在 Calypso 上工作。如果使用传统的桌面技术来构建一个完整的多平台 GUI 客户端,使其与此匹配,那将需要更多的工作。通过使用 Electron,我们 2-4 人的小团队能够利用其他团队的努力,在几个月内构建出桌面应用程序。
在构建 WordPress 桌面版时,你们面临了哪些挑战?
我们很快就让应用程序的初始版本运行起来,但将其调整为作为桌面应用程序最佳运行则花费了更多时间。该应用程序的一个巨大挑战是,您实际上是在自己的机器上运行 Calypso 的副本——它纯粹是一个 API 驱动的用户界面。这涉及到大量的桥接工作,并且更改会反馈到 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 应用程序代码签名的文章,其中包含了我们为了正确完成此过程所经历的流程和一些障碍。