Native App, Web App und Hybrid App im Überblick

Warum native wenn es auch hybrid geht?

02.04.2015
Von 


Petra Riepe schreibt als Expertin zu den Themen Softwareentwicklung, Prozessmanagement und Projektmanagement. Als Leiterin des Beratungs-Vertriebs der Wünsch AG ist sie seit 15 Jahren aktiv in der IT-Beratung der Kunden. Die Erfahrungen aus der Praxis gibt sie in ihren Artikeln an die interessierten Leser weiter.
„Apps“ sind heutzutage nicht mehr wegzudenken, da sie immer und überall auf allen möglichen Gerätetypen verfügbar sind. Aber nicht alle Apps laufen auf allen Plattformen. Im folgenden Artikel werden wir die verschiedenen Arten von Apps mit Vor- und Nachteilen vorstellen und im Speziellen die Möglichkeiten zum Offline-Einsatz von Web Apps beleuchten.
Schon längst sind Apps nicht mehr nur auf mobile Geräte fixiert.
Schon längst sind Apps nicht mehr nur auf mobile Geräte fixiert.
Foto: Sergey Nivens - Fotolia.com

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.

Entwicklungs- und Arbeitsumgebung einer Native-App.
Entwicklungs- und Arbeitsumgebung einer Native-App.
Foto: Wünsch AG

Web Apps

Web Apps sind, wie der Name schon sagt, Anwendungen, die im Web zu Hause sind. Die Laufzeitumgebung ist also ein ganz normaler Internet Browser. Darin liegt auch schon der große Vorteil dieser Art von Apps. Browser gibt es für fast alle Betriebssysteme unterschiedlichsten 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 zum Beispiel GPS, Kamera oder ähnliches.

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 in HTML und JavaScript programmierte Web App 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.

Entwicklungs- und Arbeitsumgebung einer Web-App.
Entwicklungs- und Arbeitsumgebung einer Web-App.
Foto: Wünsch AG

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.

Entwicklungs- und Arbeitsumgebung einer Hybrid-App.
Entwicklungs- und Arbeitsumgebung einer Hybrid-App.
Foto: Wünsch AG


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 zum Beispiel lokale Datenablage und Zugriff auf die Hardware. (bw)