Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Electron, Frontend Masters
Search
Steve Kinney
November 15, 2016
2
290
Electron, Frontend Masters
Steve Kinney
November 15, 2016
Tweet
Share
More Decks by Steve Kinney
See All by Steve Kinney
Introduction to Testing
stevekinney
0
89
Web Security, Frontend Masters
stevekinney
0
2.8k
Making Music with the Web Audio API, JSConf Colombia 2023
stevekinney
0
93
React and TypeScript, Turing School
stevekinney
0
330
Redux Workshop, 2021-05-05
stevekinney
2
2.1k
TypeScript and React Utility Types
stevekinney
1
200
A Gentle Introduction to GraphQL Resolvers
stevekinney
1
160
React State
stevekinney
11
10k
React State: useEffect and Custom Hooks
stevekinney
0
240
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Code Review Best Practice
trishagee
70
19k
Music & Morning Musume
bryan
46
6.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
Setup Instructions http://tinyurl.com/fem-electron (Pull from master one more time on
each repository if you cloned them yesterday.)
Building Desktop Applications with Electron Steve Kinney — @stevekinney
I'm Steve. @stevekinney
http://turing.io
http://bit.ly/electronjs
http://dinosaurjs.org
Today's Flow Take a 10,000 Foot View Build a Simple
Bookmarking Application Build a More Complicated Markdown Text Editor Build a Menu Bar Application Package an Application Distribution Tour Some of the Finer Points of the Ecosystem
None
None
Electron (née Atom Shell)
Electron (née Atom Shell) A framework for building cross-platform desktop
applications with web technologies.
None
So, why would you want to use this Electron thing?
You want to build an application that has advanced permissions
like accessing the file system.
You want to build a small application that lives in
the user’s menubar or system tray.
You want to build an app that works well offline.
You want to be able to Command/Alt-Tab to your application.
You want to build a GUI for your Node application.
@noopkat
None
None
None
None
sindresorhus/caprine
Why is Electron so super cool?
None
None
Chrome Content Module HTML5 support GPU acceleration Blink and V8
Node 6.5.0 Filesystem access Native modules
None
None
Electron uses a pretty modern build of Chromium. Electron: 1.4.6
Node: 6.5.0 Chromium: 53.0.2785.143 V8: 5.3.332.47
None
None
HTML Imports Shadow DOM Custom Elements Web MIDI API (…and
other hard to draw APIs…)
None
The web browser lives in a kind of sandbox with
a bunch of restrictions in place in the name of security.
None
None
Electron applications have all of the freedom of any other
Node process.
None
require(…);
None
None
None
You get to choose.
None
None
None
None
None
None
None
None
None
None
None
muan/mojibar
How does Electron work?
Let's take a look at a everything from a high
level before we dig in.
npm install -g electron
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Inherently, offline first.
None
None
None
None
None
None
Building a menu
And more…
None
versus
None
None
None
None
None
None
None
No good.
None
electron.remote
None
None
None
None
None
None
None
Let's get started. https://tinyurl.com/fem-electron http://41391da0.ngrok.io
Code time.
Building Menu Bar Applications with Electron
npm install menubar
None
None
Code time.
Distribution
npm install electron-packager
None
Code time.
None
npm install electron
What about JSX or SASS or LESS?
npm install electron-prebuilt-compile npm install electron-packager-compile
Want better insight into the user's macOS settings?
npm install electron-osx-appearance
What about an application that launches when the OS boots?
npm install auto-launch
Need a graphical user interface for sudo?
npm install electron-sudo
Want to have local shortcuts that aren't menu items?
npm install electron-localshortcut
Want to use the latest and greatest features coming to
JavaScript?
npm install babel-preset-electron
Did watching me try to manage state make you want
to cry?
npm install electron-redux
What about Ember CLI?
ember install ember-electron
None
None
sindresorhus/awesome-electron
None
Electron in Action: http://bit.ly/electronjs Turing School: http://turing.io Thank You Twitter:
@stevekinney