GitHub Electron (dříve Atom Shell) umožňuje vytvářet cross-platform desktopové aplikace v HTML, CSS a JavaScriptu. VS Code, Slack i Atom — všechny běží na Electronu.
Web technologie na desktopu¶
Electron kombinuje Chromium renderer s Node.js runtime. Výsledek? Plnohodnotná desktopová aplikace s přístupem k file systému, systémovým notifikacím, nativním menu a tray ikonám — vše v JavaScriptu.
GitHub vyvinul Electron pro svůj editor Atom a následně ho open-sourcoval. Dnes na Electronu běží VS Code, Slack, Discord, WhatsApp Desktop a stovky dalších aplikací.
Architektura: Main a Renderer process¶
Electron má dva typy procesů:
// Main process (main.js)
const { app, BrowserWindow } = require('electron');
app.on('ready', () => {
const win = new BrowserWindow({ width: 1200, height: 800 });
win.loadURL('file://' + __dirname + '/index.html');
});
Main process — spravuje okna, systémové interakce, lifecycle aplikace. Jeden per aplikace.
Renderer process — každé okno je separátní Chromium renderer. Může používat Node.js API přes IPC komunikaci s main procesem.
Výhody a kritika¶
Výhody Electronu jsou zřejmé:
- Jeden kód pro Windows, macOS a Linux
- Obrovský ekosystém npm balíčků
- Rychlý prototyping — web vývojář zvládne desktop app
- Chromium DevTools pro debugging
Kritika je také oprávněná:
- Vysoká spotřeba RAM (každá app = Chromium instance)
- Velká velikost distribuce (~100MB minimum)
- Pomalejší start oproti nativním aplikacím
- Nekonzistentní look & feel s platformou
Distribuce a aktualizace¶
Electron poskytuje nástroje pro profesionální distribuci:
- electron-packager** — zabalení do platform-specific binárky
- electron-builder** — instalátory pro Windows (NSIS), macOS (DMG), Linux (deb/rpm)
- autoUpdater** — automatické aktualizace (Squirrel framework)
- Code signing pro důvěryhodnou distribuci
Závěr: pragmatická volba¶
Electron není ideální pro každou desktopovou aplikaci, ale je pragmatická volba pro týmy s webovými zkušenostmi. Pokud vaše aplikace nevyžaduje extrémní výkon nebo minimální footprint, Electron vám ušetří měsíce vývoje oproti nativním alternativám.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns