Title Page Copyright and Credits Electron Projects Dedication About Packt Why subscribe? Contributors About the author About the reviewer Packt is searching for authors like you Preface Who this book is for What this book covers Release cycle note To get the most out of this book Download the example code files Conventions used Get in touch Reviews Building Your First Electron Application Technical requirements What is Electron? Preparing a development environment Installing Visual Studio Code Installing Visual Studio Code for Ubuntu Setting up the environment for macOS Installing Git on macOS Installing Node.js on macOS Setting up the environment for Ubuntu Linux Installing Git on Ubuntu Installing Node.js on Ubuntu Setting up the environment for Windows Installing Git on Windows Installing Node.js on Windows Verifying the installation Creating a simple application Packaging for multiple platforms Packaging for macOS Packaging for Ubuntu Packaging for Windows Summary Building a Markdown Editor Technical requirements Configuring a new project Integrating the editor component Fitting the screen size Integrating the application menu Creating a custom menu item Defining menu item roles Providing menu separators Supporting keyboard accelerators Supporting platform-specific menus Configuring the application name in the menu Hiding menu items Sending messages between processes Introducing editor-event Sending confirmation messages to the main process Sending messages to the renderer process Wiring the toggle bold menu Saving files to a local system Using the save dialog Loading files from a local system Creating a file menu Adding drag and drop support Supporting automatic updates Testing automatic updates Changing the title of the application Summary Integrating with Angular, React, and Vue Technical requirements Building an Electron application with Angular Generating our Angular project scaffold Integrating the Angular project with Electron Configuring Live Reloading Why test in the browser? Setting up production builds Setting up conditional loading Using Angular Material components Modifications made by installing Angular Material Adding the Material Toolbar component Angular routing Building an Electron application with React Generating a React project Live reloading Setting up production builds Setting up conditional loading Using the Blueprint UI toolkit Adding an application menu Adding routing Final touches Building an Electron application with Vue.js Creating a Vue configuration file Live reloading Production builds Setting up conditional loading Adding routing Configuring Vue Material Creating an application toolbar Summary Building a Screenshot Snipping Tool Technical requirements Preparing the project Configuring frameless windows Additional options for macOS Using the hidden titleBarStyle Using the hiddenInset titleBarStyle Using the customButtonsOnHover titleBarStyle Transparent windows Making application windows draggable Adding a snip toolbar button Using the desktopCapturer API Calculating the primary display size Generating and saving a thumbnail image Resizing and cropping the image Testing the application's behavior Integrating with the system tray Hiding the main application window on startup Registering global keyboard shortcuts Summary Making a 2D Game Technical requirements Configuring a game project Running a Hello World example Rendering background images Preventing window resizing Rendering a sprite Scaling sprites Handling keyboard input Flipping sprites based on their direction Controlling sprite coordinates Controlling sprite speed Summary Building a Music Player Technical requirements Creating a project scaffold Exploring the music player component Downloading music files Providing basic player setup Using AmplitudeJS elements Implementing the global play button Implementing the global pause button Implementing the global play/pause button Styling buttons Exploring the playback control buttons Stop button Mute and unmute buttons Volume buttons Implementing a song progress bar Displaying music metadata Improving the user interface Reviewing the final structure Summary Analytics, Bug Tracking, and Licensing Technical requirements Understanding analytics and tracking Creating your own solution or using an existing service Creating your own analytics services Using third-party analytics services Using Nucleus for Electron applications Creating a new Nucleus account Creating a new project with tracking support Installing the Nucleus Electron library Inspecting real-time analytics data Identifying users Disabling tracking per user request Verifying real-time user statistics Supporting offline mode Handling application updates Loading global server settings License checking and policies Creating a new policy and license Checking licenses in the application Summary Building a Group Chat Application with Firebase Technical requirements Creating an Angular project Configuring the Electron Shell Creating a Firebase account Creating a Firebase application Configuring Angular Material components Adding a Browser Animations module Configuring the default theme Adding the Material Icons library Adding a navigation bar Testing the application with the material toolbar Building a login dialog Implementing the Material interface Supporting error handling Preparing the chat component placeholder Connecting the login dialog to Firebase Authentication Enabling the sign-in provider Creating demo accounts Integrating the Login dialog with Firebase Configuring the Realtime Database Creating demo groups Rendering the group list Testing real-time updates Implementing the group messages page Displaying group messages Improving query performance Sending group messages Updating the message list interface Ideas for further enhancements Verifying the Electron Shell Summary Building an eBook Editor and Generator Technical requirements Creating the project structure Generating a new React application Installing the editor component Testing the web application Integrating with the Electron shell Updating the code to use React Hooks Controlling keyboard shortcuts Loading files Saving files Integrating with the application menu Setting up the book generator Installing Docker Running the Pandoc container Sending documents to the main (Node.js) process Invoking Docker commands from Electron Sending the markdown text to the Node.js process Saving the markdown text to the local drive Generating PDF books Generating ePub books Summary Building a Digital Wallet for Desktops Technical requirements Generating the project scaffold with React Integrating the Ant Design library Setting up a personal Ethereum blockchain Configuring the Ethereum JavaScript API Displaying Ethereum Node information Getting node information Rendering node information in the header Integrating with the application menu Rendering a list of accounts Showing our account balance Transferring Ether to another account Packaging the application for distribution Summary Other Books You May Enjoy Leave a review - let other readers know what you think