1. Getting started with Electron
Chapter 1. Introducing Electron
1.4. Why should I use Electron?
1.4.1. Building on your existing skill set
1.4.2. Access to native operating system APIs
1.4.3. Enhanced privileges and looser restrictions
Chapter 2. Your first Electron application
2.1. Building a bookmark list application
2.2. Working with the main process
2.3. Creating a renderer process
2.3.1. Loading code from the renderer process
2.4.1. Making cross-origin requests in Electron
2.4.3. Storing responses with web storage APIs
2. Building cross-platform applications with Electron
Chapter 3. Building a notes application
3.3. Bootstrapping the application
3.4. Implementing the base functionality
3.5. Debugging an Electron application
3.5.1. Debugging renderer processes
Chapter 4. Using native file dialog boxes and facilitating interprocess communication
4.1. Triggering native file dialog boxes
4.3. Facilitating interprocess communication
4.4. Triggering the Open File function using interprocess communication
4.5. Sending content from the main process to the renderer process
Chapter 5. Working with multiple windows
5.1. Creating and managing multiple windows
5.1.1. Communicating between the main process and multiple windows
5.1.2. Passing a reference to the current window to the main process
6.1. Keeping track of the current file
6.1.1. Updating the window title based on the current file
6.1.2. Determining whether the current file has changed
6.2. Tracking recently opened files
6.3.1. Exporting the rendered HTML output
6.3.3. Saving files from the renderer process
6.4. Opening files using drag and drop
6.4.1. Ignoring dropped files everywhere else
6.5. Watching files for changes
Chapter 7. Building application and context menus
7.1. Replacing and replicating the default menu
7.1.1. macOS and the case of the missing Edit menu
7.1.2. The hidden cost of replacing Electron’s default menu
7.1.3. Implementing the Edit and Window menus
7.1.4. Defining menu item roles and keyboard shortcuts
7.2. Adding application-specific menu functionality
Chapter 8. Further operating system integration and dynamically enabling menu items
8.1. Using the shell module from the UI in the renderer process
8.2. Using the shell module in the application menu
8.3. Accessing the shell module from a context menu
8.3.1. Deciding between putting functionality in a menu or in the browser
8.3.2. Deciding between putting functionality in the application or context menu
8.4. Disabling menu items when appropriate
8.4.1. Dynamically enabling and disabling menu items in the context menu
8.4.2. Dynamically enabling and disabling menu items in the application menu
Chapter 9. Introducing the tray module
9.1. Getting started with Clipmaster
9.2. Creating an application with the tray module
9.2.1. Using the correct icon for macOS and Windows
9.3. Reading from and writing to the clipboard
9.4. Registering global shortcuts
9.4.1. Checking registrations and unregistering global shortcuts
Chapter 10. Building applications with the menubar library
10.1. Starting an application with menubar
10.2. Adding clippings to the UI
10.3. Working with clippings in the application
10.5. Displaying notifications and registering global shortcuts
10.5.1. Registering global shortcuts
10.5.2. Solving for the edge case that occurs if the window has never been shown
Chapter 11. Using transpilers and frameworks
11.1. Introducing electron-compile
11.2. Laying the application’s foundation
11.3. Building the UI in React
11.5. Live reload and hot module reloading
Chapter 12. Persisting user data and using native Node.js modules
12.1. Storing data in an SQLite database
12.1.1. Using the right versions with electron-rebuild
12.1.2. Setting up SQLite and Knex.js
12.1.3. Hooking the database into React
12.1.4. Fetching all of the items from the database
12.1.5. Adding items to the database
12.2.1. Creating a store with IndexedDB
12.2.2. Getting data from IndexedDB
Chapter 13. Testing applications with Spectron
13.2. Getting comfortable with Spectron and WebdriverIO
13.3. Setting up Spectron and the test runner
13.4. Writing asynchronous tests using Spectron
13.4.1. Waiting for the window to load
13.4.2. Testing Electron BrowserWindow APIs
3. Deploying Electron applications
Chapter 14. Building applications for deployment
14.1. Introducing Electron Packager
14.1.1. Setting up Electron Packager
14.1.2. Configuring the output directory
14.1.3. Configuring the application’s name and version
14.3.1. Importing an Electron application into Electron Forge
Chapter 15. Releasing and updating applications
15.1. Collecting crash reports
15.1.1. Setting up the crash reporter
15.2. Signing your applications
15.3. Automatically updating applications
Chapter 16. Distributing your application through the Mac App Store
16.1. Submitting your application to the Mac App Store
16.1.1. Signing the application
16.1.2. Registering your application with the Mac App Store
16.1.3. Adding the application to iTunes Connect
16.1.4. Packaging your application for the Mac App Store
Appendix. Code samples from Fire Sale and Clipmaster 9000
Code from the end of chapter 6
Code from the end of chapter 7