本周项目:WordPress 桌面
本周我们与 Automattic 的人员取得了联系,讨论了 WordPress 桌面,这是一个用于管理 WordPress 内容的开源桌面客户端。
每个人都知道 WordPress,但什么是 WordPress 桌面?
该 WordPress.com 桌面应用程序 提供无缝的跨平台体验,使您能够专注于您的内容和设计,而不会有浏览器标签分散您的注意力——或将您的网站置于闲置状态,但仍然可以访问。结合我们的浏览器支持和移动应用程序,您可以随时随地以任何方式构建您的网站,帮助您完成工作。
为什么要构建一个用于管理 WordPress 网站的桌面应用程序?难道不能全部基于网络吗?
它实际上使用了与您在浏览器中访问 WordPress.com 时完全相同的技术。但是,它是在本地托管的,因此加载时间最短。凭借原生功能的优势,例如位于您的停靠栏中、通知等,您实际上可以专注于您的 WordPress 网站和博客。
为什么选择在 Electron 上构建 WordPress 桌面?
在 2015 年底,我们重建了大部分 WordPress.com,以 Calypso 的形式,这是一个使用 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 上找到。
我们还将推出一个使用 Electron 的即将推出的 Raspberry Pi 集成。
如果您对这些有任何兴趣,我们 非常乐意听取您的意见!
您有哪些可能对其他开发人员有用的 Electron 小贴士?
为桌面软件签名并进行发布是一个相对较新的流程,尤其是在 Windows 平台上。我们撰写了一篇文章,名为 Windows 应用代码签名,其中包含了完整的流程以及我们为确保正确签署过程中遇到的几个障碍。