Mobile App Entwicklung (Teil 2)

Hybride Apps sind eine Mischung aus Web-Apps und nativen Apps. Die App wird größtenteils mittels Web-Technologien entwickelt. Je nach eingesetztem Framework oder Bibliothek kann auch die komplette App mit Web-Technologien umgesetzt werden. Als Web-Technologien werden hier HTML, CSS und JavaScript verstanden. Darauf aufbauend JSON und Sprachen die in JavaScript übersetzt werden wie z.B. Typescript, Dart oder CoffeeScript.

Im Vergleich zu nativen Apps, welche aus 100% nativem Code bestehen, wird bei hybriden Apps der Code aufgeteilt in einen Web-basierten Teil und einen Nativen. Damit die hybride App auf weitere Funktionalität des mobilen Geräts wie z.B. Bluetooth zurückgreifen kann, wird schlussendlich nativer Code benötigt. Der Vorteil von diesem Ansatz besteht darin, dass nur ein Teil des Codes neu geschrieben werden muss um die App auf verschiedenen Plattformen verfügbar zu machen. Wenn der native Teil komplett aus vorgefertigten Bibliotheken besteht und für die jeweilige Plattform verfügbar ist, entfällt auch die Implementierung von nativem Code.

Dieser Ansatz bringt für Entwicklern mit Erfahrung im Web-Bereich eine niedrigere Einstiegsbarriere und führt schneller zu Erfolgen. Zusätzlich ist es auch einfacher die App zu pflegen und auf weiteren mobilen Plattformen verfügbar zu machen. Da pro Plattform gesehen die App auf einem gemeinsamen Kern basiert, wird neu hinzugefügte Funktionalität auch auf allen Plattformversionen verfügbar. Im Gegensatz dazu muss bei nativen Apps neu hinzugefügte Funktionalität für jede Plattform neu implementiert werden.

Ein Nachteil der hybriden Apps ist u.U. eine schlechtere Performance im Vergleich zu nativen Apps. Dies liegt daran, dass eine hybride App den Browser der mobilen Plattform zur Darstellung der Oberflächenelemente verwendet und daher die Performance auch von der Leistungsfähigkeit des mobilen Web-Browsers abhängt. Zum Glück werden diese mobilen Browser aber kontinuierlich weiter entwickelt, so dass dieser Nachteil in Zukunft evtl. entfällt bzw. komplett vernachlässigbar wird.

Des weiteren basiert eine hybride App auf einem über Plattformen hinweg gemeinsamen Kern, welcher einem gemeinsamen Nenner über diese Plattformen entspricht. Daher können nur solche Eingabemethoden verwendet werden, die über viele verschiedene Endgeräte verfügbar sind. In diesem Bereich gibt es jedoch Verbesserungen wenn Funktionen ins mobile Betriebssystem selbst integriert werden wie z.B. Spracherkennung bei Texteingaben.

Framework: Ionic 2

Um mobile Plattformen zu abstrahieren setzt die Service-IT das hybride Framework Ionic 2 ein. Dieses Framework basiert auf mehreren Bibliotheken. Apache Cordova bildet die Basis, anhand derer es möglich ist mittels HTML, CSS und JavaScript eine App analog zu einer Web-Seite zu designen und diese auf dem mobilen Gerät als App zu starten. Ohne diese Bibliothek würde sich einen erheblichen Aufwand pro Plattform ergeben, um die hybride App lauffähig zu bekommen.

Mit Apache Cordova als Basis ergibt sich folgende Architektur:

  • Mobile Platform
  • Apache Cordova und Plugins
  • Angular 2
  • Ionic 2 Komponenten

In erster Linie abstrahiert Cordova die mobile Plattform. Angular 2 bietet Dependency Injection und die Basis für Modul- und Komponentenstrukturen an, und wirkt somit als Bindeglied für alle Verwendeten Teile der hybriden App. Des Weiteren erstreckt sich der Einfluss von Angular 2 bis hin zu Oberflächenelementen die mittels Events und Bindings mit dem restlichen Code verknüpft werden. Bestehende externe Angular 2 Bibliotheken wie z.B. ein JWT-Parser können einfach eingebunden werden. Ionic 2 beinhaltet vorgefertigte Standard Oberflächenkomponenten die das Look and Feel der jeweiligen Plattform imitieren. Ionic 2 ermöglicht auch das Auswechseln verschiedener Themes um das Aussehen der ganzen App einfach zu ändern und z.B. CI-Konformität zu ermöglichen. Die Implementierung des App-Codes erfolgt mittels Typescript, das eine statische Code Überprüfung ermöglicht. Beim schlussendlichen Übersetzen von Typescript nach JavaScript sind zusätzlich verschiedene Optimierungsstufen möglich, was die App-Performance verbessert. Im Entwicklungsprozess ist es möglich über den lokalen Webbrowser ohne mobiles Endgerät die App zu testen. Damit ist auch ein Rapid-Prototyping-Ansatz möglich. Jedoch ist nicht alles, wie z.B. eine Verbindung über Bluetooth, im Webbrowser verfügbar. Erst auf dem mobilen Gerät können solche Schnitstellen angesprochen werden. Durch den Einsatz von Apache Cordova kann auf das Cordova Plugin Ökosystem zurückgegriffen werden. Diese Plugins ermöglichen einer hybriden App mehr Funktionen anzubieten als eine reine Webapplikation und bringen die hybride App näher an eine Native ran.

Die hybride App kann z.B. folgende Funktionalität anbieten:

  • Offlinefähigkeit mit lokaler Datenbank und Dateien
  • Aktuelle Position und Adresse über GPS
  • Aufnahme von Bildern und Videos über die Kamera
  • Datenabgleich über Bluetooth
  • Push-Benachrichtigungen und Aktualisierungen im Hintergrund

Diese und weitere Funktionen finden Sie in unserer neuen Smartphone Ticket-App.

Veröffentlicht am
05.12.2016

Rubrik
Innovation & Technik

Autor
Karl Beck