Vielleicht hast Du Dich schon einmal gefragt, wie Du selbst eine plattformübergreifende Anwendung programmieren kannst. Dazu gibt es diverse Optionen, die mehr oder weniger kompliziert sind. Eine Möglichkeit für die Erstellung einer plattformübergreifenden App ist der Einsatz des Electron-Frameworks. Nun stellt sich aber die Frage:
Was Ist Electron?
Allgemein lässt sich sagen, dass es sich um ein Framework handelt, das unter einer Open-Source-Lizenz entwickelt wird. Du kannst damit plattformübergreifende Desktop-Anwendungen oder Apps erstellen. Das klingt auf den ersten Blick kompliziert, ist es aber nicht. Du benutzt für die Programmierung herkömmliche Web-Technologien wie zum Beispiel HTML, CSS und JavaScript.
Also ein paar Grundlagen der Programmierung musst Du schon kennen. Electron setzt als Backend auf NodeJS und das muss auf Deinem Entwicklungs-Computer installiert sein.
Im Endeffekt realisierst Du eine Web-Anwendung mit Chromium-Basis, die Du im Anschluss auf vielen verschiedenen Desktops einsetzen kannst. Das hast Du richtig gelesen. Die mit Electron entwickelten Apps lassen sich auf Windows, macOS und Linux gleichermaßen einsetzen.
Für Entwickler hat das Vorteile. Sie müssen keine neuen Programmiersprachen lernen. Positiv ist auch, dass Electron automatische Updates unterstützt. Gibt es eine neue Version Deiner App, kannst Du sie automatisch ausrollen.
Weiterhin können Deine plattformübergreifenden Apps auch die Systemleisten der Betriebssysteme nutzen, die Komponenten für die Benachrichtigungen und so weiter. Du siehst also, dass Electron viele Vorteile hat, wenn Du Dich für einen Weg mit geringem Widerstand entscheidest.
Electron Hat Auch Nachteile
An dieser Stelle muss man aber auch ganz klar die Nachteile des Frameworks nennen. Solche bequemen Lösungen sind meistens Kompromisse, mit denen Du leben musst. Beziehungsweise musst Du die Nachteile kennen und Du kannst Dich dann entscheiden, ob Electron für Deine App infrage kommt oder nicht. Für manche Anwendungen und Apps ist ein Einsatz von Electron sicherlich weniger gut geeignet.
Ein Nachteil von Electron-Apps ist, dass die Dateien relativ groß sind. Wie sprechen an dieser Stelle also von großen Downloads. Mit modernen Internetgeschwindigkeiten ist das kein Problem, allerdings solltest Du das im Auge behalten. Festplatten-Platz ist bei modernen Computern ebenfalls genug vorhanden. An dieser Stelle musst Du einfach selbst entscheiden, wo die Schmerzgrenze erreicht ist.
Weiterhin ist die Performance normalerweise schlechter als bei nativen Desktop-Apps. Auch hier kommt es wieder auf die Schmerzgrenze an. Was willst Du den Anwenderinnen und Anwendern zumuten und ist Deine App noch schnell genug? Nutzerinnen und Nutzer sind heutzutage schnell frustriert, wenn sie mehrere Sekunden auf eine Reaktion der App warten müssen. Du kennst Deine App selbst am besten und wenn sie schnell genug ist – warum nicht Electron?
Aktuelle Computer sind auch mit relativ viel Arbeitsspeicher ausgestattet. RAM kann man nie genug haben, heißt es in Nerd-Kreisen und das stimmt. Was der Rechner im RAM erledigen kann, ist viel schneller, auch wenn SSDs bezüglich Auslagerungsdateien viel schneller sind als herkömmliche Festplatten. Electron-Apps brauchen verglichen zu nativen Desktop-Apps aber viel mehr Arbeitsspeicher. Erneut kommt es darauf an, wie viel Du einem Computer zumuten willst. Hält sich die Sache im Rahmen, ist es in Ordnung. Braucht die App aber viel zu viel RAM, gibt es möglicherweise eine bessere Lösung.
Triff Eine Entscheidung
Bevor Du Dich nun für oder gegen Electron entscheidest, wirf am besten einen Blick auf populäre Apps (<https://www.electronjs.org/apps>), die mit dem Framework entwickelt wurden. Lade Dir ein paar Programme herunter und überprüfe selbst, wie viele Ressourcen sie fressen.
Vielleicht willst Du Dir auch ein paar Apps ansehen, die ähnlich zu Deinem Projekt sind. Dann kannst Du entscheiden, ob eine Schmerzgrenze überschritten wird oder nicht.
Ich denke, dass es wichtig ist, ein Gefühl für die Apps und deren Ressourcen-Verbrauch zu bekommen. Ist das der Fall, kannst Du eine gute Entscheidung treffen. Wissen ist Macht – das trifft auch in diesem Fall zu,
Populäre Electron-Apps
Werfen wir einfach einen Blick auf einige populäre Electron-Apps. Du wirst vielleicht erstaunt sein, welche großen Namen das Framework benutzen.
WordPress
WordPress bietet eine Desktop-App für Windows, Linux und macOS an. Damit beschleunigt sich ein Zugriff auf die Website enorm, weil eine Kopie lokal gespeichert wird. Die App basiert auf Electron.
Einen Haken hat die Sache allerdings. Die App funktioniert problemlos mit Websites, die direkt auf WordPress.com gehostet sind. Es gibt die Möglichkeit, eine selbst gehostete Website zu benutzen, dafür brauchst Du aber das Plug-in JetPack. Eine schöne Lösung ist das nicht – eher von hinten durchs Auge.
BU: WordPress bietet eine Desktop-App an, die mit Electron umgesetzt ist.
Der Punkt ist aber, dass die Electron-App von WordPress schnell ist und sich der Ressourcen-Verbrauch im Rahmen hält.
Slack
Die beliebte Messaging-App für Teams, Slack, gibt es ebenfalls als plattformübergreifendes Desktop-Programm. Das Entwickler-Team hat sich dafür das hier vorgestellte Open-Source-Framework zunutze gemacht.
Mit der App kannst Du Dich sogar zu Google Drive verbinden. Damit wird die Arbeit im Team noch bequemer und produktiver. Home-Office ist keine Nische mehr und deswegen ist es wichtig, dass Teams Plattformen gemeinsam und unkompliziert nutzen können.
Rambox
Das Programm ist eine kostenlosen Open-Source-Messaging- und E-Mail-App. Sie vereint gängige Webanwendungen in einer Oberfläche. Rambox unterstützt über 600 Apps. Dazu gehören GMail, Office 365, Skype, Slack und Discord.
Selbstverständlich gibt es Rambox für Windows, macOS und Linux. Die Software gibt es als kostenlose Community Edition (CE), bei der über 99 Apps unterstützt werden. Die kostenpflichtigen Pro-Versionen unterstützen viele weitere Apps. Außerdem gibt es in den Pro-Versionen einen Adblocker und Du kannst Arbeitszeiten einstellen. Außerhalb dieser Zeiten stört Dich die App nicht mit Benachrichtigungen.
Wayward – Ein Spiel
Selbst Spiele werden mit dieser Lösung umgesetzt. Ein wunderschönes Beispiel ist Wayward. Es ist ein *Roguelike*-Spiel, bei dem Du in der Wildnis überleben musst. Das Game ist rundenbasiert. Es gibt über 500 Gegenstände, die Du herstellen und mit denen Du interagieren kannst. Weiterhin befinden sich über 45 Tiere und Kreaturen in Wayward, die Du unter anderem bekämpfen muss. Das Spiel sieht einfach putzig aus mit seiner Pixel-Grafik.
Wie Du im Video siehst, läuft das Spiel ziemlich gut und ruckelfrei. Wir wissen zwar nicht, welche Maschine der Entwickler hat, aber auch bei mir kann ich es problemlos ausführen. Die Anforderungen sind überschaubar. Du brauchst mindestens 2 GByte RAM und eine Grafikkarte mit WebGL-Unterstützung sowie 512 MByte Videospeicher. Massenspeicher ist 1 GByte notwendig. Das sollte für aktuelle Computer kein Problem sein.
Electron Ist Einen Gedanken Wert
Ja, Desktop-Apps, die mit diesem Framework erstellt wurden, brauchen mehr Ressourcen als native Programme. Dank moderner Computer ist die Latte aber sehr hoch angesetzt. Anhand der populären Programme siehst Du schon, was Du mit Electron realisieren kannst.
Wie überall musst Du Dein Zielpublikum kennen und wissen, was Du ihm zumuten kannst. Dann fällt Dir die Entscheidung leicht, das Framework zu benutzen oder eben nicht.