Web Apps sind in den letzten Jahren ihren Kinderschuhen entwachsen. Durch HTML5 und die Entwicklung neuer Frameworks können sie heute oft schon mit nativen Applikationen mithalten. Die gesteigerte Nutzung mobiler Geräte fordert jetzt allerdings einen Richtungswechsel, denn Benutzer bevorzugen am Smartphone installierte Apps. Mit Cross-Plattform Apps und Hybrid Apps lässt sich eine simple Lösung erzielen, die einfach auf allen Geräten funktioniert.

Warum eine App entwickeln?

Mobile Geräte haben den Desktop in den letzten Jahren in vielen Aspekten ersetzt. Facebook, als klassische Webapplikation gestartet, wird nun großteils über deren mobile App benutzt. Hier gilt es die Zielgruppe auf dem Gerät ihrer Wahl abzuholen. Während eine Landingpage schnell einmal im Verlauf vergessen wird, dient eine App auf dem Home-Screen als ständige Erinnerung. Doch ist die Entwicklung einer eigenen App oft umständlich und kostet viel Zeit und Ressourcen. Eine Alternative bietet eine Cross-Plattform App.

Was bedeutet Cross-Plattform?

Unter Cross-Plattform Apps versteht man Applikationen, die mit wenig Aufwand auf multiplen Plattformen (Windows/Mac, iOS/Android) laufen können. Während sogenannte Native Apps meist für ein spezifisches System und dessen Frameworks entwickelt werden und daher für jede weitere Plattform von Grund auf neu entwickelt werden müssen, braucht man beim Entwickeln einer Hybrid App nur wenige Anpassungen, um sie für eine zusätzliche Plattform zu adaptieren. Zwar kann man auch bei Native Apps gewisse Elemente in Bibliotheken zusammenfassen und wiederverwerten, doch ist spätestens beim User-Interface Schluss mit den Gemeinsamkeiten. Um eine native Applikation für Android und iOS zu erstellen braucht man also sowohl einen Android Entwickler als auch einen iOS Entwickler. Hat man das Glück jemanden zu haben der in beiden Systemen bewandert ist, braucht diese Person doch immer noch doppelt so lange, da es für jedes System eine eigene App zu entwickeln gilt.

Cross-Plattform Apps bauen meist auf einer Technologie auf, die man selbstständig in die plattformspezifischen Versionen kompilieren kann. Das bekannteste Beispiel wäre hierfür Java: Ob unter Mac OS, Windows, Linux oder Android, der Code ist großteils gleich. Erst wenn die Applikation am Device gestartet wird, interpretiert die Java VM sie für die jeweilige Plattform.

Andere Technologien kompilieren die Applikationen im Voraus für die Zielplattformen. Bekannte Namen unter den Cross-Plattform-Technologien sind Qt, Xamarin und für den Gaming-Bereich gibt es mit Unity und V-Play Cross-Plattform-Lösungen.

Cross-Plattform Apps vs. Hybrid Apps

Eine weitere Alternative sind Hybrid Apps. Diese nutzen die eine Gemeinsamkeit, die alle Zielsysteme bereits haben: den Browser. Zwar mag der Standardbrowser von System zu System unterschiedlich sein, doch verfügt jede Plattform über einen Browser, der den Standards und Spezifikationen des W3C entspricht. Besonders bei mobilen Geräten ist hier die Unterstützung der verschiedenen HTML5-Spezifikationen schon sehr weit fortgeschritten, beim Desktop sind moderne Betriebssysteme auch bereits auf einem vertretbaren Stand. Der eindeutige Vorteil von Hybrid Apps zu Cross-Plattform Apps oder gar Native Apps: Man braucht keine eigenständige App-Entwicklung. Solche Apps können von einem Web-Entwickler parallel zu einer Webversion umgesetzt werden.

Für die Entwicklung von Hybrid Apps kann man auf eine Vielzahl von Frameworks zurückgreifen, die einem die Entwicklung erleichtern. PhoneGap und Apache Cordova bieten die Möglichkeit, die Applikationen schnell und einfach auf den jeweiligen Geräten zu testen und für den App- bzw. Google Play Store zu kompilieren. UI-Frameworks wie OnsenUI oder Ionic liefern sowohl visuell als auch interaktiv ein Grundgerüst, um Applikationen zu entwickeln, die dem User-Interface nativer Apps ähneln.

Blog_HybridApp_OnsenUI

Bild: Mit OnsenUI lassen sich Applikationen erstellen, die von einer nativen App kaum zu unterscheiden sind

Moderne Webapplikationen trennen immer mehr das vom Benutzer aktiv wahrgenommene User Interface (Frontend) von der Logik des datenspeichernden und datenverarbeitenden Servers (Backend). Diese Trennung ist durch asynchrone Kommunikation (AJAX) und starke Frontend-Frameworks wie AngularJS von Google, React von Facebook oder EmberJS möglich. Das Frontend liefert mehr Struktur und Interaktionsmöglichkeiten, die Daten werden per AJAX vom Server geholt und nach Manipulation des Users wieder dorthin zurückgeliefert. Ob beide Teile der Applikation am selben Server liegen, ist hierbei beinahe irrelevant.

So ist es oft ein Einfaches, eine Applikation, die für den Browser gemacht ist, nachträglich noch mittels Cordova in eine App zu kompilieren, und in den Google Play Store oder den App Store einzureichen. Mit nur wenigen Anpassungen kann man somit aus der fertigen Web-Applikation eine App zum Download auf die verschiedenen Geräte anbieten.

Auch in Bereichen, die früher nur für native Applikationen verfügbar waren, gibt es Alternativen. Daten lassen sich mittels WebSQL oder IndexedDB speichern, graphische Elemente lassen sich mit dem HTML5-Canvas schnell und performant umsetzen. Auch Services wie der Accelerometer, Notification oder die User-Location lassen sich mit Cordova verwenden.

Fazit

Nicht jede Website braucht eine App-Version, doch für so manche Kampagne, die ursprünglich nur als Landingpage gedacht war, kann eine App eine gute Ergänzung sein. Man erreicht das Zielpublikum, bleibt im Gedächtnis durch prominente Platzierung auf dem Home-Screen, und mit einer Hybrid App ist die Umsetzung im Rahmen der Kampagne auch keine Zauberei mehr.