本周项目:WordPress Desktop
本周我们采访了 Automattic 的工作人员,讨论了 WordPress Desktop,这是一个用于管理 WordPress 内容的开源桌面客户端。
大家都知道 WordPress,但什么是 WordPress Desktop?
WordPress.com 桌面应用 提供了一个无缝的跨平台体验,让您可以专注于内容和设计,而不会受到浏览器标签页的干扰——或者让您的网站保持旁置但随时可访问。结合我们的浏览器支持和移动应用,您可以在任何地方,以任何有助于您完成工作的方式构建您的网站。
为什么构建一个用于管理 WordPress 网站的桌面应用?它不能完全基于网页吗?
它实际上使用了与您通过浏览器访问 WordPress.com 时完全相同的技术。然而,它是本地托管的,因此加载时间极短。借助原生功能,例如在 Dock/任务栏中显示、通知等,您可以真正专注于您的 WordPress 网站和博客。
为什么选择在 Electron 上构建 WordPress Desktop?
2015 年底,我们以 Calypso 的形式重建了大部分 WordPress.com,它是一个使用 React 的开源现代 JavaScript 应用。我们开始关注 Electron,并对 Calypso 进行了一些改动,使其能够在本地运行。这带来了引人入胜的体验,我们认为进一步开发它具有很大价值。
我们有几个团队正在开发 Calypso。要使用传统的桌面技术构建一个与之匹配的多平台 GUI 客户端,需要更多的工作。通过使用 Electron,我们一个由 2-4 人组成的小团队能够利用其他团队的努力,在几个月内构建出桌面应用。
在构建 WordPress Desktop 过程中遇到过哪些挑战?
我们很快就让应用的一个初始版本运行起来了,但将其调整为像桌面应用那样表现最佳花了很多时间。这个应用面临的一个巨大挑战是,您实际上是在自己的机器上运行一个 Calypso 的副本——它纯粹是一个由 API 驱动的 UI。这涉及大量的桥接工作,并且改动会反馈到 Calypso 本身。
此外,我们花费了大量精力为不同平台打包应用——我们提供 Windows、macOS 和 Linux 版本——这些平台之间的差异足以让这项工作变得棘手。
当时 Electron 相对较新,我们不断遇到一些问题,但它们很快就被修复了(有时甚至当天就修复了!)。
Electron 在哪些方面应该改进?
Electron 已经为桌面应用提供了我们所需的大部分功能,自我们开始使用它以来,它的进展非常迅速。话虽如此,桌面应用中有些理所当然的功能,比如拼写检查和查找/替换,在使用现有的 Electron 时复制起来会比较困难。
我们也希望看到一些新的 Chrome 技术能够渗透到 Electron 中。我们特别热衷于尝试 WebVR。
您最喜欢 Electron 的哪些地方?
我们选择 Electron 的主要原因,也是它最大的优点,是它非常活跃和开放的社区。Automattic 一直相信开源。这是我们的核心信条之一,而 Electron 项目和社区遵循了很多非常开放和积极的核心理念。
WordPress Desktop 的下一步是什么?
我们模式的优点在于桌面应用能够受益于任何新的 Calypso 功能——它在不断改进。我们希望能够为应用添加更多功能,比如离线支持,这将真正把应用带入原生领域,以及更好的系统通知。
Automattic 是否还有其他团队正在开发 Electron 应用?
是的,在我们开发桌面应用之后,Simplenote 团队决定使用 Electron 为 Windows 和 Linux 构建桌面应用(已有一个原生的 Mac 客户端)。Simplenote Electron 应用 也是开源的,并且可在 Github 上获得。
我们还有一个即将到来的使用 Electron 的 Raspberry Pi 集成。
如果这些听起来有趣,我们期待您的来信!
有什么对其他开发者有用的 Electron 技巧吗?
发布签名桌面软件的过程对我们来说相对较新,特别是对于 Windows。我们撰写了一篇关于代码签名 Windows 应用的文章,其中包括了整个过程以及我们在正确完成这项工作时遇到的一些障碍。