Mobile App, Web App oder Hybrid App

Wo liegt der Unterschied?

Nachdem mittlerweile über 50 % ein Smartphone und knapp 30 % aller Deutschen ein Tablet besitzen, ist die Optimierung ihrer Internetseiten für alle privaten und insbesondere für die gewerblichen Webseiten-Betreiber auf diese Gerätetypen unumgänglich.

Responsive Web-Design

Um die sinnvolle und benutzerfreundliche Betrachtung von Webseiten auf mobilen Endgeräten zu ermöglichen wurden im Laufe der Zeit verschiedene Ansätze versucht. Die ersten Versuche, z. B. mit dem WAP Protokoll wurden schnell durch Browser wie den Safari auf iOS abgelöst, die Webseiten zwar komplett anzeigen, jedoch durch Touch-Gesten eine wesentlich bessere Navigation anboten. Mit zunehmenden Verbreitung mobiler Endgeräte wurde nach neuen Möglichkeiten gesucht und so rückte relativ schnell das Responsive Web-Design in den Fokus. Hierbei wird die Webseite, abhängig vom erkanntem Endgerät, so dargestellt, dass eine für den Benutzer optimale Usability sichergestellt wird. So hat der Benutzer auch auf kleinen Endgeräten wie einem Smartphone eine optimale UX.

Responsive Web-Design hat sich als der defacto Standard etabliert und gehört mittlerweile bei der Umsetzung von Webseiten und aller Arten von Apps zum guten Ton.

Mobile App

Parallel dazu bestand und besteht für Anbieter seit der Einführung mobiler Endgeräte die Möglichkeit, sich eine native App, die über den jeweiligen App-Store installiert und verwendet werden kann, entwickeln zu lassen. Vorteil dieser Technik war, zumindest bis vor einigen Jahren, dass nur so die gerätespezifische Hardware des jeweiligen Gerätes angesprochen werden konnte. Bis heute ist es aus sicherheitstechnischen Gründen nur eingeschränkt möglich die verschiedenen Komponenten des Endgerätes wie z. B. die Kamera direkt aus einer Webseite heraus anzusprechen. Hier haben sich mit HTML5 zwar neue Möglichkeiten ergeben, Diese sind jedoch bei weitem nicht so umfangreich wie in einer Mobile App. Nachdem die Mobile Apps exklusiv für ein Betriebssystem und die darauf laufenden Endgeräte entwickelt wird, zählt insbesondere die Performance zu den herausragenden Stärken dieser Technologien. So werden gerade bei der Entwicklung von grafiklastigen Spielen Mobile Apps noch auf längere Sicht die einzige wirkliche Alternative darstellen.

 

Web App

Mit dem raschen Aufstieg von JavaScript und der breiten Unterstützung durch die großen Hersteller entwickelten sich im Laufe der letzten Jahre zunehmend Frameworks und Libraries wie AngularJS oder EmberJS, die es Entwicklern erlauben auf Basis von JavaScript sogenannte Web Apps zu erstellen. Diese Web Apps werden im Browser nur einmal geladen, reduzieren somit die Datenübertragung vom/zum Server und bieten u. a. dadurch eine erhöhte Performance. Eine Web App wird wie ein Webseite über den Browser des jeweiligen Endgerätes geladen und nicht wie eine native App direkt auf dem Endgerät installiert. Web Apps sind nahezu immer Responsive wobei sich sich die Usability häufig an mehr Desktop Anwendungen als an Webseiten orientiert. Ein, besonders in Entwicklerkreisen, bekanntes Beispiel für eine Web App ist z. B. Github.

 

Hybrid App

Seit der Einführung von PhoneGap/Cordova haben Entwickler von Web Apps auch Zugriff auf gerätespezifische Hard- und Software. Zusätzlich sorgen sogenannte CSS Frameworks wie Ionic dafür, dass die Web Apps auch aussehen wie native Apps und sich ebenso komfortabel über einen Touchscreen bedienen lassen. Bei dieser Technik spricht man von Hybrid App. Im Unterschied zu einer Web App werden Hybrid Apps auch nicht über einen Browser geladen, sondern werden wie Mobile Apps direkt, wenn gewünscht auch über den App Store des jeweiligen Geräteherstellers, auf dem Endgerät installiert und von dort ausgeführt. Die Ausführung erfolgt jedoch nicht mehr in einem Browser, sondern in einem sogenannten WebView, der wie eine Verbindung zwischen dem Endgerät und der Web App herstellt. Eine Internetverbindung ist somit nicht mehr zwingend notwendig.

