写点什么

GitHub 使用 Electron 重写桌面客户端

  • 2017-05-18
  • 本文字数:1212 字

    阅读完需:约 4 分钟

GitHub 客户端应用开发总监 Phil Haack宣布,GitHub 使用Electron 重写了macOS 和Windows 的客户端。 GitHub 桌面客户端 Beta 版本还为最新 Beta 版本的 Atom 提供了新的 Git 和 GitHub 集成

负责重写应用的团队解释说,重新构建 GitHub 桌面客户端的主要原因是为了减少支持多平台开发所耗费的成本。实际上,分别为 Windows 和 macOS 开发原生应用要求使用两种不同的技术栈,也就是说,每个功能特性都需要重复实现、调试和维护。如果需要支持第三个平台,如 Linux,那么还需要投入额外的精力。

事实证明,为多个平台构建原生应用不具有伸缩性。

GitHub 团队快速地转向使用 Web 技术来开发他们的应用,比如 Electron 和 TypeScript。使用 Web 技术带来了一些好处,代码的构建运行时间从几分钟降到了几秒钟,代码变更会适时地被重新加载,还有可能实现实时的设计调整。不过,使用 Web 技术开发桌面应用也存在一些局限。

Web 并非完美的平台,不过原生应用也不是。使用 Electron 重写原生应用只不过是在不同的权衡点之间进行了交换。

开发人员解释说,Electron 为他们提供了平台相关的 API,通过扩展这些 API,他们获得了更多的灵活性,这也就是 Electron 给他们带来的好处之一。

经过一年的开发,基于 Electron 的客户端现在可以下载使用,也可以从GitHub 上拉取分支

InfoQ 对 Phil Haack 进行了访谈,以便更多地了解他们在 Electron 上的进展。

Electron 在诞生之后就成为很多著名应用程序的开发平台。你是怎么看待 Electron 在如今的跨平台应用开发解决方案中所扮演的角色?

Phil Haack: Electron 借助 Web 这个成功的平台,与 Web 在相同的方向上行进,只是它是从相反的端点出发。事实上,用户可以利用 Web 技术来开发桌面应用正是 Electron 的一个成功之处。

最近人们在 Reddit 上热议 Electron 是“桌面版的 Flash”,这要归因于它的内存使用和性能。Electron 的哪些关键因素会让它成为重要的技术?

Haack:刚才我已经说过,Electron 借助了 Web 技术平台。来自行业巨头,如 Google、Microsoft、Facebook、Slack、GitHub 等公司在 Chromium、Node、JavaScript、HTML、CSS 等技术上持续投入,这些技术也在持续改进,Electron 也因此从中获利。这些工具提供了很强大的功能,它们的发展和进步就是 Electron 的关键所在。我们也有很多有关如何改进 Electron 的讨论。

你是如何看待 Electron 在移动方面的可能性?你认为我们会发展到那一步吗?

Haack:社区有反馈说,他们希望能够发展到这一步。不过目前有 90% 的代码是基于 Chromium 的,我们与 Chromium 和 Node.js 绑在了一起,这就排除了 iOS,同时也让与 Android 集成也变得很困难。不过,这也为实现一个具有兼容性的 API 提供了机会。

GitHub 同时为 Atom 1.18 Beta 发布了一个新的 Git 和 GitHub 集成方案,开发者可以在 Atom 里管理他们的 Git 工作流,不需要在命令行或其他工具之间进行切换。

查看英文原文: GitHub Rewrites its Desktop Client Using Electron

2017-05-18 19:004688
用户头像

发布了 322 篇内容, 共 139.3 次阅读, 收获喜欢 145 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | postman进行发送请求

测吧(北京)科技有限公司

测试

【深度挖掘 RocketMQ底层源码】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-上)

洛神灬殇

Apache RocketMQ 2月日更 运行原理 拉取模式

软件测试 | 常见接口协议

测吧(北京)科技有限公司

测试

MathType7.0简体中文汉化版下载

茶色酒

MathType2023

LeetCode题解:938. 二叉搜索树的范围和,BFS,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

「 Java基础-Lambda 」试试Lambda表达式?通俗易懂得嘞!

小刘学编程

Lambda 代码优化 java 高级编程

浅谈新媒体运营岗位的发展前景

石头IT视角

软件测试 | 接口测试的价值与体系

测吧(北京)科技有限公司

测试

软件测试 | 使用CURL发送请求

测吧(北京)科技有限公司

测试

携手同心,三阳开泰:读懂2023华为中国政企合作伙伴政策

脑极体

华为

得物热点探测技术架构设计与实践

得物技术

热点

2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息和总帧数。

福大大架构师每日一题

golang ffmpeg 福大大

日日顺于贞超:供应链数字化要做到有数、有路、有人

联营汇聚

【立哥】【每日一个小知识】你所知道的牛郎织女故事是真的吗?

Lee Chen

软件测试 | 常见代理工具

测吧(北京)科技有限公司

测试

软件测试 | HTTP和HTTPS抓包分析

测吧(北京)科技有限公司

测试

JavaScript 中深拷贝方法structuredClone

devpoint

JavaScript 深拷贝与浅拷贝 lodash structuredClone

CorelDRAW2023软件新功能抢先看

茶色酒

CorelDraw2023

【kafka专栏】kafka专栏目录整理(建议收藏不迷路)

石臻臻的杂货铺

kafka

定了!Python3.7,今年停止更新!

程序员晚枫

Python 软件 下载 版本

软件测试 | GET和POST区别与实战

测吧(北京)科技有限公司

测试

软件测试 | Mock是什么?

测吧(北京)科技有限公司

测试

OSS Compass开源指南针发布,我国首个开源生态健康评估平台正式诞生

Geek_2d6073

SaaS+、SaaS的机遇都存在,但不要试图找最短成功路径,该犯的错都得走一遍

B Impact

流处理计算平台 StreamPark 2.0.0 重磅发布,首个 Apache 版本终于来了

ApacheStreamPark

flink spark 流处理 StreamPark

得物容器SRE探索与实践

得物技术

容器

架构训练营一作业

null

软件测试 | 什么是HTTP

测吧(北京)科技有限公司

测试

软件测试 | 抓包分析TCP

测吧(北京)科技有限公司

测试

软件测试 | session、cookie和token的区别是什么?

测吧(北京)科技有限公司

测试

易观千帆 | 2023年1月银行APP月活跃用户规模盘点

易观分析

金融 银行 手机银行

GitHub使用Electron重写桌面客户端_Windows_Sergio De Simone_InfoQ精选文章