Native App, Web App und Hybrid App im Überblick. Ein Fachartikel der Wünsch AG.
„Apps“ sind heutzutage nicht mehr wegzudenken, da sie immer und überall auf allen möglichen Gerätetypen verfügbar sind. Auf normalen Büro-PCs genauso wie auf Tablets und Smartphones. Aber nicht alle Apps laufen auf allen Plattformen. Es gibt verschiedene Arten von Apps, mit unterschiedlichen Möglichkeiten und Einsatzzwecken. Im folgenden Artikel werden wir die verschiedenen Arten von Apps mit Vor- und Nachteilen vorstellen und im Speziellen die Möglichkeiten zum Offlineeinsatz von Web Apps beleuchten.
ARTEN VON APPS
App ist nicht gleich App. Die Umgebung, in der eine App laufen soll, beeinflusst die Entwicklung der App maßgeblich. Die Laufzeitumgebung einer App bestimmt, welche Fähigkeiten der Hardware der App zur Verfügung stehen.
In den folgenden Unterkapiteln erläutern wir kurz die verschiedenen Arten von Apps und die Vor- und Nachteile.
NATIVE APPS
Native Apps werden gezielt für eine bestimmte Plattform entwickelt. Auf normalen Büro-PCs gibt es hier eine große Auswahl.
Mobilgeräte sind, was die Auswahl des Betriebssystems angeht, je nach Hersteller, nicht ganz so offen. Allen ist aber eines gemein: Anwendungen, die für das jeweilige Betriebssystem entwickelt wurden, können die Möglichkeiten der Hardware optimal ausnutzen, da sie Zugriff auf Betriebssystemfunktionen erhalten. Solche nativen Apps sind dann aber auch nur auf der jeweiligen Zielplattform lauffähig.
Um die Apps auf verschiedenen Plattformen lauffähig zu machen, müssen sie für jede Plattform neu entwickelt werden, was zusätzlich dadurch erschwert wird, dass sich auch die Programmiersprache unterscheidet, in der für die jeweiligen Plattformen entwickelt wird.
WEB APPS
Web Apps sind, wie der Name schon sagt, Anwendungen, die im Web zu Hause sind. Die Laufzeitumgebung ist also ein ganz normaler Browser. Darin liegt auch schon der große Vorteil dieser Art von Apps. Browser gibt es für fast alle Betriebssysteme unterschiedlichster Hardwareplattformen. Die App muss also nur einmal entwickelt werden und ist sofort auf allen Plattformen mit Internet Browser lauffähig.
Der Code der Anwendung wird dabei auf einem Web-Server abgelegt, vom Browser geladen und ausgeführt. Die Daten der App liegen üblicherweise ebenfalls auf einem Server im Web. Auf diese Art können Web Apps sehr schnell veröffentlicht und aktualisiert werden.
Daraus ergibt sich aber auch der größte Nachteil von Web Apps:
Sie sind nur dann lauffähig, wenn auch eine Internetverbindung besteht. Web Apps benötigen eine Internetverbindung, um ihren Code und ihre Daten zu laden. Um diesen Nachteil zu eliminieren, wurden in HTML 5 einige Möglichkeiten eingebaut, um sowohl den Code der Anwendung als auch die Daten lokal zwischenspeichern zu können. So sind sie auch dann erreichbar, wenn keine Internetverbindung besteht.
Aus Sicherheitsgründen haben Web Apps keinen oder nur eingeschränkten Zugriff auf Hardwarefunktionen wie z.B. GPS, Kamera o.ä.
WEB APPS LOKAL BETREIBEN
Bei Web Apps kann das Problem der Abhängigkeit von einer laufenden Internetverbindung seit HTML 5 durch lokales Zwischenspeichern umgangen werden.
Damit eine Web App, also eine App programmiert in HTML und JavaScript, lokal ohne Verbindung ins Internet genutzt werden kann, müssen zuerst der Code der Anwendung und alle von ihm benötigten Dateien lokal gespeichert werden. Dazu gibt es in HTML 5 den „Application Cache“. Die App kann in ihrem HTML-Code dem Browser mittels eines „Manifest-Files“ mitteilen, welche Elemente sie für den lokalen Betrieb benötigt. Der Browser prüft dann beim ersten Laden der Anwendung, ob er diese Elemente bereits lokal gespeichert hat. Falls nicht, zeigt er das im Web gespeicherte Element an und beginnt im Hintergrund damit, dieses in einem lokalen Cache zu speichern.
Wenn später dann versucht wird, eine solche Seite mit einem Application Cache Manifest zu laden, so lädt der Browser die Version aus seinem lokalen Application Cache. Dies geschieht auch bei aktiver Internetverbindung, was zu einem schnelleren Laden der Anwendung führt.
Der lokal gespeicherte Anwendungscode wird erst dann wieder aus dem Web aktualisiert, wenn der Browser eine Änderung am Manifest im Web erkennt. Der Speicherplatz, der für eine solche lokal gespeicherte Web App zur Verfügung steht, ist allerdings stark abhängig vom Browser. Einige Browser bieten unbegrenzten Speicherplatz, einige schränken den Speicherplatz auf maximal 5 MB ein.
Sofern die lokal gespeicherte Web App keine Daten aus einer entfernten Datenquelle wie z.B. einer relationalen Datenbank benötigt, wäre sie damit allein schon vollkommen Offline-fähig.
HYBRID APPS
Native Apps sind an ihre jeweilige Plattform gebunden, können dafür aber alle ihre Möglichkeiten nutzen und funktionieren auch ohne Internetverbindung. Web Apps sind an keine Plattform gebunden, können aber nicht alle Hardwarefunktionen nutzen und benötigen eine Internetverbindung.
Warum nicht die Vorteile der nativen Apps mit den Vorteilen der Web Apps verbinden?
Hybrid Apps bestehen aus einem kleinen nativen Rahmen und einer lokal gespeicherten Web App.
Dieser native Rahmen ist eine Art Browser, der die lokale Web App ausführt und dieser Zugriff auf gewisse Hardwarefunktionen gewährt. Auf diese Art kann der zentrale Teil der Anwendung universell als „Web App“ entwickelt werden, wird aber dann lokal abgelegt und vom nativen Teil der App ausgeführt.
Der native Teil der App bietet darüber hinaus die Möglichkeit, alle Vorteile einer nativen App zu nutzen, wie z.B. lokale Datenablage und Zugriff auf die Hardware.