So does having the baggage of these many languages worth it? Well, it depends who you ask but my answer is always, Yes. Actually, I am planning to learn Rust next, so enough is never enough for me. However, I don’t encourage this practice in certain contexts. …
electron-builderand distribute this application using GitHub releases.
In the previous lessons, we learned how to create Electron applications and how to use
electron-weback to bundle the application source. So far, we haven’t packaged the application as we were only running the application using either the
$ electron or
$ electron-webpack commands.
In this lesson, we are going to create distribution files for an Electron application such as
.pkg for macOS or
.msi for Windows and host them right on our GitHub repository. This will allow our users to download the platform-specific installation file of the application.
There are many tools to package an Electron application but
electron-builder is one of the most popular ones. We are going to use the same old electron-lessons repository we have created that contains the source code of the Electron applications we have created in the previous lessons. …
electron-webpackpackage. This package also provides HMR support out of the box, so we will dive deep into that as well.
In the previous lessons, we worked on some simple Electron applications. In the introductory lesson, we created an Electron application to display a random image from the internet. In the File IO lesson, we worked on project structure and understood a few important development concepts.
However, during the development of these applications, wherever we made some changes in the source code, we had to rebuild the application by re-executing the
$ npm run start command. This happens since
$ npm run start command (which internally runs
electron . command) does not watch file changes on the disk.
renderer process handles the user interface of the application through Chromium APIs. …
In the previous lesson, we learned about the anatomy of an Electron application and how
renderer processes play their role in the lifecycle of the application. We also built a sample app to resize and display a random image from the internet.
⚠️ → If you haven’t read the previous lesson, please do. Most of the things explained in this lesson won’t make sense unless you get an overview of how Electron applications work.
In this lesson, we are going to create a sample Electron application with the following objectives:
But what if a desktop application internally uses a browser for GUI (what the user sees)? Then we could technically use these languages to render the application UI. This is exactly what’s happening inside the apps above. …
Heroku is a PaaS (platform as a service) provider. Using Heroku, we can deploy applications on the cloud in a matter of seconds. It supports many programming languages such as Java, Node.js, Python, PHP, Go, etc.
Things that set Heroku apart from other platforms such as AWS, Google Cloud, or Azure for that matter is the ease of deploying your applications to the cloud. Though Heroku provides enterprise-level features, it is one of the easiest platforms out there to quickly deploy and test your applications.
For example, if you want to deploy the documentation (as a website) of your open-source project named
my-project, you can simply create a Heroku application, push the repository code to the Heroku and your application will be deployed at
In the previous lessons, we discussed the basics of Docker. We learned the anatomy of Docker containers, the structure of a Dockerfile, how to create images, how to manage containers, etc. This is just the basic information we need to know in order to operate Docker.
If our application is as simple as an HTTP server, we can run it inside a single Docker container. You can create a custom Docker image, copy the application code to the image, and run a container from it. You can mount a volume for persistent data storage and bind a port on the host to the port on the container to make your service public. That’s it. …
In the previous lessons, we learned a great deal about Docker, Dockerfile, Docker images, and Docker containers. We understood the isolated nature of a Docker container and how to connect with a running container using
--publish) flag to map a host port to a container port for network access or
--volume) flag to access files of a container from the host.
In this lesson, we are going to talk about the networking aspect of the containerization process. …
In the previous lessons, we learned about the anatomy of Docker images, how Docker containers work, how to create a Docker image from a Dockerfile, and learned a few characteristics of Docker images. However, we did not focus on sharing a Docker image with the world. In this lesson, we are going to learn just that as well as Docker image tags.
In the previous lesson, we learned how to create a Docker image using a Dockerfile as well as creating and managing Docker containers. We discussed a few Dockerfile instructions such as
CMD, etc. and how they contribute to the image-building process.
In this lesson, we are going to discuss the
ENTRYPOINT instruction to create a Docker container that acts like an executable. We will also discuss how to share files between a Docker container and the host machine.