Building Native Desktop Apps with Electron.JS

Gone are the days where Javascript is locked behind the shackles of a browser. Electron, or Electron.js, is a framework maintained by the OpenJS foundation to build native desktop applications using web technologies like JavaScript, HTML, and CSS. More and more native applications, like Spotify, VSCode, and Slack, are all being built using Electron! This open-source framework uses Chromium and Node.js, and it can be used to create cross-platform applications compatible with Windows, Mac, and

January 27, 2022 2 Min Read
Building Native Desktop Apps with Electron.JS
Building Native Desktop Apps with Electron.JS

Codesphere

From everyone in the Codesphere Team:)

Table of Contents

Gone are the days where Javascript is locked behind the shackles of a browser. Electron, or Electron.js, is a framework maintained by the OpenJS foundation to build native desktop applications using web technologies like JavaScript, HTML, and CSS.

More and more native applications, like Spotify, VSCode, and Slack, are all being built using Electron!

This open-source framework uses Chromium and Node.js, and it can be used to create cross-platform applications compatible with Windows, Mac, and Linux. In this article, we’ll build a simple tic-tac-toe game with Electron that can run locally.


Basics of Electron

Electron consists of three primary components:

  • Chromium that handles all the web content
  • Node.js that handles interaction with the operating system
  • Custom APIs for additional functionality and solving common issues when dealing with the OS

All these components work together to facilitate a desktop application.

Additionally, Electron includes two primary processes. The main process handles window management, all OS interactions, and the renderer process is responsible for the web content.

The renderer process cannot directly interact with the OS and only communicates with it through the Main process. Depending on the application, there can be multiple renderer processes for a single main process. However, in most cases, a single main process with a single renderer that’s used to load the web application is used.

With the explanation out of the way, let’s start building.


Setting up Our Project

To use Electron, you will need to have Node.js installed in your environment. We can start by creating our npm project by running

npm init

After setting up our project, we can install Electron with:

npm i -D electron@latest


Creating the Electron Application

For our Electron app, we’re going to use a simple HTML page to facilitate a game of pong. This way, we just need to focus on the Electron aspects of the application and not on the game itself.

A couple of weeks ago we made Pong with just a 100 lines of code, so we’ll use that reuse that project

We will create two files in our project folder index.js which will act as our main node process, while pong.html, which will act as the renderer process to load the weather data.

The index.js file will facilitate the window creation for the application and load the appropriate renderer process. In this instance, our pong.html file will look like this:

We can now run our application locally with:

electron index.js

And there we have it! Our html file is running natively!


Conclusion

Electron’s increasing popularity makes it a must learn for aspiring developers. Not to mention, if you’re a web developer looking to make a quick native version of your website, Electron is likely the best option.

If you’re building software and looking to eliminate bottlenecks, look no further than Codesphere for you cloud service needs! We’re building Codesphere to be the most intuitive cloud and devops tool on the market!

Happy coding!

About the Author

Building Native Desktop Apps with Electron.JS

Codesphere

From everyone in the Codesphere Team:)

We are building the next generation of Cloud, combining Infrastructure and IDE in one place, enabling a seamless DevEx and eliminating the need for DevOps specialists.

More Posts

Cloud Native Meetup Recap

Cloud Native Meetup Recap

Karlsruhe offers a vibrant tech scene and we are proud to be part of a group organizing expert & community meetups like this one.

Full Metal

Full Metal

Buying a used server on ebay kleinanzeigen and preparing it to be cloudified? Follow along to see what it takes to get a piece of metal running.