跳至主要内容

11 篇关于“展示案例”的文章

重点介绍精选的 Electron 使用案例

查看所有标签

2023 年生态系统回顾

·阅读时间:5 分钟

回顾 2023 年 Electron 开发者生态系统中的改进和变化。


在过去的几个月里,我们一直在 Electron 生态系统中进行一些更改,以增强 Electron 应用的开发者体验!以下是直接来自 Electron 总部的最新新增功能的简要概述。

Electron Forge 7 及更高版本

Electron Forge 7——我们用于打包和分发 Electron 应用的一体化工具的最新主要版本——现已推出。

虽然 Forge 6 是从 v5 开始的完整重写,但 v7 的范围较小,但仍然包含一些重大更改。未来,我们将继续发布 Forge 的主要版本,因为需要进行重大更改。

有关更多详细信息,请参阅 GitHub 上的完整Forge v7.0.0 变更日志

重大更改

  • 切换到 notarytool 用于 macOS 公证:从 2023 年 11 月 1 日起,Apple 停止了用于 macOS 公证的旧版 altool,此版本完全从 Electron Forge 中删除了它。
  • Node.js 最低版本提升至 v16.4.0:在此版本中,我们将所需的 Node.js 最低版本设置为 16.4.0。
  • 放弃对 electron-prebuiltelectron-prebuilt-compile 的支持electron-prebuilt 最初是 Electron 的 npm 模块的名称,但在 v1.3.1 中被 electron 替换。electron-prebuilt-compile 是该二进制文件的替代方案,具有增强的 DX 功能,但最终被放弃作为项目。

亮点

  • Google Cloud Storage 发布者作为我们更好地支持静态自动更新的努力的一部分,Electron Forge 现在支持直接发布到 Google Cloud Storage!
  • ESM forge.config.js 支持Electron Forge 现在支持 ESM forge.config.js 文件。(附注:期待 Electron 28 中的 ESM 入口点支持。)
  • Makers 现在并行运行在 Electron Forge 6 中,Makers 由于 ✨ 遗留 ✨ 原因而顺序运行。从那时起,我们已经测试了 Make 步骤的并行化,没有出现任何负面影响,因此在为同一平台构建多个目标时,您应该会看到速度提升!
感谢!

🙇 非常感谢 mahnunchik 为 Forge 配置中的 GCS 发布者和 ESM 支持做出的贡献!

更好的静态存储自动更新

Squirrel.Windows 和 Squirrel.Mac 是支持 Electron 内置 autoUpdater 模块的特定于平台的更新技术。这两个项目都支持通过两种方法进行自动更新

  • 一个与 Squirrel 兼容的更新服务器
  • 托管在静态存储提供商(例如 AWS、Google Cloud Platform、Microsoft Azure 等)上的清单 URL

更新服务器方法传统上是 Electron 应用的推荐方法(并提供更新逻辑的额外自定义),但它有一个主要缺点——如果应用是闭源的,则需要应用维护自己的服务器实例。

另一方面,静态存储方法一直都是可能的,但在 Electron 中没有文档记录,并且在 Electron 工具包中支持不佳。

借助 @MarshallOfSound 的出色工作,无服务器自动应用更新的更新流程已得到大幅简化

  • Electron Forge 的 Zip 和 Squirrel.Windows makers 现在可以配置为输出与 autoUpdater 兼容的更新清单。
  • update-electron-app 的一个新主要版本(v2.0.0)现在可以读取这些生成的清单作为 update.electronjs.org 服务器的替代方案。

一旦您的 Makers 和 Publishers 配置为将更新清单上传到云文件存储,您就可以仅使用几行配置来启用自动更新

const { updateElectronApp, UpdateSourceType } = require('update-electron-app');

updateElectronApp({
updateSource: {
type: UpdateSourceType.StaticStorage,
baseUrl: `https://my-manifest.url/${process.platform}/${process.arch}`,
},
});
进一步阅读

📦 想了解更多?有关详细指南,请参阅Forge 的自动更新文档

@electron/ 扩展宇宙

Electron 最初启动时,社区发布了许多软件包来增强开发、打包和分发 Electron 应用的体验。随着时间的推移,许多这些软件包被纳入 Electron 的 GitHub 组织,核心团队承担了维护负担。

2022 年,我们开始将所有这些第一方工具统一到 npm 上的 @electron/ 命名空间下。此更改意味着以前是 electron-foo 的软件包现在在 npm 上是 @electron/foo,而以前名为 electron/electron-foo 的存储库现在在 GitHub 上是 electron/foo。这些更改有助于将第一方项目与用户空间项目区分开来。这包括许多常用的软件包,例如

  • @electron/asar
  • @electron/fuses
  • @electron/get
  • @electron/notarize
  • @electron/osx-sign
  • @electron/packager
  • @electron/rebuild
  • @electron/remote
  • @electron/symbolicate-mac
  • @electron/universal

未来,我们发布的所有第一方软件包也将位于@electron/命名空间下。此规则有两个例外情况

  • Electron 核心将继续在electron软件包下发布。
  • Electron Forge 将继续在其所有单仓软件包下发布@electron-forge/命名空间。
寻求星标

⭐ 在此过程中,我们还意外地将electron/packager 仓库设为私有,这不幸地导致了我们 GitHub 星标数的清零(在清零之前超过 9000 个)。如果您是 Packager 的活跃用户,我们恳请您给予一个 ⭐ **星标** ⭐!

引入 @electron/windows-sign

从 2023 年 6 月 1 日开始,行业标准开始要求将 Windows 代码签名证书的密钥存储在符合 FIPS 的硬件上。

实际上,这意味着对于在 CI 环境中构建和签名的应用程序来说,代码签名变得更加困难,因为许多 Electron 工具将证书文件和密码作为配置参数输入,并尝试使用硬编码逻辑从那里进行签名。

这种情况一直是 Electron 开发人员的常见痛点,因此我们一直在努力寻找更好的解决方案,将 Windows 代码签名隔离到其自己的独立步骤中,类似于@electron/osx-sign在 macOS 上所做的事情。

将来,我们计划将此软件包完全集成到 Electron Forge 工具链中,但目前它独立存在。该软件包目前可通过npm install --save-dev @electron/windows-sign进行安装,并且可以通过编程方式或通过 CLI 使用。

请尝试一下,并在仓库的问题跟踪器中提供您的反馈!

接下来是什么?

我们将在下个月进入一年一度的 12 月份静默期。在此期间,我们将思考如何让 Electron 开发体验在 2024 年变得更好。

