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
610
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Desktop JS — Empire JS 2016
Desktop JS — Electron and building applications on the desktop, with Javascript.
Evan Morikawa
May 27, 2016
More Decks by Evan Morikawa
See All by Evan Morikawa
The Age of the Javascript-Powered Desktop — Dinosaur JS
emorikawa
0
950
Node on the Desktop — Node Conf Oslo 2016
emorikawa
0
150
JS Takes the Desktop — Scotland JS
emorikawa
0
230
Plugins with React & Challenges with Data
emorikawa
0
660
Space City JS — Using Electron & React to Build N1
emorikawa
1
250
MIT N1 Preview
emorikawa
0
550
Scaling Flux
emorikawa
0
630
Other Decks in Programming
See All in Programming
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
190
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
150
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
290
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
380
XHTMLが残したもの
yosuke_furukawa
PRO
1
350
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
220
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
270
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
490
バグを直したら useEffect が消えた
colorful12
3
800
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
不幸な GC
chencmd
0
860
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
500
A designer walks into a library…
pauljervisheath
211
24k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
320
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
New Earth Scene 8
popppiees
3
2.5k
Ethics towards AI in product and experience design
skipperchong
2
360
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