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
AUGM 2017 Electron talk
Search
Neo Kusanagi
November 18, 2017
Technology
0
96
AUGM 2017 Electron talk
Neo Kusanagi
November 18, 2017
Tweet
Share
More Decks by Neo Kusanagi
See All by Neo Kusanagi
From Commit to Mulitverse
neokn
0
190
From Traditional Web to Modern Web
neokn
0
190
Other Decks in Technology
See All in Technology
asken AI勉強会(Android)
tadashi_sato
0
140
Connect 100+を支える技術
kanyamaguc
0
160
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
1
420
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
0
1.4k
SpringBoot x TestContainerで実現するポータブル自動結合テスト
demaecan
0
120
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
300
KubeCon + CloudNativeCon Japan 2025 に行ってきた! & containerd の新機能紹介
honahuku
0
120
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
160
KiCadでPad on Viaの基板作ってみた
iotengineer22
0
150
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
180
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
BBQ
matthewcrist
89
9.7k
How to Ace a Technical Interview
jacobian
277
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Faster Mobile Websites
deanohume
307
31k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Designing for Performance
lara
609
69k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Code Review Best Practice
trishagee
69
18k
Transcript
ELECTRON Jr / Neo 2017-11-18 AUGM
[email protected]
What is Electron ?
V8 Chromium Node https://electronjs.org
V8 Chromium Node Electron = + +
Chromium Node Many Packages Full-Stack Browser Beautiful Design and Interaction
With HTML, CSS, JavaScript
None
– Anonymous “How to Start ?”
REQUIREMENT https://nodejs.org Install nodejs with npm
Node.js Package Manager Node.js Installer will include it e.g. Node.js
v8.9.1 withnpm v5.5.1 Node.js v6.12.0 with npm v3.10.10
SUGGESTION • HomeBrew: package manager for macOS • nvm: node
version manager • Yarn: faster then npm
QUICK START https://github.com/neokn/augm2017-electron-quick-start
QUICK START your-repo/ ├──package.json └──app/ ├── package.json ├── index.js └──
index.html
QUICK START your-repo/ ├──package.json └──app/ ├── package.json ├── index.js └──
index.html For development
QUICK START your-repo/ ├──package.json └──app/ ├── package.json ├── index.js └──
index.html Will Pack into Electron
QUICK START your-repo/ ├──package.json └──app/ ├── package.json ├── index.js └──
index.html For distribution
QUICK START • npm install • npm run start •
npm run dist
IPC inter-process communication
Chromium Node ipcMain ipcRenderer
Chromium Node ipcRenderer.send('message') ipcMain.on('message', (e, v) => { e.sender.send('reply', 'pong')
})
Chromium Node ipcRenderer.send('message') ipcMain.on('message', (e, v) => { e.sender.send('reply', 'pong')
})
Chromium Node ipcMain.on('message', (e, v) => { e.sender.send('reply', 'pong') })
ipcRenderer.on('reply', (e, v) => { alert(v) })
Chromium Node ipcMain.on('message', (e, v) => { e.sender.send('reply', 'pong') })
ipcRenderer.on('reply', (e, v) => { alert(v) })
Chromium Node ipcMain.on('message', (e, v) => { e.sender.send('reply', 'pong') })
ipcRenderer.on('reply', (e, v) => { alert(v) })
DEMO
DISTRIBUTION
DISTRIBUTION • Install electron-builder package • Write electron-builder.json
DEMO
MOZLI
MOZLI MozJpeg + Guetzli https://github.com/google/guetzli https://github.com/mozilla/mozjpeg
PROS & CONS
PROS • Easy to Development • Cross-platform Distribution
CONS • Application Size > 100MB • Source Code Protection
(.asar is easy to extract)
THANKS