您希望我们接下来关注哪些方面?请告诉我们!

每周项目:Jasper

·阅读时间:5 分钟

本周我们采访了 Jasper 的创建者,这是一个基于 Electron 的工具,用于管理 GitHub 通知。


您好!您是谁?

我叫 Ryo Maruyama,是日本的一名软件开发人员。我正在开发 JasperESDoc

什么是 Jasper?

Jasper 是一个灵活且强大的 GitHub 问题阅读器。它支持 github.com 和 GitHub Enterprise 上的问题和拉取请求。

Jasper App Screenshot

您为什么要开发它?

当人们在工作或开源活动中使用 GitHub 时,他们往往会每天收到许多通知。作为订阅通知的一种方式,GitHub 提供了电子邮件和 网页通知。我使用了这些功能几年,但遇到了以下问题

  • 很容易忽略提到我、我评论过或我正在关注的问题。
  • 我将一些问题放在脑海的一个角落,以便稍后查看,但我有时会忘记它们。
  • 为了不忘记问题,我在浏览器中打开了多个标签页。
  • 很难检查所有与我相关的问题。
  • 很难掌握我整个团队的活动。

我花费了大量时间和精力来解决这些问题,因此我决定为 GitHub 开发一个问题阅读器来有效地解决这些问题,并开始开发 Jasper。

谁在使用 Jasper?

Jasper 被多家使用 GitHub 的公司的开发人员、设计师和管理人员使用。当然,一些开源开发人员也在使用它。GitHub 的一些人也正在使用它!

Jasper 如何工作?

配置好 Jasper 后,将显示以下屏幕。从左到右,您可以看到“流列表”、“问题列表”和“问题正文”。

Jasper Start Screen

这个“流”是 Jasper 的核心功能。例如,如果您想查看“在 electron/electron 仓库中分配给 @zeke 的问题”,您可以创建以下流

repo:electron/electron assignee:zeke is:issue

Jasper Start Screen 2

创建流并等待几秒钟后,您可以看到满足条件的问题。

Jasper Start Screen 3

我们如何使用流?

我将介绍流可以使用哪些条件。

用户和团队

问题
mentions:cat mentions:dog提及用户catdog的问题
author:cat author:dog由用户catdog创建的问题
assignee:cat assignee:dog分配给catdog的问题
commenter:cat commenter:dogcatdog评论过的问题
involves:cat involves:dog“涉及”catbob的问题
team:animal/white-cat team:animal/black-dog提到animal/white-catanimal/black-dog的问题

involves表示mentionauthorassigneecommenter

仓库和组织

问题
repo:cat/jump repo:dog/runcat/jumpdog/run中的问题
org:electron user:cat user:dogelectroncatdog中的问题

orguser相同

属性

问题
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1cat/jump中附加到v1.0.0v1.0.1的问题
repo:cat/jump label:bug label:blockercat/jump中附加bug**和**blocker的问题
electron OR atomshell包含electronatomshell的问题

审查状态

问题
is:pr review:requiredcat/jump中需要审查的问题
is:pr review-requested:catcat请求审查的问题。
但这些问题尚未审查。
is:pr reviewed-by:catcat审查的问题

您可能已经注意到,流可以使用 GitHub 的搜索查询。有关如何使用流和搜索查询的详细信息,请参阅以下 URL。

Jasper 还具有未读问题管理、未读评论管理、标记星标、通知更新、问题过滤、键盘快捷键等功能。

Jasper 是付费产品吗?价格是多少?

Jasper 售价 12 美元。但是,您可以使用 免费试用版 30 天。

您为什么选择使用 Electron 构建 Jasper?

我喜欢 Electron 的以下方面

  • 可以使用 JavaScript/CSS/HTML 开发应用程序。
  • 可以为 Windows、Mac 和 Linux 平台构建应用程序。
  • Electron 正在积极开发中,并拥有庞大的社区。

这些功能使快速简单的桌面应用程序开发成为可能。太棒了!如果您有任何产品创意,您应该考虑使用 Electron。

在开发 Jasper 期间您遇到过哪些挑战?

我很难理解“流”的概念。最初我考虑使用 GitHub 的 通知 API。但是我注意到它不支持某些用例。之后,我考虑使用 问题 API拉取请求 API,以及通知 API。但这从未达到我想要的效果。然后,在思考各种方法时,我意识到轮询 GitHub 的 搜索 API 将提供最大的灵活性。我花了大约一个月的时间进行试验才达到这一点,然后在两天内使用流概念实现了 Jasper 的原型。

注意:轮询最多每 10 秒限制一次。对于 GitHub API 的限制来说,这已经足够了。

接下来是什么?

我计划开发以下功能

  • **过滤流**:流具有一些过滤流,用于过滤流中的问题。它类似于 SQL 的视图。
  • **多个账户**:您将能够同时使用 github.com 和 GHE
  • **提高性能**:目前,在 WebView 中加载问题比普通浏览器慢。

关注 Twitter 上的 @jasperappio 以获取更新。

每周项目:WebTorrent

·阅读时长 9 分钟

本周,我们与 @feross@dcposch 进行了交流,讨论了 WebTorrent,这是一个基于网络的 torrent 客户端,它将用户连接在一起,形成一个分布式的、去中心化的浏览器到浏览器的网络。


什么是 WebTorrent?

WebTorrent 是第一个在浏览器中运行的 torrent 客户端。它完全用 JavaScript 编写,可以使用 WebRTC 进行对等传输。无需浏览器插件、扩展程序或安装。

利用开放的网络标准,WebTorrent 将网站用户连接在一起,形成一个分布式的、去中心化的浏览器到浏览器的网络,以实现高效的文件传输。

您可以在此处查看 WebTorrent 的演示:webtorrent.io

webtorrent homepage

为什么它很酷?

想象一个像 YouTube 这样的视频网站,但访问者可以帮助托管网站的内容。使用 WebTorrent 支持的网站的人越多,它就会变得越快、越有弹性。

浏览器之间的通信消除了中间人,让人们能够按照自己的方式进行通信。不再有客户端/服务器——只是一个对等网络,所有节点都是平等的。WebTorrent 是重新去中心化 Web 之旅的第一步。

Electron 在哪里发挥作用?

大约一年前,我们决定构建 WebTorrent Desktop,这是一个作为桌面应用程序运行的 WebTorrent 版本。

WebTorrent Desktop player window

我们创建 WebTorrent Desktop 有三个原因

  1. 我们想要一个简洁、轻量级、无广告、开源的 torrent 应用程序
  2. 我们想要一个具有良好流媒体支持的 torrent 应用程序
  3. 我们需要一个“混合客户端”,连接 BitTorrent 和 WebTorrent 网络

