本周项目:WordPress Desktop
本周我们与 Automattic 的团队进行了交流,讨论了 WordPress Desktop,这是一个用于管理 WordPress 内容的开源桌面客户端。
大家都知道 WordPress,那么 WordPress Desktop 是什么呢?
WordPress.com 桌面应用 提供无缝的跨平台体验,让您可以专注于内容和设计,而不会被浏览器标签页分心——或者让您的网站保持待机状态但可访问。结合我们的浏览器支持和移动应用,您可以随时随地以任何方式构建您的网站,以帮助您完成工作。
为什么要为管理 WordPress 网站构建桌面应用程序?难道不能全部基于 Web 吗?
它实际上使用的是您在浏览器中访问 WordPress.com 时所使用的完全相同的技术。然而,它全部是本地托管的,因此加载时间极短。借助原生功能,如在 Dock 中显示、通知等,您可以真正专注于您的 WordPress 网站和博客。
为什么选择在 Electron 上构建 WordPress Desktop?
在 2015 年底,我们以 Calypso 的形式重构了 WordPress.com 的大部分内容,这是一个使用 React 的开源现代 JavaScript 应用。我们开始研究 Electron,并对 Calypso 进行了一些修改,使其能够在本地运行。这是一个令人信服的体验,我们认为进一步开发它具有很大的价值。
我们有几个团队在负责 Calypso。如果使用传统的桌面技术来构建一个与此匹配的完整的跨平台 GUI 客户端,将需要更多的工作。通过使用 Electron,我们 2-4 人的小团队得以利用其他团队的努力,在几个月内就构建了桌面应用程序。
在构建 WordPress Desktop 的过程中,您遇到过哪些挑战?
我们很快就让应用程序的初始版本运行起来了,但将其调整为最佳的桌面应用程序行为却花费了更多的时间。该应用程序的一个大挑战是,您实际上是在自己的机器上运行 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 的桌面应用程序(macOS 的原生客户端已存在)。Simplenote Electron 应用 也是开源的,可以在 Github 上找到。
我们还有一个即将推出的使用 Electron 的 Raspberry Pi 集成。
如果这一切听起来很有趣,我们很想听到您的声音!
有没有什么 Electron 技巧对其他开发者有用的?
签署桌面软件的发布过程对我们来说相对较新,尤其是在 Windows 上。我们写了一篇关于 Code Signing a Windows App 的文章,其中包含了该过程以及我们为正确完成它所经历的一些障碍。



