Apps, aber besser

In den vergangenen sechs Monaten hatte ich die Möglichkeit, mich bei einer Bachelorarbeit in das Thema Mobile Applikationen zu vertiefen. Einige Erkenntnisse aus der Arbeit sowie die verschiedenen Ansätze, eine App zu entwickeln, möchte ich mit meinem ersten Blogbeitrag gerne mit Euch teilen.

Gehen wir zuerst einen Schritt zurück. Es ist Februar dieses Jahres und der verantwortliche Dozent wie auch der Kunde, kein anderer als der internationale Softwarehersteller AdNovum aus Zürich, präsentieren die Projektaufgabe. Es soll eine Applikation für iOS und Android entstehen, welche die Verwaltung von IoT (Internet of Things) Geräten ermöglicht.

Für meinen Kommilitonen Benjamin Bur und mich war schnell klar, dass aufgrund der zur Verfügung stehenden Zeit kein Native App für die jeweiligen Betriebssysteme gebaut werden konnte. Da neben der App auch noch eine API (Datenschnittstelle) entstehen sollte, welche die Kommunikation  zwischen den IoT Geräten und dem Smartphone mittels LoRa (Long Range Wide Area Network) sicherstellen kann, was den Aufwand weiter erhöht. Wir mussten also einen Weg finden, welcher die Anforderungen des Kunden erfüllt, aber auch ins vorgegebene Zeitbudget passt. 

Muss es wirklich eine App sein?

Zu den Anforderungen des Kunden gehören Push Notifications wie auch die Verfügbarkeit von Daten im Offlinemodus. Diese Funktionalitäten hätten auch in Form einer PWA (Progressive Web App) umgesetzt werden können. PWAs sind normale Responsive Webseiten, die dank Service Workers zusätzliche Funktionalitäten auf dem Smartphone zur Verfügung stellen. Dazu gehört zum Beispiel auch die Push Notification. Dieser Ansatz fiel jedoch schnell weg. In der aktuellen Version von Safari wird die Push API nicht unterstützt. Somit können auf Apple Geräten keine Push Notifications vom Browser interpretiert werden. Wie können also Push Notifications in einer App umgesetzt werden, ohne Hunderte von Stunden in eine native Entwicklung zu investieren?

die Lösung bringt das Web

Als Alternative zu Nativen Apps können Frameworks wie etwa React Native oder Ionic eingesetzt werden. Diese ermöglichen die Entwicklung einer App mittels Webtechnologien. Vom Prototypen bis hin zur zu einer laufenden App unterstützten diese Frameworks einen Entwickler/-in in vielen Hinsichten. Views müssen nicht etwa wie bei Android in aufwändigen XML Dateien beschrieben werden, sondern werden in einer vertrauten Umgebung mittels HTML5, Java Script und CSS deklariert.

Dieser Ansatz bringt jedoch noch viele weitere Vorteile mit sich: Eine einzige Code Basis, schnelle Entwicklungszyklen und eine für Webentwickler/-innen vertraute Umgebung, um nur einige zu nennen. Eine Code Basis bedeutet, dass nicht für jede Plattform eine eigene App entwickelt werden muss.

Die Entwicklung einer App mittels Webtechnologien bringt auch Nachteile mit sich. Läuft die App einmal auf dem Smartphone, spart diese in Bezug auf Rechenkapazität und Arbeitsspeicher nicht gerade Ressourcen. Nachteile, die nicht zu unterschätzen sind und in einigen Anwendungsfällen zu einem Problem führen können. Wird die Technologie jedoch erst nach Aufnahme der genauen Anforderungen bestimmt, können solche Herausforderungen problemlos umgangen werden. 

In Bezug auf den Funktionsumfang kann eine App, die auf Web Technologien basiert, genauso mit dem der Nativen Apps mithalten. Das von Facebook entwickelte Framework React erlaubt es, Nativen Code mit einer App aus Webtechnologien zu kombinieren. So entstehen Apps wie zum Beispiel die von Facebook, AirBnB oder Instagram. Es geht sogar noch weiter: Native Apps müssen zwingend über den App Store / Play Store installiert werden. Anders ist dies im Web. Eine App kann nur durch einen Seitenaufruf mittels Browser ausgeführt werden. Die Hürde, potenzielle Kunden beim Installationsprozess zu verlieren, verringert sich stark. 

Apps für iOs und Android auf derselben Codebasis erstellen
Apps für iOS und Android auf derselben Codebasis erstellen

Fazit

Sicher ist, dass wir in Zukunft noch intuitiver und bequemer miteinander kommunizieren werden. In der endlosen Vielfalt an Anwendungsfällen ist say hello Ihr kompetenter Ansprechpartner für die Beratung und Entwicklung von mobilen Applikationen. Durch den gekonnten Einsatz von bestehenden Technologien eine perfekte Ergänzung zu klassischen Webseiten.

WordCamp Bern 2017 Nächster Post