Bevor es mit der Entwicklung einer App losgehen kann, muss eine grundlegende Entscheidung getroffen werden: Auf welcher technischen Basis soll die Umsetzung stattfinden? Website? Native? Hybrid? ... Heutzutage gibt es mehrere Möglichkeiten Apps zu entwickeln, wovon wir hier vier vorstellen werden. Jede einzelne hat dabei ihre spezifischen Vor- und Nachteile und eignet sich für manche Vorhaben besser als für andere. Die Auswahl der technischen Umsetzungsbasis sollte sehr gut überlegt sein, da ein nachträglicher Wechsel mit hohen Aufwänden verbunden ist.
Webseite
Die schnellste Variante eine mobile App zu generieren, ist eine Webseite zu bauen, die auf den mobilen Gebrauch zugeschnitten ist. Beispielsweise ist es über das Css Framework Bootstrap sehr einfach ein Layout für den mobilen Gebrauch zu optimieren. Die Technologien können dabei von einfachen blanken Html mit Css-Klassen bis zu verschiedenen Frameworks wie Angular, React oder vue.js reichen. Wenn keine nativen Funktionen erforderlich sind, kann die App über die gängigen Webtechnologien umsetzbar sein.
Vorteile:
- Die Verteilung läuft über den Internetbrowser
- Für das Hosting wird nur ein Webserver mit zugehörigem Backend benötigt
- Schnell umsetzbar
- Funktioniert auf iOS und Android gleichermaßen
Nachteile:
- Kein nativen Funktionen
- Kein Offlinenutzung
Progressive Web App
Wenn bei der App mehr Funktionen, als die einer normalen Webseite gewünscht sind, dann kann die Webseite als Progressive Web App (PWA) eine gute Alternative darstellen.
Der Webseite wird hierbei um einen Serviceworker erweitert. Dieser Serviceworker sorgt dafür, dass die Webseite auf den Geräten installiert wird. Die Dateien wie HTML, CSS, JS und Assets werden nun auf dem mobilen Gerät gespeichert. Sobald die Webseite zum ersten Mal von dem Benutzer geöffnet wurde, erfragt die Webseite die Rechte um sich auf dem Gerät zu installieren. Nach der Installation ist die Webseite wie eine App im Smartphone zu erreichen. Der Link muss sich also nicht als Lesezeichen gemerkt werden.
Ein weiterer Vorteil einer PWA ist die Offlinefähigkeit. Sobald die PWA merkt, dass sie offline ist, wird auf die gespeicherten Dateien zurückgegriffen. Sobald der Nutzer wieder online ist, wird beim Webserver erfragt, ob es aktualisierte Dateien für die App gibt. Sollte während des Offlinebetriebes eine neue Anfrage an den Server laufen, beispielsweise wird in einem Webshop nach einem Produkt gesucht, kann diese gespeichert werden und später im Onlinebetrieb losgeschickt werden.
Die Anfragen, die bereits geschickt worden sind, können in der PWA gespeichert werden. Sollte der Benutzer in der Vergangenheit nach Produkten gesucht haben, werden ihm, wenn er offline ist, die Ergebnisse der letzten Anfrage angezeigt. Wenn es noch keine Anfrage gab, wird der Benutzer darauf hingewiesen, dass momentan keine Daten verfügbar sind.
Vorteile:
- Die Verteilung läuft über den Internetbrowser
- Für das Hosting wird nur ein Webserver mit zugehörigem Backend benötigt
- Schnell umsetzbar
- Offlinefähigkeit
- Ist nach Installation über die App-Übersicht zu erreichen
- Wirkt von der Aufmachung mehr wie eine App
- Funktioniert auf iOS und Android gleichermaßen
Nachteile:
- (Noch) Keine Nativen Funktionen
Native Apps
Wird eine App in der plattformspezifischen Entwicklungssprache realisiert, handelt es sich um eine native App. Unter Android ist die Programmiersprache Java und IDE von Google ist AndroidStudio. Bei iOS sind die Programmiersprachen entweder Objective-C oder Swift. Zum Entwickeln der App ist hier die IDE Xcode erforderlich. Da in einer Umgebung entwickelt wird, die von Google und Apple direkt gewartet wird, funktionieren die Zugriffe auf native Funktionen wie z.B. Bluetooth, SMS, Kontakte, Kamera etc. sehr stabil und unkompliziert.
Zu beachten ist, dass bei dem nativen Entwicklungsansatz nur jeweils an einer Umsetzung (Android oder iOS) zurzeit gearbeitet werden kann. Soll die App auf beiden Umgebungen laufen, muss sie zweimal implementiert werden. In der Umsetzung bedeutet dies, zweimal dasselbe entwickeln, mit verschiedenen Bugs, verschiedenen Eigenheiten und verschiedenen Lösungsansätzen für Probleme. Der Wartungsaufwand ist hier also doppelt so hoch.
Die Verteilung der Apps funktioniert über die entsprechenden App Stores. Das kann ein Vorteil sein, da die Apps über eine einzige Plattform erreichbar sind und somit besser vom Endnutzer auffindbar sind, aber auch ein Nachteil, da die App den Richtlinien der einzelnen Stores entsprechen muss. Wird die App abgelehnt, muss die App nach den Anforderungen von Google oder Apple angepasst werden.
Wer seinen Usern die optimale Nutzererfahrung bieten möchte, eine hohe Hardwareauslastung hat und nur für eine Umgebung die App benötigt, der ist mit einer nativen Entwicklung auf der sicheren Seite.
Vorteile:
- Die Verteilung läuft über den Playstore / Apples Appstore
- Offlinefähigkeit
- Ist nach Installation über die App-Übersicht zu erreichen
- Alle nativen Funktionen sind sehr gut zu erreichen
- Die uneingeschränkt bestmögliche Performance
- Immer Zugriff auf die aktuellsten APIs und Features
- Zukunftssicher
Nachteile:
- Für iOS und Android müssen zwei unabhängige Projekte entwickelt werden
- Zeitaufwändig / teuer
- Richtlinien in den Stores muss eingehalten werden
- Um Inhalte und Funktionen der App zu aktualisieren, muss ein Update in den App Stores eingereicht und anschließend von den Nutzern installiert werden
Hybrid Apps
Hybrid Apps verbinden Webtechnologien mit nativen Funktionen. Die komplette Oberfläche wird in HTML und CSS geschrieben. Per Javascript werden Plugins für die einzelnen Funktionen eingebunden. Diese Plugins können sowohl für Android als auch iOS genutzt werden. Je nachdem, in welcher Umgebung das Projekt gebaut wurde, wird die entsprechende Version des Plugins geladen. Dadurch kann es passieren, dass Bugs in den Plugins nur in einer Umgebung auftauchen und in der anderen Umgebung nicht. Es gilt also weiterhin in beiden Umgebungen zu testen, um Bugs zu entdecken. Es ist aber nun nicht mehr nötig Code doppelt zu schreiben, denn aus einer einzigen Codebasis können fertige builds für sowohl Android als auch iOS erzeugt werden. Dies spart Entwicklungszeit, Geld und Wartungsaufwände.
Für eine App, die keine große Hardwareauslastung hat und bei der voraussichtlich keine neuen nativen Funktionen implementiert werden sollen, ist eine Hybrid App die naheliegendste Lösung.
Vorteile:
- Die Verteilung läuft über den Playstore / Apple Appstore
- Schneller umsetzbar als eine native App
- Webentwickler können mit bekannten Technologien und wenig Aufwand diese Apps entwickeln
- Offlinefähigkeit
- Ist nach der Installation über die App-Übersicht zu erreichen
- Alle nativen Funktionen sind über externe Plugins zu erreichen
- Eine Codebasis für IOS und Android. Aus einem Projekt kann für beide Umgebungen gebaut werden.
Nachteile:
- Richtlinien in den Stores müssen eingehalten werden
- Native Plugins werden teilweise von der Community gewartet. Bugs werden nicht immer sofort behoben.
Wir finden die beste Umsetzung für Ihre App!
Sie überlegen für Ihr Unternehmen eine App entwickeln zu lassen? Gerne beraten wir Sie, welche Umsetzungsform für Ihr Vorhaben am geeignetsten ist. Für Unternehmen, die nach einem kostengünstigen Einstieg in die App Welt suchen, sind insbesondere Hybrid Apps eine Überlegung wert. Kontaktieren Sie unsere Experten dazu einfach unverbindlich unter +49 4307 900 408 oder per Mail an kontakt@assono.de.