Der große Vorteil dieser Technologie liegt in der Möglichkeit, die Web App nur einmal programmieren zu müssen, sie jedoch auf nahezu allen Endgeräten mit iOS, Android oder Windows ohne weitere Anpassungen ausführen zu können. Weiterhin existieren mittlerweile populäre Frameworks wie z. B. AngularJS, hinter denen ein Unternehmen wie Google sowie eine riesige Community stehen. Auf Basis dieser Frameworks lassen sich Anwendung schnell und effizient umsetzen. Durch den Hersteller und die Communities wird eine schnelle und kontinuierliche Weiterentwicklung gewährleistet so, dass eine hohe Investionssicherheit gegeben ist. Ein Unterschied zu nativen Apps ist, durch die Möglichkeit auf die Hard- und Software der Geräte zuzugreifen und der Angleichung der Oberfläche durch sogenannte Front-End SDK's wie Ionic, nahezu nicht mehr wahrnehmbar. Lediglich die gefühlte Performance kann in einigen Fällen aktuell noch nicht mit der nativer Apps mithalten.

Die folgende Tabelle gibt einen Überblick, welche Komponenten in der aktuellen Version durch Apache/Cordova 5.3+ auf der jeweiligen Plattform unterstützt werden.

Welche Lösung ist für mich die Richtige?

Bevor wir eine Antwort auf diese Frage geben können, müssen wir vorab Antworten auf ein paar andere Fragen finden.

Die erste und wichtigste Frage die es zu klären gibt ist sicherlich ob die App später über einen App Store zur Verfügung gestellt werden soll. Ist das der Fall muss die Umsetzung entweder als Hybrid oder Mobile App erfolgen, da Web Apps nicht über einen App Store installiert werden können.

Die nächste zu klärende Frage dürfte die Zielplattform sein, soll die App auf genau einer oder auf mehreren Plattformen lauffähig sein? Mit Plattformen sind hier Browser, iOS, Android, Firefox OS und diverse Andere gemeint. Sobald eine Anwendung auch in einem Browser lauffähig sein soll, kommen nur noch Web und Hybrid App in Frage. Soll hingegen nur für genau eine Plattform entwickelt werden und auf keinen Fall zu einem späteren Zeitpunkt zusätzliche Plattformen unterstützt werden, so würde das grundsätzlich eher für eine Mobile App sprechen. Soll die App hingegen auf verschiedenen Plattformen lauffähig sein, wäre eventuell eine Web oder Hybrid App der bessere Ansatz.

Eine weitere zu klärende Frage ist sicherlich der Typ der zu entwickelnde Anwendungstyp. Grundsätzlich können mittlerweile auch Spiele als Web oder Hybrid App realisiert werden. Handelt es sich jedoch um ein grafiklastiges Spiel wie z. B. einen 3D Shooter, so werden weder Performance noch die Features der verfügbaren JavaScript Frameworks/Engines ausreichen, obwohl sich auch in diesem Bereich viel tut, wie z. B. mit BabylonJS. In diesem Fall sollte die Umsetzung ganz klar als Mobile App erfolgen. Für alle anderen Anwendungstypen würde sich eine Umsetzung als Web oder Hybrid App ebenfalls anbieten.

Anschließend muss geklärt werden, auf welche Komponenten der Endgeräte die App Zugriff benötigt wird. Wie bereits zuvor beschrieben sind zwar mit HTML5 neue Möglichkeiten geschaffen worden, auch aus einer Web App Zugriff auf einige Komponenten wie z. B. die Kamera zu erhalten, jedoch nur in sehr eingeschränktem Umfang. Werden diese Komponenten umfangreich in einer App verwendet, so bleibt nur der Weg die App als Hybrid oder Mobile App umzusetzen.

Final stellt sich natürlich die Frage, über welches Wissen und welche Erfahrungen die Entwickler die die Umsetzung vornehmen sollen, verfügen. Viele Agenturen verfügen über eigene Webentwickler die bereits über Erfahrungen mit HTML5, CSS und JavaScript verfügen. Hingegen sind Entwickler mit Erfahrungen bei der Entwicklung von Mobile Apps wie z. B. mit Objective-C, das bei der Entwicklung nativer Mobile Apps für Apples iPhone verwendet wird, sehr viel dünner gesät.

 

Fazit

Lässt sich eine App als Web oder Hybrid App umsetzen, so stellt dieser Ansatz gegenüber einer nativen Web App unter Vorbehalt die bessere Alternative dar. Web und Hybrid Apps basieren auf bekannten und bewährten Web-Technologien wodurch viele Entwickler in die Lage sind Diese zu erfolgreich umzusetzen. Da mittlerweile die Verfügbarkeit in nahezu allen App Stores der gängigen Endgeräten durch Apache Cordova gewährleistet wird stellt diese Möglichkeit in den meisten Fälle die Lösung mit dem besten Preis-Leistungs-Verhältnis dar.