跳转到主内容

本周项目:WordPress Desktop

· 阅读时间:约 6 分钟

本周我们在 Automattic 平台上聊到了 WordPress Desktop, 一个开源的桌面客户端, 负责管理 WordPress 的内容.


WordPress 应用程序

每个人都了解 WordPress,但 WordPress 桌面究竟是什么?​

WordPress.com Desktop 应用 提供了一个平滑的跨平台体验, 它可以让你将精力集中在你的内容和设计上, 而不需要让浏览器标签打乱你的思绪 — 或者维持网站原始的样子而且还可以继续访问. 结合我们的浏览器支持和移动应用程序,您可以随时随地构建您的网站,以任何有助于您完成工作的方式。

为什么要构建一个桌面应用来管理 WordPress 站点? 就不能全部基于网页吗?​

它实际上使用了你在浏览器中访问 WordPress.com 时获得的完全相同的技术。 然而,它都是本地托管的,因此它的加载时间最短。 得益于本地特性的支持, 比如托盘和通知等等都可以使用, 你就可以专注于 WordPress 的站点和博客.

你为什么选择在 Electron 上构建 WordPress Desktop?​

2015 年末,我们通过 Calypso 重建了 WordPress.com 站点, Calypso 是一个开源的使用 React 开发的现代化 JavaScript 应用. 我们开始研究 Electron,并且对 Calypso 进行了一些更改,使其能够在本地运行。 It was a compelling experience and we thought there was a lot of value in developing it further.

我们有几个团队在 Calypso 上工作。 要使用传统的桌面技术制作一个完整的多平台GUI客户端,将需要更多的工作。 通过使用Electron,我们2-4人的小团队能够利用其他团队的努力,并在几个月内构建桌面应用程序。

构建 WordPress 桌面时遇到了哪些挑战?​

我们很快就有了一个运行应用的起始版本, 但让它表现的和本地应用一样则花费了很多时间. 这其中有一个很大的挑战, 这个过程需要在你自己的机器上运行一个 Calypso 的备份, 它就是一个 API 驱动的 UI. 这方面涉及许多衔接工作,各种变化都反馈给了 Calypso 本身。

此外,我们花费了大量精力为不同的平台打包应用程序—— 我们提供了Windows, macOS 和 Linux 版本 - 并且他们之间有很大的不同。

当时 Electron 还比较新,我们不断遇到一些可以很快得到解决的问题(有时是同一天!)

应在哪些领域改进Electron?​

Electron 已经提供了我们构建桌面应用所需要的的大部分内容,并且从我们开始使用它以来就已经进展很快了。 尽管如此,也一些领域在桌面应用中被认为是理所当然的功能,比如拼写检查和查找/替换,就很难在 Electron 中复现。

我们也希望看到一些较新的 Chrome 技术渗透到 Electron 中。 我们特别热衷于尝试 WebVR 技术。

What are your favorite things about Electron?​

我们选择Electron的主要原因,也是它最大的优势,是非常活跃和开放的社区。 Automattic 一直相信开源。 这是我们的核心原则之一,Electron 项目和社区遵循许多非常开放和积极的核心信念。

WordPress 桌面下一步是什么?​

我们的模型的伟大之处在于,Desktop 应用程序受益于任何新的 Calypso 功能 - 它将不断改进。 我们希望可以为应用程序添加额外特性,例如离线支持和更好的系统通知,这将真正将应用程序带入本机领域

Automattic是否有团队在开发其他 Electron 应用程序?​

当前,经过我们在桌面应用上的努力, Simpenote 团队决定使用 Electron 为 Windows 和 Linux 构建桌面应用程序(原生的 Mac 客户端已经存在)。 Simpenote Electron 应用 也是开源的,可在 Github上访问到。

我们也有一个即将使用 Electron 开发树莓派集成的团队。

如果其中任何一个听起来很有趣,那么我们 将很乐意听到你的想法!

Any Electron tips that might be useful to other developers?​

交付签名桌面软件的过程对我们来说相对较新,特别是对于Windows。 我们为 Windows 应用代码签名 撰写了一篇文章,其中包括该过程以及我们为正确完成此操作而经历的一些困难。