如果我可以在 Web 浏览器中下载 torrent,为什么还需要桌面应用程序?

首先,让我们简单了解一下 WebTorrent 的设计。

webtorrent desktop logo

在早期,BitTorrent 使用 TCP 作为其传输协议。后来,uTP 出现了,它承诺提供比 TCP 更好的性能和额外优势。每个主流 torrent 客户端最终都采用了 uTP,如今您可以通过任一协议使用 BitTorrent。WebRTC 协议是下一个合乎逻辑的步骤。它带来了与 Web 浏览器互操作性的承诺——一个由所有桌面 BitTorrent 客户端和数百万个 Web 浏览器组成的庞大 P2P 网络。

“Web 对等节点”(在 Web 浏览器中运行的 torrent 对等节点)通过添加数百万个新对等节点并使 BitTorrent 扩展到数十个新的用例,使 BitTorrent 网络更加强大。WebTorrent 尽可能地遵循 BitTorrent 规范,以便现有的 BitTorrent 客户端可以轻松添加对 WebTorrent 的支持。

一些 torrent 应用程序,如 Vuze,已经支持 Web 对等节点,但我们不想等待其他应用程序添加支持。所以基本上,WebTorrent Desktop 是我们加速 WebTorrent 协议采用的方式。通过制作一个人们真正想使用的很棒的 torrent 应用程序,我们增加了网络中可以与 Web 对等节点(即网站上的用户)共享 torrent 的对等节点数量。

除了人们已经知道的功能之外,torrent 还有一些有趣的用例吗?

WebTorrent 最令人兴奋的用途之一是同行辅助交付。像 维基百科互联网档案 这样的非营利项目可以通过让访问者参与进来来降低带宽和托管成本。热门内容可以通过浏览器之间快速廉价地提供。很少访问的内容可以通过 HTTP 从源服务器可靠地提供。

互联网档案实际上已经更新了他们的 torrent 文件,以便它们可以与 WebTorrent 完美配合。因此,如果您想在您的网站上嵌入互联网档案内容,您可以通过一种减少档案托管成本的方式来做到这一点,从而让他们能够将更多资金用于实际存档网络!

还有一些令人兴奋的商业用例,从 CDN 到通过 P2P 传递应用程序。

您最喜欢的使用 WebTorrent 的项目有哪些?

gaia app screenshot

用 WebTorrent 构建的最酷的东西,毫无疑问,可能是 盖亚 3D 星图。这是一个光滑的 3D 交互式银河系模拟。数据直接从 torrent 加载到您的浏览器中。飞过我们的星系并意识到我们人类与宇宙的浩瀚相比是多么渺小,这令人敬畏。

您可以在 Torrenting The Galaxy 中阅读有关它是如何制作的,这是一篇博文,作者 Charlie Hoey 在其中解释了他是如何使用 WebGL 和 WebTorrent 构建星图的。

brave logo

我们也是 Brave 的忠实粉丝。Brave 是一款自动阻止广告和跟踪器以使网络更快、更安全的浏览器。Brave 最近添加了 torrent 支持,因此您可以 在不使用单独的应用程序的情况下查看传统 torrent。该功能由 WebTorrent 提供支持。

因此,就像大多数浏览器可以渲染 PDF 文件一样,Brave 可以渲染磁力链接和 torrent 文件。它们只是浏览器原生支持的另一种内容类型。

Brave 的联合创始人之一实际上是 Brendan Eich,他是 JavaScript 的创建者,我们用它编写了 WebTorrent,所以我们认为 Brave 选择集成 WebTorrent 非常酷。

为什么选择使用 Electron 构建 WebTorrent Desktop?

WebTorrent Desktop main window

有一个 meme 说 Electron 应用程序“臃肿”,因为它们在每个应用程序中都包含了整个 Chrome 内容模块。在某些情况下,这部分属实(Electron 应用程序安装程序通常约为 40MB,而特定于操作系统的应用程序安装程序通常约为 20MB)。

但是,在 WebTorrent Desktop 的情况下,我们使用了几乎所有 Electron 功能,以及在正常操作过程中使用了数十个 Chrome 功能。如果我们想要为每个平台从头实现这些功能,那么构建我们的应用程序将需要花费数月甚至数年时间,或者我们只能为单个平台发布。

仅举几例,我们使用了 Electron 的 Dock 集成(显示下载进度)、菜单栏集成(在后台运行)、协议处理程序注册(打开磁力链接)、节电阻止程序(在视频播放期间防止休眠)和 自动更新程序。至于 Chrome 功能,我们使用了大量功能:<video> 标签(播放多种不同的视频格式)、<track> 标签(用于字幕支持)、拖放支持和 WebRTC(在原生应用程序中使用起来并不简单)。

更不用说:我们的 torrent 引擎是用 JavaScript 编写的,并假设存在许多 Node API,尤其是用于 TCP 和 UDP 套接字支持的 require('net')require('dgram')

基本上,Electron 正是我们需要的,并且拥有我们快速发布一个可靠、完善的应用程序所需的功能。

您最喜欢的 Electron 功能是什么?

WebTorrent 库作为开源副项目已经开发了两年。我们用四个星期就完成了 WebTorrent Desktop。Electron 是我们能够如此快速地构建和发布应用程序的主要原因。

就像 Node.js 使服务器编程对一代使用 jQuery 的前端程序员开放一样,Electron 使任何熟悉 Web 或 Node.js 开发的人都可以进行原生应用程序开发。Electron 非常强大。

网站和桌面客户端是否共享代码?

是的,webtorrent npm 包 可在 Node.js、浏览器和 Electron 中使用。完全相同的代码可以在所有环境中运行——这就是 JavaScript 的魅力所在。它是当今的通用运行时。Java Applet 承诺“一次编写,随处运行”的应用程序,但由于多种原因,该愿景从未真正实现。Electron 比任何其他平台都更接近这一理想。

在构建 WebTorrent 期间您遇到过哪些挑战?

在应用程序的早期版本中,我们难以使 UI 具有良好的性能。我们将 torrent 引擎放在绘制主应用程序窗口的同一个渲染器进程中,这会导致在 torrent 引擎出现密集的 CPU 活动(例如验证从对等节点接收到的 torrent 片段)时出现缓慢。

我们通过将 torrent 引擎移动到第二个不可见的渲染器进程并通过 IPC 与其进行通信来解决此问题。这样,如果该进程短暂地使用了大量 CPU,UI 线程将不受影响。流畅的滚动和动画令人满意。

