Electron
Desktop apps with HTML,
CSS & Javascript
/whoami
‣ Debopam Sengupta (Dev)
‣ Software Engineer @ AfterShip Ltd.
‣ Programming Enthusiast
‣ Budding open-source contributor
@debopamsengupta
Why Desktop Apps?
‣ Fast and responsive
‣ Better User Experience
‣ Offline access
‣ Privacy
‣ Reduced server costs
But it’s not so easy…
‣ Platform-specific languages (C# , C++,
Objective-C)
‣ Different desktop environments
‣ Handle updates separately
What is Electron?
+
The Good
Auto-updates Crash reporting Debugging Tools
Open-source Native UI integration
The Iffy…
‣ Not yet v1.0.0, so expect lots of changes.
‣ Occasional performance issues in
background.
‣ Bundling Chromium with every app
increases app size (~40 MB compressed)
How does it work?
Browser process
Renderer process
How does it work?
How does it work?
Just like writing a client app in JS, we can use
‣ ReactJS / AngularJS
‣ Babel
‣ Any other npm module: moment, lodash…
How does it work?
Also supports digging a little deeper…
‣ Electron APIs are low-level.
‣ Use Remote / IPC in Renderer process to
communicate with the Browser process.
‣ Use in place of PhantomJS for browser
testing using ChromeDriver.
How does it work?
Sounds rather good, right?
Short demo :)
Thank you !

Electron

  • 1.
    Electron Desktop apps withHTML, CSS & Javascript
  • 2.
    /whoami ‣ Debopam Sengupta(Dev) ‣ Software Engineer @ AfterShip Ltd. ‣ Programming Enthusiast ‣ Budding open-source contributor @debopamsengupta
  • 3.
    Why Desktop Apps? ‣Fast and responsive ‣ Better User Experience ‣ Offline access ‣ Privacy ‣ Reduced server costs
  • 4.
    But it’s notso easy… ‣ Platform-specific languages (C# , C++, Objective-C) ‣ Different desktop environments ‣ Handle updates separately
  • 5.
  • 6.
    The Good Auto-updates Crashreporting Debugging Tools Open-source Native UI integration
  • 7.
    The Iffy… ‣ Notyet v1.0.0, so expect lots of changes. ‣ Occasional performance issues in background. ‣ Bundling Chromium with every app increases app size (~40 MB compressed)
  • 8.
    How does itwork? Browser process Renderer process
  • 9.
  • 10.
    How does itwork? Just like writing a client app in JS, we can use ‣ ReactJS / AngularJS ‣ Babel ‣ Any other npm module: moment, lodash…
  • 11.
    How does itwork? Also supports digging a little deeper… ‣ Electron APIs are low-level. ‣ Use Remote / IPC in Renderer process to communicate with the Browser process. ‣ Use in place of PhantomJS for browser testing using ChromeDriver.
  • 12.
  • 13.
    Sounds rather good,right? Short demo :)
  • 14.