写点什么

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:004820
用户头像

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

关注

评论

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

三分钟快速详细安装CentOS

程序员的时光

Linux centos 程序员 28天写作

生产环境全链路压测建设历程 27:FAQ 之 业务模型相关

数列科技杨德华

28天写作

为什么泡泡玛特是一个好生意

lidaobing

28天写作 泡泡玛特

微服务该如何拆分?

xcbeyond

微服务 方法论 架构设计原则 28天写作

【Mysql-InnoDB 系列】锁

程序员架构进阶

MySQL innodb 28天写作

【JS】防止浏览器控制台被直接查看(2)

德育处主任

JavaScript chrome 大前端 js 28天写作

kafka如何做到无消息丢失配置

topsion

kafka 消息不丢失

[2/28]保障业务转化为开发需求

L3C老司机

甲方日常 83

句子

工作 随笔杂谈 日常

自动驾驶到底应该怎么实现?(28天写作 Day4/28)

mtfelix

自动驾驶 28天写作 智能电动车

hive JOIN操作分析

梧桐

没有调查,就没有发言权 Jan 12, 2021

王泰

28天写作

SpringCloud 从入门到精通 06--- Eureka服务端

Felix

基于网络开放可编程技术构建新一代网络设备运管平台

华为云开发者联盟

运维 网络 运维自动化 金融

SpringCloud 从入门到精通 07--- 订单服务和支付服务注册进Eureka

Felix

【薪火计划】11 - 学习总结

AR7

管理 28天写作

在时间的缝隙里打了个盹「幻想短篇 4/28」

道伟

28天写作

新官上任,如何开始你的管理工作(下)

一笑

团队管理 管理 28天写作

技术干货!HDFS读写原理和代码简单实现

华为云开发者联盟

hadoop hdfs 架构 MRS 元数据

28 天带你玩转 Kubernetes-- 第四天(资源介绍)

Java全栈封神

Kubernetes k8s 28天写作 k8s教程 k8s资源

作为社畜,如何做好精力管理

熊斌

精力管理 28天写作

外行话之什么是好的游戏角色

Justin

28天写作 外行话 游戏设计

关于选择的复盘(part 1)

.

28天写作

影响DevOps和DevSecOps采用的7种趋势

啸天

安全 DevSecOps 应用安全

技术人小故事-团队愿景篇-第4段

Ian哥

28天写作

28天瞎写的第二百一五天:为了看片儿折腾 Linux 的故事

树上

28天写作

HDFS SHELL详解(5)

罗小龙

hadoop 28天写作 hdfs shell

Elasticsearch 核心概念

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

距离Java开发者玩转 Serverless,到底还有多远?

博文视点Broadview

我是如何在短期内快速掌握Dubbo的原理和源码的(纯干货)?

冰河

分布式 微服务 dubbo 系统架构 服务治理

做视频最大的困难是什么?为什么要保持日更? | 视频号 28 天 (05)

赵新龙

28天写作

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