注意:我们必须将 torrent 引擎放在渲染器进程中,而不是“主”进程中,因为我们需要访问 WebRTC(它仅在渲染器中可用)。

Electron 在哪些方面应该得到改进?

我们希望看到的一件事是关于如何构建和发布生产就绪应用程序的更好文档,尤其是在代码签名和自动更新等棘手主题方面。我们不得不通过深入研究源代码并在 Twitter 上四处询问来了解最佳实践!

WebTorrent Desktop 完成了吗?如果没有,接下来会发生什么?

我们认为当前版本的 WebTorrent Desktop 非常出色,但总有改进的空间。我们目前正在努力改进抛光度、性能、字幕支持和视频编解码器支持。

如果您有兴趣参与该项目,请查看 我们的 GitHub 页面

对其他开发者可能有所帮助的 Electron 开发技巧?

WebTorrent Desktop 的贡献者之一Feross最近在 NodeConf Argentina 做了一个名为“真实的 Electron:使用 JavaScript 构建跨平台桌面应用”的演讲,其中包含了一些关于发布精致的 Electron 应用的实用技巧。如果你已经拥有一个基本可用的应用,并且正试图将其提升到更精致、更专业的水平,那么这个演讲对你尤其有用。

观看地址:

幻灯片地址:

另一位 WebTorrent 贡献者DC撰写了一份清单,列出了可以使你的应用更精致、更原生化的一些事项。它包含代码示例,涵盖了 macOS Dock 集成、拖放、桌面通知以及确保应用快速加载等方面。

每周项目:Voltra

·阅读时间:6 分钟

本周我们与Aprile ElcichPaolo Fragomeni会面,讨论了基于 Electron 的音乐播放器 Voltra。


什么是 Voltra?

Voltra是一款面向希望拥有自己音乐的人们的音乐播放器。它也是一个商店,你可以根据自己已有的音乐发现和购买新音乐。它没有广告,支持跨平台桌面和移动端。此外,它也不会监控你的行为。

voltra-artistview

谁适合使用 Voltra?

任何听音乐的人。

是什么促使你创建 Voltra?

广播一直以来都有大量的听众。它正在从无线电波迁移到互联网。现在你可以按需租用音乐——这是一种广播的复兴!由于这一趋势,许多新的产品和服务应运而生,但流媒体广播仍然让其他人控制着你的音乐以及你体验音乐的方式。

我们想要一个完全专注于你拥有的音乐的产品。一个可以让你轻松地直接从艺术家或唱片公司发现和购买新音乐的产品。

有免费版本吗?

桌面播放器完全免费。销售你的音乐也是免费的!我们不依赖广告。

由于应用是免费的,我们可能会在稍后将其开源。目前我们还没有足够的带宽来管理开源事宜。我们也对功能和未来发展方向有一些非常具体的设想。我们有一个活跃的 Beta 社区,我们非常重视他们的反馈。

你们如何盈利?

我们有高级功能!

我们的Voltra 音频档案是一款专为音乐设计的云备份服务。我们不会压缩或共享数据块。你的音乐收藏将为你进行物理备份。

对于艺术家和唱片公司,我们的专业会员提供了帮助他们接触更多相关受众的工具,例如分析和专业的艺术家网页。

是什么让 Voltra 与众不同?

设计和可用性对我们来说非常重要。我们希望为听众提供无干扰的聆听体验!市面上有一些有趣的音乐播放器和商店。但其中许多比其创建者意识到的要复杂和难以使用。我们希望让 Voltra 尽可能多的人都能使用。

我们也不会从艺术家或唱片公司那里抽成。这对我们来说是一个关键的差异化因素。这一点非常重要,因为它降低了艺术家将音乐推向市场的门槛。

你们做出了一些哪些设计和技术决策?

在设计 Voltra 时,我们考虑了原生应用和 Web 的 UI 约定,我们也思考了可以移除哪些内容。我们有一个活跃的私密 Beta 用户群,他们在过去几个月里为我们提供了宝贵的反馈。

我们发现专辑封面和摄影对于人们来说非常重要。许多播放器只是文件的列表。拥有实体专辑的一大亮点就是专辑封面,我们希望在 Voltra 桌面应用中强调这一点。

voltra-albumview

我们还确保不干扰用户的文件。我们使用文件监控,这样你就可以将文件放在任何你想要的地方,我们不会为你重命名或移动它们。我们有一个嵌入式数据库来跟踪监控目录的状态,以便即使在进程未运行时也能跟踪新内容。

在构建 Voltra 的过程中,你们遇到过哪些挑战?

我们花了大量时间专注于性能。我们最初使用了框架,但后来转向了原生 JavaScript。根据我们的经验,框架提供的通用抽象带来的好处超过了它们带来的性能损失和仪式感。

目前我们能够很好地处理非常大的收藏。大型收藏可能包含数万张图片!能够直接从渲染进程访问 Node.js 的文件系统模块,使我们能够根据 DOM 事件非常快速地延迟加载和卸载大量图片。

总的来说,setImmediaterequestIdleCallback 一直是我们执行大量处理并保持 UI 响应性的超级重要的工具。更具体地说,将 CPU 密集型任务分配到单独的进程中,确实有助于保持用户界面响应。例如,我们将实际的音频上下文移动到一个单独的进程中,并通过IPC与之通信,以避免繁忙的 UI 造成的潜在中断。

为什么选择使用 Electron 构建 Voltra?

浏览器的沙箱对我们的应用来说限制太严格了。但我们也在开发一个 Web 播放器。因此,我们能够在两种实现之间共享几乎 100% 的代码,这是一大优势。

我们实际上最初是使用 Swift 构建原生应用的。我们发现的主要问题是我们重新发明了很多东西。Web 拥有世界上最大的开源生态系统。因此,我们很快切换到了 Electron。

此外,也是最重要的一点,使用 Electron,你只需开发一次,它就可以在所有主要平台上“Just Work™”。这并非绝对保证,但为每个平台原生编码的成本绝对超过了 Electron 带来的任何其他成本。

您最喜欢的 Electron 功能是什么?

GTD!:将 Node.js 的网络栈和 Chromium 的呈现层打包在一起,是完成任务的良方。

能力:这只是 Web 技术栈,因此我们整个团队都参与了产品的实际构建。

社区:有一个组织性很强的社区,他们非常善于沟通!我们对拥有这样的支持感到非常欣慰。

Electron 在哪些方面可以改进?

