Veröffentlicht: von

Problemstellung

Die Entwicklung von Cross-Plattform Anwendungen stellt, insbesondere für kleine Unternehmen, noch immer eine große Herausforderung dar: Gewöhnlich wird zur Umsetzung C++ und etablierte Bibliothekslösungen wie Qt genutzt. Aus wirtschaftlicher Sicht kann dies eine große Herausforderung darstellen, da die Verfügbarkeit von erfahrenen C++-Entwicklern im Vergleich zu etwa erfahrenen JavaScript-Entwicklern deutlich geringer ist, durch das geringe Angebot jedoch auch die Gehälter für diese Entwickler oft sehr hoch sind. Ähnlich verhält es sich mir C++-Cross-Plattform-Bibliotheken, die entweder wie Qt für eine kommerzielle Verwendung lizensiert  werden müssen, oder im Falle von freien Bibliotheken wie GTK++ oft veraltet sind und keine moderne User Experience bieten.

Electron soll dieses Problem lösen: Durch die Chromium-Engine, Node.js und V8 ist man in der Lage mittels JavaScript, CSS und HTML Desktop-Anwendungen mit Plattform-übergreifend gleicher Funktonalität sowie Aussehen zu erstellen. Die Entwicklung mit Javascript ist aus den oben angeführten Gründen auch aus wirtschaftlicher Sicht interessant. Ebenso ist Electron aus Usability-Gründen interessant, da durch die Verwendbarkeit populärer JavaScript-Bibliotheken eine zeitgemäße und von Web-Anwendungen vertraute User-Experience geschaffen werden kann. Letztlich besteht auch die Möglichkeit eine mit Electron umgesetzte Anwendung als Browser-basierte Web-Anwednung verfügbar zu machen, oder gar auf dieser Grundlage eine Mobile-Variante zu entwickeln.

Durch die relative Neuheit der Technologie sind bisher größtenteils Anwendungen mit nur geringem Funktionsumfang umgesetzt worden. Die wenigsten haben eine höherwertige grafische Aufmachung und basieren auf wenig rechenintensiven Operationen. In der Arbeit soll geklärt werden, inwiefern sich Electron zur Umsetzung von komplexen Anwendungen eignet.

Unter dieser Definition werden Anwendungen verstanden, die auf großen Mengen komplex aufgebauten, voneinander abhängigen Daten operieren. Diese sollten grafisch ansprechend präsentiert werden und für den Nutzer intuitiv und schnell erfassbar sowie veränderbar sein. Dabei muss der Nutzer immer unmittelbares Feedback auf seine Aktionen erhalten, Ladezeiten sollten minimal sein und Animationen bzw. die Bildwiederholungsraten müssen flüssig sein. Eine weitere Konkretisierung sowie Quantifizierung der genannten Merkmale wird Teil der Arbeit sein.

Weitere zu untersuchende Aspekte sind die folgenden:

  • Aus Usability-Sicht soll untersucht werden, wie komplex es sich gestaltet, auf verschiedenen Plattformen, insbesondere PC und MacOS, tatsächlich das gleiche „Look-And-Feel“ zu erreichen.
  • Aus Entwicklersicht soll untersucht werden, wie kompatibel Electron mit bestehenden Javascript-Bibliotheken sowie bestehenden Programmstücken in anderen Sprachen ist. Außerdem soll geprüft werden, ob und in welchem Maß plattformspezifischer Code erforderlich ist.

Durch die Nutzung von Webtechnologien zur Umsetzung von Anwendungen und Chromium zur Darstellung soll auch untersucht werden, wie komplex sich die Portierung einer Electron-Anwendung als Web-Anwendung gestaltet. Dies ist besonders aus wirtschaftlicher Sicht interessant, um neue Anwendergruppen zu erreichen.

Für viele Electron-Projekte existierte bereits eine Vorlage in Form einer Web-Anwendung: Der umgekehrte Weg, eine Web-Anwendung aus einer bestehenden Electron-Anwendung zu entwickeln wurde, wenn überhaupt, nur selten gegangen. Inwiefern und unter welchen Umständen eine solche Herangehensweise sinnvoll und machbar ist soll ein weiterer zentraler Punkt der Arbeit sein.

Abgeleitete Forschungsfrage

Zusammenfasssend lässt sich die Forschungsfrage der Arbeit wie folgt zusammenfassen:

  • Ist es möglich, unter den oben genannten Definition als komplex geltende Anwendungen mit Electron umzusetzen?
  • Welche Vor- und Nachteile bietet Electron gegenüber anderen Möglichkeiten und worauf muss bei der Entwicklung mit Electron geachtet werden?

Vorgehen

Es muss ein Anforderungskatalog erstellt werden, der klar und verständlich zusammenfasst, welche Anforderungen an eine komplexe Software mit den weiter oben beschriebenen Merkmalen gestellt werden. Aufgrund dieser Anforderungen sollen typische Komponenten, wie beispielweise interaktive Textfelder oder interaktive Flowcharts, bestimmt werden. Diese sollen später zur  praktischen Überprüfung umgesetzt werden. Zunächst werden jedoch die Vor- und Nachteile sowie besondere Merkmale von Electron herausgearbeitet, sowie möglicher Alternativen vorgestellt und vergleichen. Zum Vergleichen der Alternativen mit Electron werden neben der Umsetzbarkeit der vorher als notwendig definierten Komponenten auch wirtschaftliche und nutzer- sowie entwicklerseitige Anliegen herangezogen.

Schließlich werden ein oder mehrere Proof-Of-Concepts zur Umsetzung der definierten Komponenten erstellt. Dazu werden Komponenten gewählt die in Software Articy:draft verwendet werden, die durch das Erfüllen der genannten Anforderungen an eine komplexe Software  als Praxisbeispiel dient. Nach der Umsetzung der Proof-of-Concepts soll durch eine praktische Umsetzung abgeschätzt werden wie komplex sich die Portierung als Web-Anwendung gestaltet. Weiterhin soll die Portierung auf mobile Geräte erprobt werden und abgeschätzt werden, ob eine Anpassung unter wirtschaftlichen sowie entwicklungstechnischen Gesichtspunkten anstatt einer kompletten Neuentwicklung zu rechtfertigen ist.

Externer Kooperationspartner

Articy Software GmbH

Bearbeiter

Jonas Frenz

Abgabe

Ende 2017