16
Desktop Apps in a Javascript World Marc MacLeod @marbemac

Desktop Apps in a Javascript World - Electron

Embed Size (px)

Citation preview

Page 1: Desktop Apps in a Javascript World - Electron

Desktop Apps in a Javascript World

Marc MacLeod@marbemac

Page 2: Desktop Apps in a Javascript World - Electron

Me

PHP -> Ruby -> Python -> Node / Go

Vanilla -> Backbone -> Ember -> Meteor -> React

Backend

Frontend

<3 Techstars & Austin

Page 3: Desktop Apps in a Javascript World - Electron

StopLight (https://stoplight.io)

Page 4: Desktop Apps in a Javascript World - Electron

JS Desktop Apps? What’s the difference?

Web

Desktop

Page 5: Desktop Apps in a Javascript World - Electron

access to node

JS Desktop Apps? What’s the difference?

access to packages (npm)

access to OS specific functionality / features

app stores!

Page 6: Desktop Apps in a Javascript World - Electron

Electron Node-Webkit (NW.js) MacGap

Sponsor Github Intel N/A

Node? Yes Yes No

OS X Store Maybe Maybe Yes

Windows Store Yes Yes No

Auto-Update Included? Yes No No

Native OS Bindings Yes Yes Yes

Size > 60mb > 60mb ~1mb

The Landscape

Page 7: Desktop Apps in a Javascript World - Electron

http://electron.atom.io/

Page 8: Desktop Apps in a Javascript World - Electron

https://github.com/marbemac/electric-tunes

Let’s build an app

Page 9: Desktop Apps in a Javascript World - Electron

Main Process vs Render Processes

main.js

Page 10: Desktop Apps in a Javascript World - Electron

Sprinkle in some Node (io.js)

app.js

Page 11: Desktop Apps in a Javascript World - Electron

Sprinkle in some native

main.js

Page 12: Desktop Apps in a Javascript World - Electron

IPC!

main -> renderrender -> main

Communicating between main and render processes

Page 13: Desktop Apps in a Javascript World - Electron

electron-packager

Distribution

https://github.com/maxogden/electron-packager

Page 14: Desktop Apps in a Javascript World - Electron

Storage / Persistence

HTML5 Local Storage

NEDB (node)https://github.com/louischatriot/nedb

PouchDB (javascript / couch db)http://pouchdb.com/

Page 15: Desktop Apps in a Javascript World - Electron

What else?

Managing a local http server

Manage command line apps via node child_process / spawn

Load dev tools extensions

Auto-Updates (Squirrel Framework)

Page 16: Desktop Apps in a Javascript World - Electron

Thank You!Questions?

Marc [email protected]