我们希望看到 Electron 支持一个打包器。打包器对于 Electron 来说就像包管理器对于 Node 一样重要。用户层面上有多个打包器,每个都有其有趣的特性,但也各有其 bug。社区的共识将有助于引导贡献者投入的精力。

接下来是什么?

我们目前正在开发一个移动应用,并与艺术家和唱片公司合作,将他们的音乐添加到 Voltra 商店。嘿!如果你是一位艺术家或唱片公司,立即注册!我们计划在达到 1000 万首歌曲的目标时开放商店。

每周项目:WordPress 桌面版

·阅读时间:4 分钟

本周我们与 Automattic 的人员进行了交流,讨论了 WordPress Desktop,这是一个用于管理 WordPress 内容的开源桌面客户端。


WordPress Apps

每个人都知道 WordPress,但什么是 WordPress Desktop?

WordPress.com 桌面应用提供了一种无缝的跨平台体验,使你能够专注于内容和设计,而无需浏览器标签来分散你的注意力——或者让你可以将网站置于后台,但仍然可以访问。结合我们的浏览器支持和移动应用,你可以在任何地方,以任何有助于你完成工作的方式构建你的网站。

为什么构建一个用于管理 WordPress 网站的桌面应用?难道不能全部基于 Web 吗?

它实际上使用了与你在浏览器中访问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 桌面应用的未来发展方向是什么?

我们模型的优点在于,桌面应用可以受益于任何新的 Calypso 功能——不断改进。我们希望能够为应用添加更多功能,例如离线支持,这将使应用真正走向原生领域,以及更好的系统通知。

Automattic 的哪些团队正在开发其他 Electron 应用?

是的,在我们对桌面应用的努力之后,Simplenote 团队决定使用 Electron 为 Windows 和 Linux 构建桌面应用(Mac 客户端已经存在原生版本)。Simplenote Electron 应用 也是开源的,并且可以在 Github 上获取。

我们还有一个即将推出的使用 Electron 的树莓派集成。

如果以上任何内容引起了您的兴趣,我们都非常乐意与您联系

哪些 Electron 提示可能对其他开发者有用?

发布签名后的桌面软件的过程对我们来说相对较新,特别是对于 Windows 来说。我们为Windows 应用代码签名撰写了一篇文章,其中包括了整个过程以及我们为了正确执行它而克服的一些障碍。

每周项目:Dat

·阅读时间:7 分钟

本周的特色项目是 Dat,一个 获得资助的、开源的、用于分发数据集的去中心化工具。Dat 由一个 地理分布式团队 构建和维护,其中许多人帮助撰写了这篇文章。


A screenshot of the main view of dat-desktop, showing a few rows of shared
dats

首先,什么是 Dat?

我们希望将点对点和分布式系统中最好的部分引入数据共享。我们从科学数据共享开始,然后开始扩展到研究机构、政府、公共服务和开源团队。

另一种思考方式是将其视为类似于 Dropbox 或 BitTorrent Sync 的同步和上传应用,只是 Dat 是 开源的。我们的目标是成为一个功能强大、开源、非盈利的数据共享软件,适用于大、中、小批量数据。

要使用 dat CLI 工具,您只需键入

dat share path/to/my/folder

Dat 将创建一个链接,您可以使用该链接将该文件夹发送给其他人——没有中央服务器或第三方可以访问您的数据。与 BitTorrent 不同,它也无法嗅探谁在共享什么内容(有关更多详细信息,请参阅 Dat 论文草稿)。

现在我们知道了什么是 Dat。Dat 桌面如何融入其中?

Dat 桌面 是一种使 Dat 可供无法或不想使用命令行的人员使用的方式。您可以在自己的机器上托管多个 Dat 并通过网络提供数据。

您能分享一些很酷的用例吗?

DataRefuge + Svalbard 项目

我们正在开发一个代号为 Svalbard 项目 的项目,该项目与 DataRefuge 相关,后者是一个致力于备份有消失风险的政府气候数据的组织。Svalbard 以北极的斯瓦尔巴全球种子库命名,该库拥有一个大型的地下植物 DNA 备份库。我们的版本是一个大型的版本控制的公共科学数据集集合。一旦我们了解并信任元数据,我们就可以构建其他很酷的项目,例如 分布式志愿者数据存储网络

加州公民数据联盟

CACivicData 是一个开源档案,提供来自 CAL-ACCESS 的每日下载,CAL-ACCESS 是加州跟踪政治资金的数据库。他们进行 每日发布,这意味着在他们的 zip 文件中托管大量重复数据。我们正在努力将其数据托管为 Dat 存储库,这将减少引用特定版本或更新到较新版本所需的操作和带宽。

Electron 更新

这个还没有确定,但我们认为一个有趣的用例是将编译后的 Electron 应用放入 Dat 存储库中,然后使用 Electron 中的 Dat 客户端拉取已构建应用二进制文件的最新增量,以节省下载时间,同时减少服务器的带宽成本。

谁应该使用 Dat 桌面?

任何想要通过点对点网络共享和更新数据的人。数据科学家、开放数据黑客、研究人员、开发人员。如果任何人有我们尚未想到的酷炫用例,我们非常乐意接受反馈。您可以访问我们的 Gitter 聊天室 并向我们提出任何问题!

Dat 和 Dat 桌面的未来发展方向是什么?

用户帐户和元数据发布。我们正在开发一个将在 datproject.org 上部署的 Dat 注册表 Web 应用,它基本上将成为“数据集的 NPM”,但需要注意的是,我们只是一个元数据目录,数据可以存储在网络上的任何位置(与 NPM 或 GitHub 不同,在 NPM 或 GitHub 上所有数据都集中托管,因为源代码足够小,可以全部放入一个系统中)。由于许多数据集都很大,我们需要一个联合注册表(类似于 BitTorrent 跟踪器的工作方式)。我们希望通过 Dat 桌面,让人们能够轻松查找或发布数据集,使数据共享过程更加顺畅。

另一个功能是多作者/协作文件夹。我们计划进行协作工作流,可能包括分支,类似于 git,但它是围绕数据集协作设计的。但我们现在仍在努力提高整体稳定性和标准化协议!

为什么选择使用 Electron 构建 Dat 桌面?

Dat 是使用 Node.js 构建的,因此对于我们的集成来说,它是自然之选。除此之外,我们的用户使用各种机器,因为科学家、研究人员和政府官员可能被迫为其机构使用某些设置——这意味着我们需要能够同时支持 Windows 和 Linux 以及 Mac。Dat 桌面可以轻松做到这一点。

在构建 Dat 和 Dat 桌面时遇到了哪些挑战?

