Up Ahead • What is Electron? • Why desktop? • Crash course • Tips
.NET + Mono + Xamarin Pros: • Shared .NET code base Cons: • Xamarin Mac !== Xamarin iOS/Android • Native UI is hard • Deployment • Licensing
Electron Pros: • HTML + CSS + JavaScript • Node.js + Chrome • No deployment dependencies
Electron Cons: • HTML + CSS + JavaScript
History • Created by GitHub for Atom • Formerly Atom Shell • Active since January 2013 • 1.0 release May 2016 • 1.2.6 release July 6th
Electron Features • Rapid development • Themes • Shared code/UI • Deployment + “silent” updates • Native UX
Why Desktop Apps? • Offline • Printers, devices, other local hardware • On-premises • Internal, LOB • Edit local files • App Store • Kiosk • Desktop > Intranet • Sometimes it “just feels right”
Desktop App Ideas • Disconnected data entry • Editor • Time management • Media player • Email client • Messaging, collaboration • Kiosk • Mapping, route planner • Social media client • Calendar • Bulk media editor • File management, backup • Document generation, reading • Audio/video conferencing • Games
Atom
Nylas N1
> npm install electron-prebuilt > touch main.js > touch index.html
( main.js )
( main.js )
( main.js ) ( index.html )
( main.js ) ( home.html ) ( editor.html ) ( settings.html )
main.js
main.js
main.js
main.js
main.js
main.js
main.js
main.js
index.html
index.html > electron main.js
index.html
index.html
index.html
index.html
index.html
index.html
index.html
index.html
main.js
main.js
main.js
Process modules • app • ipc • dialog • menu, menu-item • power-monitor • tray
Render modules • ipc • remote • web-frame
Modules available to both • clipboard • crash-reporter • native-image • screen • shell
Recommended Tools • electron-debug • electron-reload • electron-packager • electron-builder • electron-updater • electron-mocha
Devtron
Test your app
Boilerplate Projects • electron-boilerplate • electron-react-boilerplate
electron-prebuilt-compile • ES6/ES7 (Babel), TypeScript, CoffeeScript • React.js • LESS • Jade • CSON
photonkit.com
Building for Windows • Windows 7/Server 2008 R2 minimum (https://dev.modern.ie) • Visual Studio 2015 Community • Python 2.7 • Node.js • Git
Building for Mac • OS X 10.8+ • Xcode 5.1+ • Node.js • pyobjc (only if using Python installed with Homebrew)
Building for Linux • Python 2.7 • Node.js • Clang 3.4+ • GTK+ & libnotify dev headers
Tips • Use CSS default cursor • -webkit-user-drag:none • -webkit-user-drag:text • Keep windows open
Local Storage • Read/write .json files – Pro tip: use fs-jetpack • nedb • pouchdb
Relational DB Storage • seriate • pg • mysql • oracledb
From here… https://github.com/sindresorhus/awesome-electron Pluralsight Course: Rob Conery’s “Electron Playbook” http://electron.atom.io
12:55 PM Room 200-C
Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Cross-Platform Desktop Apps with Electron (CodeStock Edition)