开发者社区> 问答> 正文

如何深入理解,并高效使用 Electron?

作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和 Node.js 之上的 —— 二位分工明确,一个负责界面,一个负责背后的逻辑。那么我们如何深入理解,并高效使用 Electron?

展开
收起
茶什i 2020-01-09 18:41:02 2871 0
1 条回答
写回答
取消 提交回答
  • 作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium 和 Node.js 之上的 —— 二位分工明确,一个负责界面,一个负责背后的逻辑。也不难理解,为什么 Electron 能开发跨平台的桌面应用 了。

    但是,不同系统间还是会有很大的差异,需要相应地做一些额外处理,使得打包出的应用在不同系统下都能正常运转。但相比于 80% 都能完全复用的代码,这些成本几乎可以忽略不计。

    所以,对 Web 前端开发者来说,用 Electron 开发多平台客户端的成本非常低。

    而且,Electron 是基于 Node.js 的,这就意味着,Node 这个大生态下的模块,Electron 都可以用。同时,跨平台也让 Electron 可同时开发 Web 应用和桌面应用,无论是 UI,还是代码,很多资源都可以共享,大幅减少了开发者的工作量。

    作为目前非常热门的技术,Electron 在 GitHub 上已经有 7w+ star 了,很多应用都是用 Electron 开发的,比如字节跳动的飞书、Slack、VS Code、Atom、Skype、WhatsApp、支付宝小程序 IDE(蚂蚁开发者工具)等。

    image.png

    与此同时,包括蚂蚁金服、小米、华为、GitHub、微软在内的很多大厂都在使用 Electron。因此,学好 Electron 是你日后跳槽加薪的加分项,毕竟,大厂都在用。

    如何深入理解,并高效使用 Electron?

    用 Electron 写一个简单的桌面端应用并不难,有一定 JavaScript 基础的话,可能只要半小时。但要做一个项目,就没那么容易了:

    第一,涉及技能栈众多。我们不仅要了解 Electron、客户端知识,还要在客户端中使用 Node.js,甚至是集成 C++、Rust 等三方库,涉及多进程等概念,对基础薄弱的前端工程师来说有些难度。

    第二,基建缺乏,工程化建设难以落地。Electron 基建在大部分公司都比较缺乏,依赖 Web、手机客户端的基建无法满足 Electron 业务,比如在 Mac 端打包可以依赖 iOS 持续集成,但 Windows 端则不行,类似场景非常之多。

    第三,欠缺充分利用好 Electron 的能力。在开发 Electron 应用时,很多 Web 前端工程师会习惯性地局限于浏览器开发思维中,做出的交互和体验与 Web 应用一样,不知如何释放自己的想象力,并发挥客户端的作用。

    其实,以上这些问题,我都遇到过。我所负责的美团大象,早在 2016 年就开始用 Electron 技术构建桌面端了,是美团最早一批用 Electron 做大型项目的团队。

    那会儿,我们从 0 开始探索 Electron 的工程化建设,从组内小 Demo 到全公司的桌面客户端,搭建了 Electron 更新、崩溃治理、异常监控等多项基础服务。凭借这些实战经验,我帮很多兄弟团队实现了 Electron 技术从无到有的落地过程。

    当然,在这期间,我们也遇到了很多问题。在解决问题的过程中,我经常思考:如何让 Web 前端同学 在工程中快速开发、最大程度地发挥 Electron 的作用,为业务带来更好的体验,创造更大的价值。

    2020-01-10 15:19:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Flutter企业级应用开发实战手册 立即下载
ReactNative实战优化之路 立即下载
混合应用平台构建实战 立即下载