弄清楚人们想要什么。我们从表格数据集开始,但我们意识到解决这个问题有点复杂,而且大多数人都不使用数据库。因此,在项目进行到一半时,我们从头开始重新设计了所有内容以使用文件系统,并且没有回头。

我们还遇到了一些通用的 Electron 基础设施问题,包括

  • 遥测——如何捕获匿名使用统计信息
  • 更新——设置自动更新有点零碎且像魔术一样
  • 发布——XCode 签名、在 Travis 上构建发布版、进行 Beta 测试,所有这些都是挑战。

我们还在 Dat 桌面的“前端”代码中使用了 Browserify 和一些很酷的 Browserify 转换(这有点奇怪,因为我们仍然打包,即使我们有原生的 require——但这是因为我们想要这些转换)。为了更好地管理 CSS,我们从 Sass 切换到使用 sheetify。它极大地帮助我们模块化了 CSS,并使将 UI 移动到具有共享依赖项的面向组件的架构变得更加容易。例如,dat-colors 包含我们所有的颜色,并在所有项目之间共享。

我们一直以来都是标准和最小抽象的忠实拥护者。我们的整个界面都是使用普通的DOM节点构建的,只用到几个辅助库。我们已经开始将其中一些组件迁移到base-elements,这是一个低级可复用组件库。和我们的大多数技术一样,我们会不断迭代它直到我们把它做好,但作为一个团队,我们感觉我们正朝着正确的方向前进。

Electron 在哪些方面应该得到改进?

我们认为最大的痛点是原生模块。不得不使用npm为Electron重建你的模块增加了工作流程的复杂性。我们的团队开发了一个名为prebuild的模块,它处理预构建的二进制文件,这对Node来说效果很好,但Electron工作流程在安装后仍然需要一个自定义步骤,通常是npm run rebuild。这很烦人。为了解决这个问题,我们最近切换到了一种策略,即在npm tarball中捆绑所有平台的所有已编译二进制版本。这意味着tarball会变得更大(尽管这可以通过.so文件——共享库来优化),这种方法避免了运行安装后脚本,也完全避免了npm run rebuild模式。这意味着npm install第一次就能为Electron做正确的事情。

您最喜欢的 Electron 功能是什么?

这些API看起来经过了深思熟虑,相对稳定,并且在保持与上游Node版本更新方面做得相当不错,我们别无所求了!

哪些 Electron 提示可能对其他开发者有用?

如果你使用原生模块,请尝试一下prebuild

关注Dat开发的最佳方式是什么?

在Twitter上关注@dat_project,或订阅我们的电子邮件通讯

每周项目:Ghost

·阅读时间:5 分钟

本周我们与Felix Rieseberg进行了交谈,他是Slack的桌面工程师,也是Ghost Desktop的维护者,后者是Ghost发布平台的Electron客户端。


Ghost Desktop Screenshot

什么是Ghost?

Ghost是一个完全开源的、可定制的平台,用于构建和运行现代在线出版物。我们为从Zappos到Sky News的博客、杂志和记者提供支持。

它与其他发布平台有什么不同?

Ghost成立于2013年4月,在一次非常成功的Kickstarter众筹活动后,旨在创建一个专注于专业出版的新平台。我们的使命是为全球独立记者和作家创建最好的开源工具,并对在线媒体的未来产生真正的影响。它提供了一种更简单、更专注的体验:我们的编辑器专为提供最佳的写作体验而设计。

与经典的WordPress相比,它提供了更简单、更流畅的体验——它更易于设置和维护,开箱即用地包含所有重要功能,并且速度快得多。与其他在线平台相比,Ghost让作家完全拥有和控制自己的内容,允许完全自定义,并使作者能够围绕自己的出版物建立业务。

Ghost是一家盈利公司吗?

这一点对我们来说很重要:Ghost是一个独立的非营利组织。我们构建发布工具用于现代新闻和博客,因为我们认为言论自由很重要。我们的软件是在免费开源许可证下发布的,我们的商业模式是完全透明的,我们的法律结构意味着我们赚取的100%的资金都将重新投入到改进Ghost中。

什么是Ghost Desktop?

Ghost Desktop允许作者同时管理多个博客——并专注于写作。一些简单的操作,比如常见的写作快捷键,在浏览器中无法实现,但在我们的桌面应用程序中可以使用。它允许其他应用程序通过深度链接直接与博客通信

什么是Ghost for Journalism?

今年,我们非常高兴地将我们整个由10人组成的全职Ghost团队投入到帮助发展三个独立出版物,并为他们的工作提供45,000美元的资源。我们将其称为Ghost for Journalism

我们已经构建了Ghost作为网络上独立出版商的下一个伟大平台大约三年半了,现在我们已经到达了一个非常有趣的拐点。我们开始这段旅程是为了创建一个简单、设计良好的博客平台,几乎任何人都可以使用它。这始终是第一步。

从长远来看,我们希望Ghost成为世界上最佳新闻的绝佳平台,这意味着我们需要构建功能来吸引这些人。今年,我们做出了一个非常有意识的决定,专注于此。

为什么选择用Electron构建Ghost Desktop?

Ghost在后端和前端都使用JavaScript和Node.js,因此能够利用相同技术和技能集使我们的团队能够更快地行动、构建更多内容,并最终提供更好的体验。此外,能够在macOS、Windows和Linux版本的应用程序之间共享超过95%的代码,使我们能够专注于构建出色的核心用户体验,而无需为每个平台维护一个代码库。

在构建Ghost Desktop的过程中,您遇到过哪些挑战?

拼写检查可能仍然是提供的最困难的服务之一——我们可以轻松地利用众多在线服务中的一个,但在保护用户隐私和自主权的同时,正确地对多种语言的文本进行拼写检查并非易事。

Electron 在哪些方面应该得到改进?

我们希望看到Electron为其应用程序带来操作系统的原生拼写检查功能。我们梦想着一个世界,在这个世界中,<input>字段接收与NSTextView相同的服务,但我们也清楚地知道这有多么困难。

您最喜欢的 Electron 功能是什么?

JavaScript以其庞大的生态系统而闻名,涉及无数的工具和框架——但它带给我们的便利性却难以言喻。使用Electron构建应用程序仅比构建Web应用程序稍微困难一点,这是一项了不起的壮举。

Ghost完成了么?如果没有,接下来是什么?

