Quick Intro
Rob Pocklington
Full-stack developer my whole career
Java, Ruby, Groovy, Scala, Node + JS
Worked at the usual suspects (MYOB, Sportsbet, Seek)
Currently @ NAB in Docklands (Internet Banking)
Overview
News
Web pulse check
Electron
History and Architecture
Features + Benefits
A Real Example
Issues
Closing Thoughts
Angular Pulse Check
Angular 2 RC4 (Dart split - again!)
Directives (as we knew them) are dead
Ionic 1.3 (NG 1.5) + 2 updates
Nativescript v2.0.0 - Telerik
Web Pulse Check
React v15.3.0 - Facebook
React-Native v0.30.0 - Facebook
Nativebase v0.5.3
Web Pulse Check (cont ...)
Aurelia 1.0 released - Rob Eisenberg
Arc welder app (Android on Desktop)
NW.js v0.16.0
Electron v1.30
Electron (formerly Atom Shell)
Invented by Github in 2013
Allows developers to create cross-platform desktop apps with web technologies
Electron (cont ...)
Abstracting Too Much?
GWT / EXT.js
Cordova / Phonegap
Ionic
Benefits
Combine fast native binaries with familiar web code
Multi-platform (Linux + Windows + Mac OSX)
Write-once, run anywhere (hello Java!)
Benefits (cont ...)
Builds off a stable base (Chromium, Node.js)
Download and install
(just like the old days!)
Main Features
Superset of browser features
IndexedDB, Local Storage etc.
System-level access (file / database)
No CORS issues / browser sandboxing
Main Features (cont ...)
OS Menubar / Windows / Drag + drop
System tray + Taskbar (eg. Slack / Rdio)
Auto-updates (or prompted updates)
Crash-reporting
Flash plugin support (via pepper-plugin)
Right-click context support
Developer Issues
Source code security
Supporting Updates / multi-versions / data-migrations
Comms between main and render threads
(think: service workers)
User Issues
Users install from the Internet (safe?)
No fine-grained user permissions (eg. file / camera)
No brower sandbox, no warranty
rm -rf /
Closing thoughts
Abstractions are getting better
APIs for browser + native hooks are improving
Huge market in this space
Growing demand for multi-skilled developers
ES6 + pure Javascript is the safest choice
Thanks for listening!
Slides
github.com/rpocklin/ng-melb-electron
Twitter
@angularjsMelb @rpocklin