Förderjahr 2019 / Stipendien Call #14 / ProjektID: 4577 / Projekt: Performance-Analyse von nativen und plattformübergreifenden Entwicklungsansätzen bei UI-Interaktion
Derzeit besitzen circa 2,71 Milliarden Menschen ein Smartphone und jeder von ihnen benutzt täglich mehrere Apps. Einige Apps fühlen sich besser an, da sie flüssig laufen, bei anderen ist die Responsezeit auf Eingaben des Users träge, was zu einer negativen Erfahrung führt. Läuft eine App nicht zufriedenstellend für den User, ist dieser heutzutage schnell bereit, nach Alternativen zu suchen. Womit kann das verhindert werden?
Native vs. plattformübergreifende Programmierung
Eine mögliche Antwort darauf wäre, native Applikationen für jede einzelne Plattform (Android, iOS, Windows) zu programmieren, um sicherzustellen, dass die Benutzeroberfläche und die Bedienung vollständig mit dem jeweiligen System kompatibel sind. Native Applikationen haben auch keine Beschränkungen beim Zugriff auf spezifische Smartphone-Hardware, wodurch sie flüssiger und performanter werden. Diese Art der Entwicklung ist jedoch sowohl zeit- als auch kostenintensiv.
Die zweite Variante wäre, plattformübergreifende Applikationen zu programmieren. Das bedeutet, dass nur eine Applikation programmiert wird und somit nur eine Codebasis für alle Systeme besteht. Hier müssen jedoch Abstriche hinsichtlich der Performance gemacht werden, da die Applikationen nicht vollständig an das Betriebssystem und die Hardware angepasst werden können.
Ein weiterer wichtiger Punkt ist, dass bei plattformübergreifenden Applikationen die Ressourcenauslastung, insbesondere des Prozessors und des Arbeitsspeichers (CPU und RAM), um einiges höher ist, als bei nativen Applikationen. Dies führt in weiterer Folge zu einem erhöhten Energieverbrauch, was wiederum zu kürzeren Akkulaufzeiten und steigender Wärmeentwicklung des Smartphones führt.
Performance-Analyse
In meiner Masterarbeit werde ich mich dem Performance-Vergleich von nativen und plattformübergreifenden Entwicklungsansätzen bei typischen UI-Interaktionen widmen. Zu UI-Interaktionen zählen verschiedene Arten von Gesten mit welchen eine Applikation bedient wird, dazu gehören unter anderem scrollen, wischen und tippen. Dazu werde ich untersuchen, welche UI-Interaktionen häufig genutzt werden und jede ausgewählte Geste einzeln sowohl nativ als auch plattformübergreifend in einer selbstentwickelten App nachstellen. Danach wird in einem vollautomatischen Testfall die Performance der einzelnen Apps getestet und miteinander vergleichen. Für den Performancevergleich werde ich die Ressourcenauslastung (CPU und RAM) bei der Ausführung dieser Gesten heranziehen.
Die Ausführung der einzelnen Gesten im vollautomatischen Testverfahren ermöglicht einen direkten Vergleich der Testergebnisse. Auf diese Weise lässt sich die Ressourcenauslastung zwischen den unterschiedlichen Entwicklungsansätzen vergleichen.
Relevanz
Meine Masterarbeit soll nach Fertigstellung sowohl Entwicklern wie auch Firmen helfen, den richtigen Entwicklungsansatz (nativ oder plattformübergreifend) für die Anforderungen ihrer Applikation zu wählen.
Die Wahl des passenden Entwicklungsansatzes ist eine grundlegende Entscheidung bei der Entwicklung von mobilen Applikationen. Ein späterer Wechsel ist in den meisten Fällen mit sehr hohen Kosten und großem Aufwand verbunden. Das Wissen, wie hoch der zu erwartende Ressourcenverbrauch bei UI-Interaktionen sein wird, ist ein wichtiger Indikator, welcher Entwicklungsansatz gewählt werden soll.