AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

Qt|QListWidget实现自定义Item效果

中国好公民st

c++ qt 10月月更

微信朋友圈的高性能复杂度分析

乖乖IvyShine

java之字节型文件流笔记

魏铁锤

java 编程 10月月更

一天梳理React面试高频知识点

beifeng1996

React

华为云从入门到实战 | 云关系数据库备份、恢复及存储容灾服务

TiAmo

华为 华为云 云开发 10月月更

跟着卷卷龙一起学Camera--延迟03

卷卷龙

ISP camera 10月月更

Java核心之多态

魏铁锤

java 编程 10月月更

大数据ELK(二十八):制作Dashboard

Lansonli

10月月更

模块二作业:微信朋友圈复杂度分析

愚人夜行者

$nextTick的原理是什么-vue面试进阶

bb_xiaxia1998

Vue

架构实战训练营模块 2 作业

Geek_b35d92

微信朋友圈的高性能复杂度分析

Louis

CorelDRAW 2019 软件应用项目(三)

张立梵

设计师 CorelDRAW 2022 10月月更

Java编程之方法重写

魏铁锤

后端 java 编程 10月月更

Vue是怎样监听数组的变化的?

bb_xiaxia1998

Vue

挑战30天学完Python:Day5 数据类型 - 列表list

MegaQi

Python 挑战30天学完Python 10月月更

架构实战训练营模块 2 作业

Geek_b35d92

Docker Swarm从部署到基本操作

程序员欣宸

Docker Docker Swarm 10月月更

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

React

渲染农场是什么_云渲染农场优缺点有哪些?

Renderbus瑞云渲染农场

云渲染 云渲染农场 渲染农场 Renderbus瑞云渲染

TLS加密远程连接Docker

程序员欣宸

Docker 容器安全 10月月更

React-hooks面试考察知识点汇总

beifeng1996

React

架构实战训练营模块 2 作业

atcgnu

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

美团前端vue面试题(边面边更)

bb_xiaxia1998

Vue

跟着卷卷龙一起学Camera--延迟01

卷卷龙

ISP camera 10月月更

跟着卷卷龙一起学Camera--延迟02

卷卷龙

ISP camera 10月月更

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

深入理解 Go 语言的一等函数及其应用

宇宙之一粟

函数 Go 语言 10月月更 匿名函数

腾讯前端高频面试题合集

loveX001

JavaScript

面试官:深度不够,建议回去深挖

小傅哥

Java 程序员 面试 小傅哥 招聘

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