JSFoo 2016

Tackling speed and performance for JavaScript

Arnav Gupta

Arnav Gupta

@championswimmer

The state of Node.js on desktop GUI : Build + Ship + Maintain cross-platform Electron apps

Submitted Aug 24, 2016

This talk will deal with the cross-platform parts specifically of maintaing an Electron project. We’ll touch briefly on some common ground, as to how we can ship a complete server-client architecture (that you might be already hosting as a webserver + website solution) web stack into a single Electron project as a standalone, offline Desktop app. Then we’ll discuss the differences between the Linux, Mac and Windows platforms, and how an Electron developer can make best use of available cross-platform UI concepts, and build truly cohesive interfaces for all three platforms.

Outline

  • 5 min Electron quickstart
  • Over view of Chromium’s stack vis-a-vis Electron’s stack
  • Main Process vs Renderer Process
  • Bringing the server and the client together inside an Electron App (clipboard, shell and screen are shared)
  • OS-specific differences - Menus, Contexts, Lifecycles, Tray of desktop apps in Linux, Mac, Windows
  • Electron-debug
  • Packaging for all 3 platforms : electron-packager
  • Distributing installers for all 3 platforms : electron-builder
  • Make it auto-updatable for all 3 platforms : electron-updater
  • Popular Electron boilerplates to start from
  • Popular electron ui kits : photonkit, leankit, chrome-tabs, toolbar
  • A peek into future : A possibility of Electron Runtime Mode (like JRE) - Famous issue #673

Requirements

Node.js 5.x or above
Please install electron-prebuilt before coming, if you want to try anything out. It’s a 40mb download and might take time.

Speaker bio

Currently I teach Android Application Development at CodingBlocks, a programming bootcamp startup.
I have been a Developer and Device Maintainer at CyanogenMod and AOKP, building latest Android images for Sony Xperia devices
I have been a Open Source community partner with Sony Mobile for the last two years.
I am also an open source enthusiast with contributions to Linux, GNOME, Arduino, Android and other open source projects, and a Google Summer of Code alumnus.
I have been working at FOSSASIA developing an opensource event management system in Nodejs, with ticketing, conference organising, app and website generating and speaker funnel functionalities.
Have been a speaker at Mobile Developer Summit 2014, JsFoo 2015 and DroidCon 2014, 2015.

Slides

https://docs.google.com/presentation/d/1yoc7BYhBQ3U7sIVbBOAJh1J-O0Z4FaVSRj7sH5a2UVQ/edit?usp=sharing

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more