本周项目:WordPress Desktop
本周我们在 Automattic 平台上聊到了 WordPress Desktop, 一个开源的桌面客户端, 负责管理 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 应用代码签名 撰写了一篇文章,其中包括该过程以及我们为正确完成此操作而经历的一些困难。