


{"id":1128,"date":"2017-07-27T17:04:16","date_gmt":"2017-07-27T15:04:16","guid":{"rendered":"http:\/\/lwibs01.gm.fh-koeln.de\/blogs\/bente\/?p=1128"},"modified":"2017-07-27T17:04:16","modified_gmt":"2017-07-27T15:04:16","slug":"ma-electron-eine-technologiestudie-zur-cross-platform-entwicklung-von-komplexen-ui-applikationen","status":"publish","type":"post","link":"http:\/\/blogs.gm.fh-koeln.de\/bente\/2017\/07\/27\/ma-electron-eine-technologiestudie-zur-cross-platform-entwicklung-von-komplexen-ui-applikationen\/","title":{"rendered":"MA: Electron &#8211; Eine Technologiestudie zur Cross-Platform-Entwicklung von komplexen UI-Applikationen"},"content":{"rendered":"<h4>Problemstellung<\/h4>\n<p class=\"lead\">Die Entwicklung von Cross-Plattform Anwendungen stellt, insbesondere f\u00fcr kleine Unternehmen, noch immer eine gro\u00dfe Herausforderung dar: Gew\u00f6hnlich wird zur Umsetzung C++ und etablierte Bibliotheksl\u00f6sungen wie Qt genutzt. Aus wirtschaftlicher Sicht kann dies eine gro\u00dfe Herausforderung darstellen, da die Verf\u00fcgbarkeit von erfahrenen C++-Entwicklern im Vergleich zu etwa erfahrenen JavaScript-Entwicklern deutlich geringer ist, durch das geringe Angebot jedoch auch die Geh\u00e4lter f\u00fcr diese Entwickler oft sehr hoch sind. \u00c4hnlich verh\u00e4lt es sich mir C++-Cross-Plattform-Bibliotheken, die entweder wie Qt f\u00fcr eine kommerzielle Verwendung lizensiert\u00a0 werden m\u00fcssen, oder im Falle von freien Bibliotheken wie GTK++ oft veraltet sind und keine moderne User Experience bieten.<\/p>\n<p>Electron soll dieses Problem l\u00f6sen: Durch die Chromium-Engine, Node.js und V8 ist man in der Lage mittels JavaScript, CSS und HTML Desktop-Anwendungen mit Plattform-\u00fcbergreifend gleicher Funktonalit\u00e4t sowie Aussehen zu erstellen. Die Entwicklung mit Javascript ist aus den oben angef\u00fchrten Gr\u00fcnden auch aus wirtschaftlicher Sicht interessant. Ebenso ist Electron aus Usability-Gr\u00fcnden interessant, da durch die Verwendbarkeit popul\u00e4rer JavaScript-Bibliotheken eine zeitgem\u00e4\u00dfe und von Web-Anwendungen vertraute User-Experience geschaffen werden kann. Letztlich besteht auch die M\u00f6glichkeit eine mit Electron umgesetzte Anwendung als Browser-basierte Web-Anwednung verf\u00fcgbar zu machen, oder gar auf dieser Grundlage eine Mobile-Variante zu entwickeln.<\/p>\n<p>Durch die relative Neuheit der Technologie sind bisher gr\u00f6\u00dftenteils Anwendungen mit nur geringem Funktionsumfang umgesetzt worden. Die wenigsten haben eine h\u00f6herwertige grafische Aufmachung und basieren auf wenig rechenintensiven Operationen. In der Arbeit soll gekl\u00e4rt werden, inwiefern sich Electron zur Umsetzung von <strong>komplexen Anwendungen<\/strong> eignet.<\/p>\n<p>Unter dieser Definition werden Anwendungen verstanden, die auf gro\u00dfen Mengen komplex aufgebauten, voneinander abh\u00e4ngigen Daten operieren. Diese sollten grafisch ansprechend pr\u00e4sentiert werden und f\u00fcr den Nutzer intuitiv und schnell erfassbar sowie ver\u00e4nderbar sein. Dabei muss der Nutzer immer unmittelbares Feedback auf seine Aktionen erhalten, Ladezeiten sollten minimal sein und Animationen bzw. die Bildwiederholungsraten m\u00fcssen fl\u00fcssig sein. Eine weitere Konkretisierung sowie Quantifizierung der genannten Merkmale wird Teil der Arbeit sein.<\/p>\n<p>Weitere zu untersuchende Aspekte sind die folgenden:<\/p>\n<ul>\n<li>Aus Usability-Sicht soll untersucht werden, wie komplex es sich gestaltet, auf verschiedenen Plattformen, insbesondere PC und MacOS, tats\u00e4chlich das gleiche &#8222;Look-And-Feel&#8220; zu erreichen.<\/li>\n<li>Aus Entwicklersicht soll untersucht werden, wie kompatibel Electron mit bestehenden Javascript-Bibliotheken sowie bestehenden Programmst\u00fccken in anderen Sprachen ist. Au\u00dferdem soll gepr\u00fcft werden, ob und in welchem Ma\u00df plattformspezifischer Code erforderlich ist.<\/li>\n<\/ul>\n<p>Durch die Nutzung von Webtechnologien zur Umsetzung von Anwendungen und Chromium zur Darstellung soll auch untersucht werden, wie komplex sich die <em>Portierung<\/em> einer Electron-Anwendung als Web-Anwendung gestaltet. Dies ist besonders aus wirtschaftlicher Sicht interessant, um neue Anwendergruppen zu erreichen.<\/p>\n<p>F\u00fcr 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 \u00fcberhaupt, nur selten gegangen. Inwiefern und unter welchen Umst\u00e4nden eine solche Herangehensweise sinnvoll und machbar ist soll ein weiterer zentraler Punkt der Arbeit sein.<\/p>\n<h4>Abgeleitete Forschungsfrage<\/h4>\n<p>Zusammenfasssend l\u00e4sst sich die Forschungsfrage der Arbeit wie folgt zusammenfassen:<\/p>\n<ul>\n<li>Ist es m\u00f6glich, unter den oben genannten Definition als komplex geltende Anwendungen mit Electron umzusetzen?<\/li>\n<li>Welche Vor- und Nachteile bietet Electron gegen\u00fcber anderen M\u00f6glichkeiten und worauf muss bei der Entwicklung mit Electron geachtet werden?<\/li>\n<\/ul>\n<h4>Vorgehen<\/h4>\n<p>Es muss ein Anforderungskatalog erstellt werden, der klar und verst\u00e4ndlich 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\u00e4ter zur\u00a0 praktischen \u00dcberpr\u00fcfung umgesetzt werden. Zun\u00e4chst werden jedoch die Vor- und Nachteile sowie besondere Merkmale von Electron herausgearbeitet, sowie m\u00f6glicher 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.<\/p>\n<p>Schlie\u00dflich werden ein oder mehrere Proof-Of-Concepts zur Umsetzung der definierten Komponenten erstellt. Dazu werden Komponenten gew\u00e4hlt die in Software Articy:draft verwendet werden, die durch das Erf\u00fcllen der genannten Anforderungen an eine komplexe Software \u00a0als Praxisbeispiel dient. Nach der Umsetzung der Proof-of-Concepts soll durch eine praktische Umsetzung abgesch\u00e4tzt werden wie komplex sich die Portierung als Web-Anwendung gestaltet. Weiterhin soll die Portierung auf mobile Ger\u00e4te erprobt werden und abgesch\u00e4tzt werden, ob eine Anpassung unter wirtschaftlichen sowie entwicklungstechnischen Gesichtspunkten anstatt einer kompletten Neuentwicklung zu rechtfertigen ist.<\/p>\n<h4>Externer Kooperationspartner<\/h4>\n<p>Articy Software GmbH<\/p>\n<h4>Bearbeiter<\/h4>\n<p>Jonas Frenz<\/p>\n<h4>Abgabe<\/h4>\n<p>Ende 2017<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Arbeit untersucht aus Usability-Sicht, wie komplex es sich gestaltet, auf verschiedenen Plattformen, insbesondere PC und MacOS, das gleiche &#8222;Look-And-Feel&#8220; zu erreichen. Hierf\u00fcr wird die Plattform Electron genauer analysiert. Aus Entwicklersicht soll untersucht werden, wie kompatibel Electron mit bestehenden Javascript-Bibliotheken sowie bestehenden Programmst\u00fccken in anderen Sprachen ist. Au\u00dferdem soll gepr\u00fcft werden, ob und in welchem Ma\u00df plattformspezifischer Code erforderlich ist.<\/p>\n","protected":false},"author":39,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[20665],"tags":[9885,27555,27554,21839,9947],"class_list":["post-1128","post","type-post","status-publish","format-standard","hentry","category-laufende-arbeiten","tag-architektur","tag-cross-plattform-entwicklung","tag-electron","tag-proof-of-concept","tag-ui"],"acf":[],"_links":{"self":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/comments?post=1128"}],"version-history":[{"count":1,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1128\/revisions"}],"predecessor-version":[{"id":1129,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/posts\/1128\/revisions\/1129"}],"wp:attachment":[{"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/media?parent=1128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/categories?post=1128"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blogs.gm.fh-koeln.de\/bente\/wp-json\/wp\/v2\/tags?post=1128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}