Ghost Desktop也是一个持续进行的项目——我们离完成还有很远。我们已经讨论了很长时间要为用户带来完整的离线模式,并且我们已经非常接近了。其他值得注意的工作领域是扩展和与其他文本编辑应用程序(如Word或Atom)的集成,最终允许用户使用他们最喜欢的工具撰写帖子。总的来说,一旦我们发布了离线模式功能,我们正在寻求与操作系统的更深入集成。如果这对你来说很有趣,请加入我们

您最喜欢的Electron应用程序有哪些?

我非常喜欢KapFelonyVisual Studio Code

👻

每周项目:Beaker 浏览器

·阅读时间:4 分钟

本周我们与Paul Frazee进行了交流,他是Beaker Browser的创建者。Beaker是一款实验性的点对点Web浏览器,它使用Dat协议从用户的设备上托管网站。


什么是Beaker,你为什么创建它?

Beaker是一个参与式浏览器。它是为独立黑客设计的浏览器。

Web是闭源的。如果你想影响社交媒体的工作方式,你必须在Facebook或Twitter工作。对于搜索,则是谷歌。控制权掌握在公司手中,而不是用户自己手中。

使用Beaker,我们有了一个新的Web协议:去中心化档案传输。“Dat”。它按需免费创建网站,然后从设备上共享它们。无需服务器。这就是我们的创新。

Beakers Protocols

当你在Beaker中访问Dat网站时,你会下载文件。该网站永远属于你。你可以保存它、分叉它、修改它,并免费分享你的新版本。这一切都是开源的。

所以这就是重点:我们正在为开源网站制作浏览器。我们希望它成为社会黑客的工具包。

谁应该使用Beaker?

黑客。修改者。创意人士。喜欢捣鼓的人。

如何创建一个使用Dat的新项目?

我们有一个名为bkr的命令行工具,有点像git + npm。以下是创建网站的方法

$ cd ~/my-site
$ bkr init
$ echo "Hello, world!" > index.html
$ bkr publish

以下是分叉网站的方法

$ bkr fork dat://0ff7d4c7644d0aa19914247dc5dbf502d6a02ea89a5145e7b178d57db00504cd/ ~/my-fork
$ cd ~/my-fork
$ echo "My fork has no regard for the previous index.html!" > index.html
$ bkr publish

然后这些网站将从你的浏览器中托管。它有点像BitTorrent;你在P2P网格中共享这些网站。

如果你想要一个GUI,我们在浏览器中内置了一些基本工具,但我们正在将这些工具推送到用户空间。这一切都将是可修改的用户应用程序。

为什么选择用 Electron 构建 Beaker?

对于这个项目来说,选择 Electron 是很自然的。如果我自己去修改 Chrome 的代码,我现在就得写 C++ 了!没有人想那样做。我熟悉 Web 技术栈,并且可以用它快速开发。这根本无需多想。

事实上,我不确定如果没有 Electron 我能否完成这一切。它是一个很棒的软件。

在构建 Beaker 过程中你遇到过哪些挑战?

有一半的时间都在摸索工具,并弄清楚我能做到什么程度。

构建浏览器本身相当容易。Electron 几乎就是一个构建浏览器的工具包。……除了浏览器标签页;我花了很长时间才搞定。我最终还是不得不去学习 SVG。它看起来好多了,但我花了 3 或 4 次迭代才搞定。

Electron 在哪些方面应该得到改进?

如果我能够将开发者工具停靠在 webview 内就好了。

Beaker 的下一步计划是什么?

为 Dat 站点提供安全的 DNS 名称。一种可社交配置的 URL 方案,称为 "应用方案"。更多的 Dat API。

对于那些有兴趣为该项目做出贡献的人,Beaker 在哪些方面需要帮助?

我们有很多未解决的问题。不要害怕联系我。在 freenode 上的 #beakerbrowser 频道。我们有一个 贡献者页面,我们会把你加到上面。如果你来奥斯汀,我请你喝啤酒。

哪些 Electron 提示可能对其他开发者有用?

  1. 使用现有的构建工具。相信我,你不想自己去解决这些问题。使用 electron-builder。使用样板库。
  2. 如果你需要在 Electron 仓库中提交问题,请尽力使其易于复现。这样你就能更快地得到回复,团队也会感激你。更好的是,尝试自己修复它。了解内部工作原理实际上非常有趣。
  3. 至少通读一遍所有指南和高级文档。
  4. 不要构建浏览器,这是一个饱和的市场。

每周项目:Kap

·阅读时间:7 分钟

Electron 社区正在快速发展,人们正在以前所未有的速度创建强大的新应用和工具。为了庆祝这种创造力并让社区了解一些新的项目,我们决定开始一个每周发布的博客系列,重点介绍值得关注的与 Electron 相关的项目。


这篇文章是这个系列的第一篇,介绍了 Kap,一个由 Wulkano 构建的开源屏幕录制应用,Wulkano 是一支由自由设计师和开发者组成的地理分布式团队。

Kap Screencast

Kap 是什么?

Kap 是一个开源屏幕录制软件,主要面向设计师和开发者,方便他们轻松捕捉工作成果。人们用它来分享动画原型、记录 bug、创建有趣的 GIF 以及其他各种用途。

我们看到各个年龄段和背景的人们在教育环境、屏幕录制、教程等场景中使用它……不胜枚举。甚至用于创建生产资产!我们完全被我们这个小小的副项目受到的欢迎程度所震撼。

为什么创建它?

这是一个非常好的问题,并不是说市场上缺少屏幕录制软件!我们觉得现有的替代方案要么过于复杂,要么过于昂贵,要么过于有限。没有一个能完全满足我们的日常需求。我们也认为,当我们使用的工具是开源的时候,这很棒,这样每个人都可以帮助塑造它们。 构建 Kap 最终也和我们没有做的事情一样重要。细节决定成败,一系列小的改进构成了我们想要使用的工具的轮廓。

然而,也许最重要的是,Kap 已经成为我们放下烦恼,享受为我们自己和像我们一样的人构建一些东西的地方。创造一个让你可以自由表达、尝试新事物和享受你的手艺的环境非常重要。没有要求,没有压力,没有期望。设计师和开发者应该做副项目吗?是的,他们应该。

为什么选择用 Electron 构建 Kap?

有很多原因

  • Web 技术
  • 团队中的大多数成员都是 Web 开发者
  • 我们投入了 JavaScript
  • 它为更多的人参与贡献打开了大门
  • Electron 本身是开源的
  • node_modules 的强大功能和易于维护的模块化
  • 跨平台的可能性

我们认为应用的未来在浏览器中,但我们还没有完全到达那里。Electron 是通往那个未来的重要一步。它不仅使应用本身更容易访问,而且也使构建它们的代码更容易访问。一个有趣的想法是想象一个未来,操作系统是一个浏览器,而标签页本质上是 Electron 应用。

