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
Desktop JS — Empire JS 2016
Search
Evan Morikawa
May 27, 2016
Programming
1
500
Desktop JS — Empire JS 2016
Desktop JS — Electron and building applications on the desktop, with Javascript.
Evan Morikawa
May 27, 2016
Tweet
Share
More Decks by Evan Morikawa
See All by Evan Morikawa
The Age of the Javascript-Powered Desktop — Dinosaur JS
emorikawa
0
720
Node on the Desktop — Node Conf Oslo 2016
emorikawa
0
130
JS Takes the Desktop — Scotland JS
emorikawa
0
190
Plugins with React & Challenges with Data
emorikawa
0
460
Space City JS — Using Electron & React to Build N1
emorikawa
1
230
MIT N1 Preview
emorikawa
0
410
Scaling Flux
emorikawa
0
510
Other Decks in Programming
See All in Programming
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.6k
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
280
C++でシェーダを書く
fadis
6
4k
PLoP 2024: The evolution of the microservice architecture pattern language
cer
PRO
0
2.4k
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
660
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.1k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
240
僕がつくった48個のWebサービス達
yusukebe
20
17k
Tuning GraphQL on Rails
pyama86
2
1.2k
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.1k
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
120
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
280
34k
Thoughts on Productivity
jonyablonski
67
4.3k
Speed Design
sergeychernyshev
24
600
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.8k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building Adaptive Systems
keathley
38
2.3k
Embracing the Ebb and Flow
colly
84
4.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
How to train your dragon (web standard)
notwaldorf
88
5.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Transcript
Desktop JS Evan Morikawa | @e0m |
[email protected]
| May
2016
None
None
None
None
Swing Qt Cocoa GTK WPF/WinRT …
NW.js (Node Webkit)
Shell
None
None
None
None
Chromium
Chromium Browser aka Backend aka Main Process
Chromium Browser aka Backend aka Main Process C++
Chromium Browser aka Backend aka Main Process C++ Renderer Renderer
Renderer HTML / JS (DOM) HTML / JS (DOM) HTML / JS (DOM)
Chromium Browser aka Backend aka Main Process C++ Renderer Renderer
Renderer HTML / JS (DOM) HTML / JS (DOM) HTML / JS (DOM) ipc
Browser aka Backend aka Main Process Renderer Renderer Renderer HTML
/ JS (DOM) HTML / JS (DOM) HTML / JS (DOM) ipc
Nylas N1
Nylas N1 main.js
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
index.html index.js
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
index.html index.js React.render()
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
index.html index.js React.render()
Nylas N1 main.js const win = new BrowserWindow() win.loadURL(`file://index.html`) win.show()
index.html index.js React.render() Composer Work Window
None
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility
None
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail
None
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail Jasnkbusting | Worker windows
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail Jasnkbusting | Worker windows
ReactiveX.js
const q = `SELECT * FROM threads WHERE …` Rx.Observable.fromQuery(q).subscribe((threads)
=> { this.setState({threads}) })
const q = `SELECT * FROM threads WHERE …` Rx.Observable.fromQuery(q)
.filter(myFn).subscribe((threads) => { this.setState({threads}) })
const q = `SELECT * FROM threads WHERE …` Rx.Observable.fromQuery(q)
.filter(myFn) .map(mapFn).subscribe((threads) => { this.setState({threads}) })
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail SQL | Observables | Task Jasnkbusting | Worker windows
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail Jasnkbusting | Worker windows SQL | Observables | Task
None
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail React | Components as “data” Jasnkbusting | Worker windows SQL | Observables | Task
Desktop JS 1. “Native” experience 2. Performance 3. Data Storage
& Offline 4. Plugins & Extensibility Native extensions | Cross-platform CSS | Retina Detail Jasnkbusting | Worker windows SQL | Observables | Task React | Components as “data”
https://github.com/nylas/n1 Open Source
N1 Core Team https://nylas.com/team @e0m @bengotow @juanstejada @karim_hamidou @jackiehluo Drew
Regitsky
None
Evan Morikawa | @e0m |
[email protected]
| May 2016 Thank
you! Slides here
Desktop JS Evan Morikawa | @e0m |
[email protected]
| May
2016