Technologie · Electron

Een desktop-app laten maken met Electron.

Soms hoort software niet in de browser, maar op de computer zelf: offline werken, lokale bestanden, meerdere schermen of aangesloten apparaten. Met Electron bouwen we één desktop-app voor Mac en Windows, met dezelfde webtechniek als je webapplicatie.

Mac en WindowsOok offlineAutomatische updates
Wanneer past een desktop-app

Wanneer kies je voor een desktop-app?

De meeste bedrijfssoftware werkt prima in de browser. Een desktop-app komt op tafel als de software meer van de computer nodig heeft. Bijvoorbeeld in deze situaties.

Werken zonder verbinding

Op locatie, in een loods of onderweg: de app moet blijven werken en synchroniseert zodra er weer internet is.

Lokale bestanden

Grote bestanden openen, bewerken of verwerken op de computer zelf, zonder ze eerst te uploaden.

Apparaten aansluiten

Printers, scanners, weegschalen, kassa’s of andere hardware via USB, seriële poort of het lokale netwerk.

Meerdere vensters en schermen

Een bedieningsscherm voor de medewerker en een tweede venster op een groot scherm of beamer.

Zware taken lokaal

Rekenen, converteren of beeld en geluid verwerken op de eigen computer, zonder te wachten op een server.

Een eigen product verkopen

Software die je als programma aan klanten levert of verkoopt, met een eigen installer en licentie.

Hoe het werkt

Webtechniek, als programma op je computer.

Electron combineert twee bekende onderdelen. Daardoor kan de app er net zo goed uitzien als een moderne webapplicatie en toch doen wat een gewoon programma doet.

  1. 01

    De vensters

    Elk venster is een webpagina die draait in Chromium, de basis van Google Chrome. De schermen bouwen we met dezelfde techniek als een webapplicatie, bijvoorbeeld React en TypeScript.

  2. 02

    Het hoofdproces

    Een Node.js-proces op de achtergrond regelt alles wat de computer raakt: bestanden, menu’s, meldingen, aangesloten apparaten en de verbinding met je server.

  3. 03

    De veilige brug

    Vensters en hoofdproces praten via een smalle, vooraf bepaalde brug. Een venster kan dus alleen vragen wat we expliciet toestaan, en nooit zomaar bij de computer.

Bekende programma’s werken zo. Onder meer Visual Studio Code, Slack en Microsoft Teams zijn (of waren) met Electron gebouwd. Het is een volwassen techniek met een groot ecosysteem.

Meer dan de app zelf

Installeren, ondertekenen en bijwerken.

Een desktop-app moet ook netjes bij de gebruiker komen en actueel blijven. Dat hoort bij de bouw, niet erna.

Ondertekend en vertrouwd

We ondertekenen de app met een certificaat van Apple en voor Windows, zodat er geen waarschuwing over een onbekende ontwikkelaar verschijnt.

Automatische updates

De app haalt nieuwe versies zelf op en installeert ze bij de volgende start. Zo werkt iedereen met dezelfde versie.

Veilig ingericht

Vensters krijgen geen directe toegang tot het systeem, inhoud van buiten wordt afgeschermd en gevoelige gegevens worden versleuteld opgeslagen.

Werkwijze

Zo pakken we het samen aan.

Elke stap kun je volgen. Meer over onze werkwijze.

  1. 01

    Je bedrijf begrijpen

    We praten met jou en de mensen die er dagelijks mee werken, en brengen in kaart waar software het verschil maakt.

  2. 02

    Aanpak en eerste scope

    Je krijgt een voorstel voor een afgebakende eerste versie: wat erin zit, wat later komt en wat het kost.

  3. 03

    Bouwen, testen, bespreken

    We bouwen in korte stappen en testen elke stap. Je ziet tussentijds werkende onderdelen en geeft feedback.

  4. 04

    In gebruik en verbeteren

    We zetten het live, helpen je team op weg en blijven verbeteren als je bedrijf verandert.

Investering

Wat bepaalt de investering?

Het aantal schermen, de koppeling met je server of andere systemen, offline werken, aangesloten apparaten en het aantal platforms bepalen grotendeels de omvang. Ook ondertekening en een updatekanaal horen erbij. Na een kennismaking krijg je een voorstel met een afgebakende eerste versie.

Gids

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.

Veelgestelde vragen

Veelgestelde vragen over Electron.

Staat je vraag er niet bij? Bel 010 – 303 03 40 of stuur ons een bericht.

Electron is een open-source framework om desktopprogramma’s te bouwen met webtechniek: HTML, CSS en JavaScript of TypeScript. Het combineert de Chromium-browser met Node.js, zodat de app er als een website uitziet maar ook bij bestanden, vensters en apparaten op de computer kan.

Lilo steekt zijn duim omhoog

Waar loopt jouw bedrijf tegenaan?

Vertel ons wat je wilt verbeteren. Je hoeft nog geen uitgewerkt plan te hebben. We bespreken je situatie en kijken welke volgende stap past.

Je hoeft nog geen specificatie te hebben. We reageren binnen één werkdag. Liever bellen? 010 303 03 40

We gebruiken je gegevens alleen om je vraag te beantwoorden. Lees de privacyverklaring.