4.2 Hybrid-Anwendungen

Hybrid-Anwendungen kombinieren die im vorigen Abschnitt 4.1 vorgestellten Web-Anwendungen mit einem nativen Container, um so die Anwendung zu verbessern und den Zugriff auf Gerätefunktionen zu ermöglichen. Die Bezeichnung als Hybrid-Anwendung „betont ein aus unterschiedlichen Arten oder Prozessen zusammengesetztes Ganzes. Die Besonderheit liegt darin, dass die zusammengebrachten Elemente für sich schon Lösungen darstellen, durch das Zusammenbringen aber neue erwünschte Eigenschaften entstehen können.“ (Wikipedia, 2010a).


Abbildung 4.2: Aufbau einer Hybrid-Anwendung

Bei Hybrid-Anwendungen besteht dieses Ganze zum einen aus der mobilen Web-Anwendung, zum anderen aus einem nativen Container. Der Container ist für jede unterstützte Plattform unterschiedlich, erfüllt aber immer den Zweck, die Web-Anwendung aufzunehmen, auszuführen und anzuzeigen.

Dazu nutzt der Container einen sogenannten WebView. Alle Plattformen bieten einen solchen WebView an, um in einer nativen Anwendung die Funktionalitäten des Browsers zur Verfügung zu stellen. Die beim Browser normalerweise zusätzlich sichtbaren Interface-Elemente wie Adressleiste oder Navigationsbuttons sind bei einem WebView unsichtbar. Er lässt sich wie andere Oberflächenelemente in eine Anwendung einbauen. Wird der WebView bildschirmfüllend in den Container integriert, erscheint die Web-Anwendung wie eine native mobile Anwendung.

Für Aussehen, Interaktion und Qualität der Anwendung ist bei einer Hybrid-Anwendung nur die eingebundene Web-Anwendung verantwortlich (vgl. Abschnitt 4.1). Durch den Container ergeben sich jedoch zusätzliche Möglichkeiten und einige Unterschiede.

Web-Anwendung ausgelagert

In ihrer einfachsten Ausführung verweist eine Hybrid-Anwendung mit ihrem WebView auf eine im Internet verfügbare Adresse und lädt von dieser bei jedem Start die Web-Anwendung neu herunter und zeigt diese an. Diese Variante hat gegenüber der reinen Web-Anwendung den Vorteil, ohne das Interface des Browsers angezeigt zu werden und als normale Anwendung auf dem Gerät installiert werden zu können.

Gleichzeitig gibt es bei ausgelagerten Web-Anwendungen einige Probleme. Da nach der Installation die Funktionsweise und das Aussehen solcher mobilen Anwendungen vom Entwickler jederzeit geändert werden können, ist keine Prüfung oder Alterseinstufung der Anwendung möglich. Die Performance der aus dem Internet geladenen Web-Anwendung entspricht bei Weitem nicht der einer nativen Anwendung und die Anwendungen sind bei fehlender Internetverbindung überhaupt nicht benutzbar.

Web-Anwendung integriert

Sinnvoller ist es, die Anwendung in die Container-Anwendung zu integrieren. Dazu werden die Anwendungsdateien im Dateisystem des Containers abgelegt und der WebView auf eine dieser Dateien geleitet. Je nach bisheriger Umsetzung der Web-Anwendung benötigt dies einige wenige Anpassungen. Gerade Kommunikation mit entfernten Servern im Internet zum Abrufen von Daten muss über ein API abgewickelt und die Antworten geparst und dargestellt werden.

Die Ausführungsgeschwindigkeit der Web-Anwendung steigt, da die Oberflächen und Interaktion lokal aus der Anwendung selbst geladen werden. Darüber hinaus sind große Teile ohne Internetverbindung nutzbar. Andererseits benötigt das Laden und Anzeigen des WebViews selbst Zeit und Systemressourcen.

Da die Anwendung nur lokal in einem nativen WebView-Container läuft, kann dieser eine Brücke zwischen dem nativen Geräte-API und der Web-Anwendung herstellen. Beim Start der Anwendung werden dem WebView weitere JavaScript-Schnittstellen verfügbar gemacht, die native Gerätefunktionen auslösen. Dadurch ist es möglich, in der Web-Anwendung durch den Aufruf eine JavaScript-Funktion auf die nicht durch den Browser bereitgestellten technischen Funktionen der Plattform zuzugreifen und die technischen Anforderungen (vgl. Abschnitt 3.1.3) der gestellten Beurteilungskriterien noch besser zu erfüllen.

Ist eine Anwendung in einen Hybrid-Container integriert, muss diese anders getestet werden. Während der Entwicklung kann der Programmierer weiterhin das Aussehen der Anwendung in einem WebKit-basierten Browser überprüfen. Die eingesetzten JavaScript-Funktionen zur Nutzung von Gerätefunktionen schlagen jedoch natürlich fehl. Um diese zu testen, muss die Anwendung kompiliert und auf einem Simulator oder echten Gerät ausgeführt werden. Beides wird meist über die Plattform-SDKs realisiert. Diese müssen zusätzlich installiert werden, um die Anwendung kompilieren und testen zu können.

Die mobile Anwendung lässt sich wie eine native Anwendung auf dem Gerät installieren. Der Container-Anwendung kann ein Icon zugewiesen werden. Zudem kann sich diese dauerhaft die Rechte zur Nutzung der Gerätefunktionen zuweisen lassen, so dass der Nutzer nicht mehr wie bisher bei jeder Nutzung eine entsprechende Abfrage bestätigen muss.

Einschätzung

Hybrid-Anwendungen geben Web-Anwendungen die Möglichkeit auf native Geräte-funktionen zuzugreifen und wie normale mobile Anwendungen auf dem Gerät installiert zu werden. Gleichzeitig wird die Performance verbessert und die Anwendung offline verfügbar gemacht. Für Programmierer, die sich mit HTML, CSS und JavaScript gut auskennen, sind sie die logische Fortführung und Verbesserung des webbasierten plattformübergreifenden Ansatzes.

Trotzdem können sie nicht zu nativen Anwendungen aufschließen, da weiterhin nur eine simulierte und für alle Plattformen generalisierte Oberfläche genutzt wird. Die Geschwin-digkeit und Qualität bleibt hinter nativen Anwendungen zurück.

Ansätze dieser Klasse

  • PhoneGap
  • QuickConnect Family

Leave a Reply

Your email address will not be published. Required fields are marked *