每周精选项目:WordPress Desktop
本周我们采访了 Automattic 的朋友,聊了聊 WordPress Desktop,这是一个用于管理 WordPress 内容的开源桌面客户端。
大家都知道 WordPress,但 WordPress Desktop 是什么?
WordPress.com 桌面应用 提供无缝的跨平台体验,让您可以专注于内容和设计,而不会被浏览器标签页分心 — 或者让您的站点保持在侧边栏但可访问。结合我们的浏览器支持和移动应用,您可以在任何地方以任何方式构建您的网站,以帮助您完成工作。
为什么要构建桌面应用来管理 WordPress 站点?难道不能全部基于 Web 吗?
它实际上使用的技术与您在浏览器中访问 WordPress.com 时所获得的技术完全相同。但是,它全部本地托管,因此加载时间最短。凭借停靠在程序坞、通知等原生功能的优势,您可以真正专注于您的 WordPress 站点和博客。
您为什么选择在 Electron 上构建 WordPress Desktop?
在 2015 年底,我们以 Calypso 的形式重建了大部分 WordPress.com,Calypso 是一个使用 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 上可用。
我们还有一个即将推出的 Raspberry Pi 集成,它使用了 Electron。
如果这些听起来很有趣,那么我们 很乐意听到您的声音!
有什么 Electron 技巧可能对其他开发者有用吗?
对我们来说,发布已签名的桌面软件的过程相对较新,尤其是对于 Windows。我们为 Code Signing a Windows App 撰写了一篇文章,其中包含该过程以及我们为正确执行此操作而经历的一些障碍。