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
Fenster überall: Desktopanwendungen mit Angular...
Search
Fabian Gosebrink
September 28, 2017
Technology
0
94
Fenster überall: Desktopanwendungen mit Angular und Electron
Slides for my talk about Angular and Electron at the BASTA! in Mainz
Fabian Gosebrink
September 28, 2017
Tweet
Share
More Decks by Fabian Gosebrink
See All by Fabian Gosebrink
Modern Angular Apps in 2026
fabiangosebrink
0
23
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
82
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
130
Introducing state management into an application with NgRx
fabiangosebrink
0
200
Scalable architectures in Angular with Nx
fabiangosebrink
0
160
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
270
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
160
Mastering State Management in Angular with the NgRx Signal Store
fabiangosebrink
0
410
Angular Architectures with NgRx Stores & Effects
fabiangosebrink
0
120
Other Decks in Technology
See All in Technology
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
570
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
380
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
220
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
390
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
180
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
Featured
See All Featured
Designing Experiences People Love
moore
144
24k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
How to Talk to Developers About Accessibility
jct
2
140
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
What's in a price? How to price your products and services
michaelherold
247
13k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Transcript
Desktop applications with Angular & Electron
Fabian Gosebrink
https://media.giphy.com/media/VTxmwaCEwSlZm/200.gif
@FabianGosebrink
None
Desktop applications with
Desktops?
None
Desktops!
None
None
What is
"Electron is a tool for building Cross- Platform Desktop Apps
with Javascript, Html and CSS" Anybody I don’t know when
http://www.tvmovie.de/assets/2015/10/23/53910-romeo-und-julia-serien-fortsetzung.jpg
None
None
None
None
None
None
… and many more
None
None
> npm install electron -g
> electron .
package.json
package.json { "version": "1.0.0", "name": "first-one", "main": "index.js", "scripts": {
"start": "electron ." } }
index.js
index.js const { app, BrowserWindow } = require('electron'); let mainWindow
= null; app.on('ready', () => { mainWindow = new BrowserWindow({ width: 1024, height: 768 }); mainWindow.loadURL('file://' + __dirname + '/index.html'); });
index.html
None
Main Process vs Render Process
None
Communication
IPC
renderer.js
index.js
Notifications
renderer.js
None
Demo
None
None
None
None
None
None
index.js
index.js let startSendCpuValues = () => { setInterval(() => {
cpuValues.getCPUUsage((percentage) => { if (mainWindow) { mainWindow.webContents .send('newCpuValue', (percentage * 100).toFixed(2)); } }); }, 1000); }
> npm install ngx-electron
service.ts
“Cross-Platform? What about variation points?"
Dependency Injection
None
None
None
None
None
None
Tr ay Icon
index.js
None
> npm install electron-packager -g
> electron-packager .temp/desktop
> electron-packager .temp/desktop --platform=linux, win32
Demo
One Code every platform
One Codebase every platform
None
https://github.com/FabianGosebrink/Basta-2017 https://offering.solutions https://swissangular.com @FabianGosebrink
https://speakerdeck.com/zeke/electron-universe https://electron.atom.io/ https://electron.atom.io/docs/tutorial/quick-start/ https://github.com/maximegris/angular-electron/blob/master/src/app/providers/electron.service.ts https://github.com/sindresorhus/awesome-electron