Ember-Electron 2: Building Desktop Apps with Ember and Electron
Building desktop apps with Electron is powerful: It enables developers to use web technologies to target all major operating systems. However, writing the app itself is only half the battle - one also has to compile binaries and create installers, packages, and bundles for the variety of distribution methods. To assist developers with that, the Electron community is currently converging on a single developer tool: electron-forge.
Today, I'm releasing a full rewrite of ember-electron, integrating forge with the Ember Cli. Ember-Electron still handles build-test-release cycle for Ember developers, but it does using the same tools as React, Angular, and Non-Framework developers. This allows us, as a community, to worker closer together, regardless what our favorite framework and command line tool is. In doing so, ember-electron even gained some features that I previously considered out of scope.
Live-Reload and Testing
Running ember electron
checks your app's dependencies for native code, recompiles if necessary, and starts the application in Electron. Whenever you update renderer code, the app will live-reload. Likewise, ember electron:test
runs unit tests in Electron - if run with a --server
parameter, it even does so with live-reload enabled.
Binaries and Installers
Previously, ember-electron required users to worry about native dependencies. The creation of installers was also only partially supported. Version 2 brings tons of changes: ember electron:package
creates fitting binaries for Windows, macOS, and Linux.
ember electron:make
is brand new ✨ and creates installers and distribution bundles. For Windows, that means a Squirrel Installer and a Windows Store Package; for macOS, zip
/dmg
files and a Mac App Store Package, while Linux users enjoy the creation of deb
, rpm
, and flatpak
files.
Hug These People
The rewrite and subsequent release of ember-electron 2 was mostly done by its new contributors, Aidan Nulman (@anulman), Florian Pichler (@pichfl), and Ben Demboski (@bendemboski). Huge thanks to them and everyone else who contributed!