Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sunny-117/electron

《Electron桌面客户端应用程序开发入门到原理》专栏
https://github.com/sunny-117/electron

electron juejin

Last synced: 2 days ago
JSON representation

《Electron桌面客户端应用程序开发入门到原理》专栏

Awesome Lists containing this project

README

        

# Electron

本项目是 [《Electron桌面客户端应用程序开发入门到原理》专栏](https://juejin.cn/column/7400672360453259264) 源码+文章

## 大纲

**第一章 Electron快速入门**

该章节是整个 Electron 课程的第一个篇章,主要聚焦于 Electron 基础相关的知识:

- Electron 基本介绍
- 进程和线程的概念
- 主进程和渲染进程
- 两者之间的通信
- 渲染进程之间的通信
- 窗口相关的知识
- 基础的窗口知识
- 多窗口的管理
- 应用常见的设置
- 快捷键
- 应用级别快捷键
- 全局快捷键
- 托盘图标
- 剪切板
- 系统通知
- 系统对话框
- 菜单
- 自定义菜单
- 右键菜单
- 数据持久化方案
- 使用浏览器能力做持久化
- 使用Node.js能力做持久化
- 生命周期
- 预加载脚本和上下文隔离

**第二章 实战案例:构建Markdown编辑器**

本章会从原理着手:

- Markdown原理
- 抽象语法树
- 常见的 Markdown 实现原理
- 使用 Electron 构建 Markdown 编辑器
- 打开一个 Markdown 文档
- 保存文档
- 拖动一个文档到编辑器
- ...

**第三章 实战案例:构建一个音乐播放器**

同样是通过不断迭代的方式,一步一步完善音乐播放器。

- 原生网页版音乐播放器
- AmplitudeJS迭代音乐播放器
- Electron版本音乐播放器
- Vite、Vue、Electron搭建一个项目,继续迭代音乐播放器
- Electron-Vite 迭代音乐播放器

**第四章 Electron开发进阶**

这一章的内容通常和业务逻辑关系不大,更多的是关于应用的健壮性以及一些周边功能的介绍。

- 应用打包
- 应用更新
- 单元测试
- 应用安全性
- 异常处理
- 日志处理
- 日志的记录
- 日志的上传

**第五章 底层原理**

这一章主要是聚焦于 Electron 底层一些比较重要的特性,针对一些非常重要的代码片段进行剖析。

- Electron 源码目录的结构
- Electron 如何做到跨平台
- Electron 本身 API 是如何为开发者提供支持的
- 进程间是如何通信
- ...

还会包含一些和 Electorn 相关的周边工具的原理剖析

- electron-builder
- electron-updater

以及还会介绍一些看似和 Electron 工程没有关系,但是其实是比较重要的一些原理。

- V8引擎执行的原理
- 垃圾回收相关原理

**第六章 Electron常见开发需求**

- 点对点通信
- 拼写检查
- 窗口池
- 原生文件的拖放
- 最近文件列表
- 屏幕截图

该章节是一个长期更新的章节。

**TODO**

- Electron和不同构建工具的融合
- webpack
- rollup
- ....
- Electron和其他现代前端开发技术的融合
- React
- Svelte
- Nuxt.js
- Next.js
- ....
- 原生模块
- Windows系统的注册表
- 调用本地代码
- node-ffi:这是一个第三方模块,允许开发者直接通过 JavaScript 语法去调用动态链接库。
- N-API:V8引擎提供的,让开发者是在在 Node.js 中调用 C++ 实现的模块。
- 使用 C++ 编写一个原生模块,供你的 Electron 应用使用
- Electron 和 Qt 的整合
- 应用的签名和分发