In our first post about Electron, we were covering the main topics about what is and how it works. This time we will cover how to create a dummy application using Electron and Angular2 as a front-end framework.
The application tree should be something like this picture:
we can observe:
- gulpfile and package.json: we will talk later about this 2 files, by now we can just say that are needed to build the application.
- assets: The package.json is a file useful to give directives to Electron, with this method we can order show/hide the window borders, icon, maximized/minimized, etc.
- frontend: here we got the content relative to the front end, more especifically all the Angular2 stuffs.
- main: contains the index.js referenced by assets/package.json and is the start point of our electron application.
The main gulp tasks needed to build and “deploy” the application sources:
from this file, the most important tasks are frontend and electron. The first one copy all the content from the source path.
The principal Electron tasks to run the application:
The second task begins the transcoding and building of the application.
The electron package.js, it is useful to pass directives at start time, the format of is exactly the same as that of Node’s modules, and the script specified by the main field is the startup script of your app, which will run the main process. An example of your package.json might look like this:
We need to remember, if the main field is not present in, Electron will attempt to load an “index.js”.
The main index file loaded by electron at first time looks like a common js file:
Then, the final product, the application up and running:
we realize that is a common web application, the tick here is to work in the look & feel to “hide” that common details (relative to the chromium browser) and make an effort in order to show the appplication like a elaborated desktop app. It is possible to change icon, task bar, menus, system buttons etc. Even if you don’t like the squared and classical window you can hide the background and create a “floating” app with alpha and the shape you want.
In the sample app we’ve created a minimal environment with an image background and a button in the middle. If you press the button, you will get as result a notification at the notification area, that position will be according to the SO where the app is running, in my case Im running ElementaryOs so the notification area is in the upper-right conner:
The cool part here is, that notification is executing in real native code. The Electron API does the hard work to communicate to the SO what we are trying to do, in our case, show a notification with a text and image.
That’s all for this second part of Electron, you can download the code from here thanks for reading!