https://github.com/ccnokes/build-a-desktop-app-with-electron
This is the GitHub repo to accompany the Egghead Course "Build a desktop application with Electron"
https://github.com/ccnokes/build-a-desktop-app-with-electron
Last synced: about 1 year ago
JSON representation
This is the GitHub repo to accompany the Egghead Course "Build a desktop application with Electron"
- Host: GitHub
- URL: https://github.com/ccnokes/build-a-desktop-app-with-electron
- Owner: ccnokes
- Created: 2017-06-11T15:40:05.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-10-26T17:11:38.000Z (over 8 years ago)
- Last Synced: 2025-05-07T21:03:03.451Z (about 1 year ago)
- Language: JavaScript
- Size: 933 KB
- Stars: 56
- Watchers: 1
- Forks: 25
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Build a desktop application with Electron
[](https://github.com/sindresorhus/awesome-electron#videos)
This is the GitHub repo to accompany the Egghead Course "Build a desktop application with Electron". Watch it on [egghead.io](https://egghead.io/courses/build-a-desktop-application-with-electron).

---
Electron is a framework that makes it easy to create cross-platform desktop apps with JavaScript, HTML, and CSS. Electron and open-source tools give you everything you need to create a compelling desktop app--native user interface elements like menus and dialogs, installers, auto-updates, and more.
This course will teach you the core concepts of Electron so that you can leverage it to create your own desktop application for macOS and Windows.
We'll go over:
- Creating user interfaces in Electron (both HTML based and native)
- Understanding Electron's multi-process architecture
- Shipping your app to users
# Lessons
1. [Create a "Hello World" app using Electron](https://egghead.io/lessons/javascript-create-a-hello-world-app-using-electron)
2. [Load CSS in a Electron BrowserWindow](https://egghead.io/lessons/javascript-load-css-in-a-electron-browserwindow)
3. [Load JavaScript in an Electron BrowserWindow](https://egghead.io/lessons/javascript-load-javascript-in-an-electron-browserwindow)
4. [Create a native desktop system menu with the Electron Menu module](https://egghead.io/lessons/javascript-create-a-native-desktop-system-menu-with-the-electron-menu-module)
5. [Display native desktop dialog windows with Electron](https://egghead.io/lessons/javascript-display-native-desktop-dialog-windows-with-electron)
6. [Save/Open a file with an Electron dialog window](https://egghead.io/lessons/javascript-save-open-a-file-with-an-electron-dialog-window)
7. [Understand Electron’s main and renderer process architecture](https://egghead.io/lessons/javascript-understand-electron-s-main-and-renderer-process-architecture)
8. [Communicate between Electron processes using IPC](https://egghead.io/lessons/javascript-communicate-between-electron-processes-using-ipc)
9. [Communicate between Electron processes using the remote module](https://egghead.io/lessons/javascript-communicate-between-electron-processes-using-the-remote-module)
10. [Create an icon for your Electron app](https://egghead.io/lessons/javascript-create-an-icon-for-your-electron-app)
11. [Package your Electron application into a executable file with electron-builder](https://egghead.io/lessons/javascript-package-your-electron-application-into-a-executable-file-with-electron-builder)
12. [Code sign your Electron application with electron-builder](https://egghead.io/lessons/javascript-code-sign-your-electron-application-with-electron-builder)
13. [Ship updates to your Electron app with autoUpdater (Mac)](https://egghead.io/lessons/javascript-ship-updates-to-your-electron-app-with-autoupdater-mac)
14. [Ship updates to your Electron app with autoUpdater (Windows)](https://egghead.io/lessons/javascript-ship-updates-to-your-electron-app-with-autoupdater-windows)
---
## Usage
```
git clone https://github.com/ccnokes/build-a-desktop-app-with-electron.git
```
If you want to run each example, you may want to save disk space by symlinking the node_modules at the root of the project to each lesson. To do so:
```
npm install
npm run symlink
```