What is Covalent?
What is Electron?
Anyone else using Electron?
So what about?
Well, glad you asked:
Covalent-Electron
https://github.com/Teradata/covalent-electron
Production Build
- Creates desktop executable of Javascript/Typescript/CSS/HTML Application
- Development Build
- Allows for Live Reload of code
So why is it cool?
- Code is same Javascript/Typescript/CSS/HTML
- Can use same Covalent/Angular2/Material components and modules
- User Experience stays the same whether in Desktop Environment or in Browser
- Unlike in Browser can get full access to desktop
- Example: fs node_module
Usage in Teradata
- Currently being used by new version of Teradata Studio due out end of this year
- Soon to be used in App Center
- How does it work?
Runtime Flow
Electron provides a runtime to build desktop applications with pure JavaScript/Typescript and node.js
Electron takes a main file defined in your package.json file and executes it. This main file is usually named
main.js
main.js
is what is executed by themain process
. At this point Javascript can be executed but there is no 'window' or 'gui' to interact with yetIn the
main.js
you create one or moreBrowserWindow
. TheBrowserWindow
then runs its ownrenderer process
This renderer process takes a web page (an HTML file which references the usual CSS files, JavaScript files, images, etc.) and renders it in the window
The web pages are rendered with the Chromium Engine, giving it a high level of compatibility with web standards
In the main process you can access the native GUI through a series of modules available directly in Electron.
Your desktop application can access all Node modules like the fs node-module we showed above or the request module to make HTTP calls, etc.
You can also drop in any other external node_modules found out on npm or ones you write your self and run them as if you were in node.js