Desktop-app met Electron: de complete gids.
Wil je een desktop-applicatie laten maken voor Mac en Windows? Hieronder lees je wat Electron is, wanneer een desktop-app beter past dan een webapplicatie en waar je op let bij beveiliging, distributie en onderhoud.
Wat is Electron?
Electron is een open-source framework, oorspronkelijk ontwikkeld door GitHub, om desktopprogramma’s te bouwen met webtechniek. Een Electron-app bestaat uit een hoofdproces dat in Node.js draait en een of meer vensters die in Chromium worden weergegeven. Het hoofdproces heeft toegang tot het besturingssysteem; de vensters tonen de gebruikersinterface.
Doordat de interface met HTML, CSS en JavaScript of TypeScript wordt gebouwd, kunnen we dezelfde kennis, componenten en soms zelfs code gebruiken als voor een webapplicatie. Dat maakt de ontwikkeling efficiënt, zeker als er naast de desktop-app ook een webversie of een mobiele app bestaat.
Desktop-app of webapplicatie?
Een webapplicatie heeft grote voordelen: niets installeren, overal bereikbaar en altijd de nieuwste versie. Voor de meeste bedrijfssoftware is dat de beste keuze. Een desktop-app is pas zinvol als de software iets nodig heeft wat de browser niet of slecht kan.
Denk aan offline werken, directe toegang tot lokale bestanden en mappen, aangesloten apparaten, meerdere vensters op verschillende schermen, een icoon in de menubalk of zware verwerking op de computer zelf. Vaak is een combinatie het sterkst: een webapplicatie voor de meeste gebruikers en een desktop-app voor de plekken waar dat echt nodig is, met dezelfde server erachter.
Electron, Tauri of native?
Electron is niet de enige manier om een desktop-app te maken. Tauri gebruikt de ingebouwde browser van het besturingssysteem en levert daardoor kleinere apps, met een serverkant in Rust. Een native app, bijvoorbeeld met Swift voor macOS of .NET voor Windows, sluit het best aan bij één platform, maar vraagt per platform een eigen codebasis.
Electron is vaak de verstandige keuze als de app op Mac én Windows moet werken, als er al webtechniek in je organisatie is en als een volwassen ecosysteem met veel beproefde onderdelen belangrijk is. We adviseren op basis van je situatie, niet op basis van voorkeur.
Beveiliging van een Electron-app
Omdat een Electron-app bij de computer kan, is beveiliging extra belangrijk. Vensters krijgen geen directe toegang tot Node.js; ze werken via een preload-script dat alleen vooraf bepaalde functies doorgeeft (context isolation). Inhoud van buiten wordt niet in een venster met rechten geladen, en navigatie naar onbekende adressen wordt geblokkeerd.
Wachtwoorden en sleutels sla je op in de beveiligde opslag van het besturingssysteem, zoals de Sleutelhanger op macOS. En omdat Electron zelf een browser bevat, moet die met nieuwe versies worden bijgewerkt. Zie ook onze security audits.
Distributie: installers, ondertekening en updates
Een desktop-app moet bij de gebruiker komen. Voor macOS maken we een .dmg- of .zip-bestand, voor Windows een installer. Beide worden digitaal ondertekend; voor macOS laten we de app daarnaast door Apple controleren (notarisatie). Zonder die stappen krijgt de gebruiker een waarschuwing of kan hij de app niet openen.
Updates verlopen automatisch via een updatekanaal op je eigen server of een opslagdienst. De app controleert of er een nieuwe versie is, downloadt die op de achtergrond en installeert hem bij de volgende start. Desgewenst kan de app ook via de Mac App Store of de Microsoft Store worden verspreid.
Onderhoud en levensduur
Electron brengt regelmatig nieuwe hoofdversies uit, gekoppeld aan nieuwe versies van Chromium, en ondersteunt alleen de recentste versies met beveiligingsupdates. Een desktop-app die jaren niet wordt bijgewerkt, loopt daardoor achter. Ook macOS en Windows veranderen en vragen soms om aanpassingen.
We spreken daarom vooraf af hoe vaak de app wordt bijgewerkt, wie de certificaten beheert en hoe nieuwe versies worden getest voordat ze naar gebruikers gaan. Dat kan onderdeel zijn van een onderhoudsafspraak.