此外,作为主要的 Web 开发者,我们非常喜欢 JavaScript 的同构特性,即你可以在客户端、服务器端,现在还可以桌面端运行 JS。使用 Web 技术(HTML、CSS 和 JS),许多事情比原生开发简单得多:更快的原型设计、更少的代码、flexbox > auto-layout(macOS/iOS)。

在构建 Kap 过程中你遇到过哪些挑战?

使用 Electron 提供的录制屏幕的资源是最大的挑战。它们的表现 simply 无法满足我们的需求,在我们看来,这将导致项目的失败。虽然这并非 Electron 本身的问题,但原生开发和使用 Web 技术构建桌面应用之间仍然存在差距。

我们花了大量时间试图解决 getUserMedia API 的性能问题,这个问题源于 Chromium。我们在开始创建 Kap 时的一个主要目标是使用 Web 技术构建整个应用。在尝试了所有可以解决问题的方法(最低要求是在 Retina 屏幕上达到 30 FPS)之后,我们最终不得不寻找其他解决方案。

我在仓库中看到了一些 Swift 代码。这是怎么回事?

被迫寻找 getUserMedia 的替代方案,我们开始尝试使用 ffmpeg。除了它是音频和视频转换的最佳工具之一之外,它还具有在几乎所有操作系统上录制屏幕的功能,我们能够录制清晰的视频,满足我们在 Retina 屏幕上达到 30 FPS 的最低要求。问题?性能是 "😩",CPU 使用率飙升。所以我们又回到了起点,讨论了我们的选择,并意识到我们必须做出妥协。这导致了 Aperture 的诞生,我们自己用 Swift 编写的 macOS 屏幕录制库。

Electron 在哪些方面应该得到改进?

我们都知道 Electron 应用可能会消耗大量 RAM,但同样,这确实是 Chromium 的特性。这是其工作方式的一部分,它实际上取决于你正在运行什么,例如 Kap 和 Hyper 通常使用不到 100MB 的内存。

我们认为改进的最大领域之一是有效载荷,尤其是 Electron 如何分发 Chromium。一个想法是拥有一个共享的 Electron 核心,并让应用安装程序检查它是否已存在于系统中。

创建跨平台的 Electron 应用体验可能会更好。目前,不同平台之间存在太多不一致性、特定于平台的 API 和缺少的功能,这会导致你的代码库充斥着 if-else 语句。例如,macOS 上仅支持 vibrancy,macOS 和 Windows 上的自动更新器工作方式不同,Linux 上甚至不支持。Linux 上的透明度是随机的,通常是不可用的。

调用原生系统 API 也应该更容易。Electron 带有一套非常好的 API,但有时你需要它未提供的功能。创建原生 Node.js 插件是一种选择,但使用起来很痛苦。理想情况下,Electron 会自带一个优秀的 FFI API,例如 fastcall。这将使我们能够用 JavaScript 编写 Swift 部分。

您最喜欢的 Electron 功能是什么?

我们最喜欢的是,任何了解 Web 开发的人都可以构建和贡献跨平台的原生体验。更不用说在它上面开发的轻松和快乐、优秀的文档和蓬勃发展的生态系统了。

从前端的角度来看,构建 Kap 的感觉与使用浏览器 API 构建一个简单的网站没有什么区别。Electron 在使应用开发类似于(基本上与)Web 开发方面做得非常出色。事实上,它非常简单,我们不需要框架或类似工具来帮助我们,只需要干净且模块化的 JS 和 CSS 就足够了。

我们也是构建 Electron 的团队的忠实粉丝,他们充满奉献精神和支持,并且维护着一个活跃而友好的社区。向你们所有人致敬!

Kap 的下一步计划是什么?

我们的下一步是审查应用,为 2.0.0 里程碑做准备,其中包括使用 React 重写,以及对插件的支持,允许开发者扩展 Kap 的功能!我们邀请大家关注该项目并在我们的 GitHub 仓库 中做出贡献。我们一直在倾听,并希望听到尽可能多的人的声音, 告诉我们如何才能使 Kap 成为对你来说最好的工具

Wulkano 是什么?

Wulkano 是一家设计工作室和数字集体,一个由远程技术人员组成的团队,他们喜欢一起在客户项目和自己的项目上工作。我们是一个分布式但紧密联系的群体,来自不同的地方和背景,分享知识、想法、经验,但最重要的是在我们的虚拟办公室(恰好是基于 Electron 的 Slack!)中分享有趣的 GIF 和表情包。

哪些 Electron 提示可能对其他开发者有用?

利用并参与到优秀的 社区 中,查看 Awesome Electron,查看 示例 并使用优秀的 文档

2016 年 8 月:新应用

·

阅读时间:3 分钟

以下是 8 月份新增到网站的一些 Electron 应用。


网站通过社区的 拉取请求 更新了新的 应用聚会。你可以 关注代码库 以获取新添加内容的通知,或者如果你不感兴趣 所有 网站的更改,可以订阅 博客 RSS 订阅

如果你开发了一个 Electron 应用或举办了一个聚会,请提交一个 拉取请求 将其添加到网站,它将出现在下一次汇总中。

新增应用

Code RPGifyRPG 风格的编码应用程序
PamFax一个用于发送和接收传真的跨平台应用
BlankUpMarkdown 编辑器,清晰度 +1
Rambox一个免费且开源的消息和电子邮件应用,将常见的 Web 应用整合到一个应用中
Gordie您收藏卡牌的最佳应用
Ionic Creator更快地构建出色的移动应用
TwitchAlerts使用漂亮的提醒和通知让您的观众满意
Museeks一个简单、干净且跨平台的音乐播放器
SeaPig一个 Markdown 到 HTML 的转换器
GroupMe非官方 GroupMe 应用
Moeditor您的多功能 Markdown 编辑器
SoundnodeSoundnode 应用是桌面版的 Soundcloud
QMUI WebQMUI Web Desktop 是一个用于管理基于 QMUI Web 框架的项目的应用程序
Svgsus组织、清理和转换您的 SVG
Ramme非官方的 Instagram 桌面应用
InsomniaREST API 客户端
Correo适用于 Windows、macOS 和 Linux 的菜单栏/任务栏 Gmail 应用
KongDashKong Admin API 的桌面客户端
翻译编辑器用于 INTL ICU 消息的翻译文件编辑器(参见 formatjsio)
5EClient5EPlay CSGO 客户端
Theme Juice轻松进行本地 WordPress 开发