App Entwicklung

App Entwicklung ist zwar keine Zauberei – aber eben auch kein Kinderspiel

Bei der Planung von Apps für Smartphone, Tablet, Mac und Windows-PC allerdings müssen vorab einige Grundlagen beachtet und einige Dinge geklärt werden. Je solider die Basis, desto einfacher ist es später, neue Systeme oder Modelle zu unterstützen oder die App auf eine komplett neue Betriebssystem-Basis zu stellen.

 

Welche Inhalte sollen ausgeliefert werden?

In erster Instanz sollte geklärt werden, welche Inhalte mit der App ausgeliefert werden sollen. Zuvorderst steht hier die Frage, um was für eine Art von Software es sich überhaupt handelt. Während komplexe Programme – etwa Spiele oder systemnahe Tools – in aller Regel vergleichsweise aufwändig zu portieren sind, gibt es natürlich auch reihenweise Apps, die bis auf wenige APIs des Systems primär eine angepasste Version der eigenen Website verwenden.

Viele Social-Media-Services wie Facebook und Twitter besitzen solche Apps, auch die diversen Shopping-Plattformen arbeiten mit dieser Art „einfacher“ App, auch wenn sie im Grunde nur etwas bessere Web Apps darstellen: Die eigentliche App ist kaum mehr als ein angepasster Browser, in dem die Inhalte ausschließlich eines Anbieters ausgeliefert werden.

Diese sogenannten Hybrid-Apps sind einfach zu programmieren und leicht portierbar; schließlich ist der Kern der Entwicklung, die App Entwicklung der nativen App, bereits durch die Entwicklungsumgebungen des Mobilsystems in Form des jeweiligen Browsers erfolgt. Entwickler können dabei auf die bereits im System implementierten Funktionen von Safari (Mac/iOS), Webview und Chrome (Android) oder Edge (Windows 10) zugreifen.

Der Entwicklungsaufwand besteht primär in der Anpassung der Website, womit sich der Entwicklungsaufwand für die eigentliche App in Grenzen hält. Gleichzeitig ist man aber durch seine Anwendung in den App-Marktplätzen vertreten und kann diese auch aktiv bewerben.

Die Vor- und Nachteile von nativen Apps bedenken

Diese Art der Hybrid-App ist natürlich nicht immer ideal. Wenn die App zum Beispiel sehr viele Systemfunktionen benötigt, dabei aber nur wenige Infos ausliefert, empfiehlt sich fast immer der Einsatz einer nativen Mobile-App. Diese wird von Grund auf in der jeweiligen Programmiersprache oder dem Software Development Kit (SDK) der jeweiligen Plattform entwickelt.

Unter MacOS und iOS ist das zum Beispiel die kostenlose Programmierumgebung XCode von Apple, mit der Android-SDK bietet Google eine entsprechende Software für Mobilgeräte mit dem hauseigenen Android-System an. Microsoft macht es Entwicklern mit dem Software Development Kit für Windows 10 besonders einfach, denn Apps können mit der gleichen Codebasis für alle Arten von (Microsoft-)Systemen entwickelt werden: Mobile- und Desktop-App entstehen so in einem Abwasch.

Eine native App hat den Vorteil, dass sie nicht auf eine Internetverbindung angewiesen ist, auf zahlreiche systemnahe Programmierschnittstellen im System zugreifen kann und gleichzeitig auch optimal auf der jeweiligen Systemplattform arbeitet. Nachteilig ist der gegenüber Web- und Hybrid-Apps deutlich erhöhte Portierungsaufwand, wenn zum Beispiel parallel für Windows, Android und iOS entwickelt werden soll.

Das ist auch der Grund, warum zum Beispiel derzeit Windows 10 als Smartphone-Betriebssystem immer mehr ins Hintertreffen gerät: Entwickler haben oft keine Lust oder kein Budget, um diese vergleichsweise unwichtige Plattform zu unterstützen. Exoten-Systeme wie Ubuntu-Mobile oder Firefox OS leiden unter den gleichen Problemen.

Web-Apps ohne native Basis

Ein dritter Weg ist der Einsatz von sogenannten Web-Apps: Dabei handelt es sich um Software, die ausschließlich im Browser arbeitet. Meist in HTML5 oder Java gehalten, sind diese Apps weitestgehend unabhängig vom Betriebssystem, auf dem sie laufen sollen. Alles, was benötigt wird, ist ein halbwegs moderner Browser, wie er inzwischen zum Lieferumfang jedes Betriebssystems gehört.

Der Vorteil dieser Lösung liegt auf der Hand: Statt Geld und Arbeitszeit für die Planung und Programmierung nativer Apps aufzuwenden, wird die App einfach als Browser-App angelegt. Dadurch kann sie mit nahezu jedem Betriebssystem arbeiten. Google baut beispielsweise stark auf diese Technik. Zwar setzt der Software-Riese auf iOS, Android und Windows auch native oder hybride Apps ein – die meisten Google-Dienste arbeiten jedoch auch ohne Weiteres im Webbrowser – völlig egal ob unter Windows, MacOS, Linux, iOS, Android oder sonstigen Systemen.

Warum also nicht immer auf Web-Apps setzen? Nun: Web-Apps haben gegenüber nativen und Hybrid-Apps einige handfeste Nachteile. So gestaltet sich der Datenaustausch zwischen Betriebssystem und Web-App oft schwierig und auch der Zugriff auf Systemfunktionen (etwa die iPhone-Kamera) ist normalerweise weitestgehend unterbunden. Zudem sind Web-Apps natürlich auf eine funktionierende Online-Verbindung angewiesen.

Die allerdings ist nach wie vor problematisch. Funklöcher gibt es allerorten, WLAN-Hotspots sind in vielen Hotels immer noch teuer und auf Flugreisen ist meist der Flugmodus vorgeschrieben. In solchen Situationen sind Web-Apps weitestgehend nutzlos.

Auf welchen Geräten sollen die Apps arbeiten?

Ein nicht zu vernachlässigender Vorteil von Web Apps ist die Tatsache, dass die Anwendung serverseitig programmiert und per Stylesheet angepasst werden kann. Statt die zahlreichen Bildschirmauflösungen, die besonders auf Android-Systemen für Darstellungsprobleme sorgen können, nativ zu unterstützen, können Sie die Web-Applikation bequem auf dem Server pflegen und hier Bugfixes vornehmen. App-Updates inklusive der zeitaufwändigen Überprüfungsroutinen in den Apple-, Google- und Microsoft-Stores entfallen.

Vor dem Inauftraggeben einer App sollte dennoch genau überlegt werden, auf welchen Systemen und mit welchen Funktionen die App eigentlich arbeiten soll. Vorab gilt es außerdem zu klären, ob die App kostenpflichtig oder gratis angeboten werden soll. Wenn das eigentliche Produkt ein Online-Service ist, empfiehlt sich der Einsatz einer Web-App in Kombination mit einer Hybrid-App. Ist die App selbst das Produkt, sind native Apps in aller Regel naheliegender, da der Kunde mit der Offline-Nutzung einen Mehrwert erhält, den er gegebenenfalls bezahlt.

Erst wenn alles klar ist, kann es losgehen

Wenn diese drei Fragen – was soll die App ausliefern, wie soll sie arbeiten und wo soll sie funktionieren – geklärt sind, ist es bei der Projektplanung deutlich einfacher, ein präzises Lastenheft zusammenzustellen. Das ermöglicht nicht nur eine effektive Beauftragung eines Entwicklers, sondern hilft auch dabei, explodierende Kosten und übermäßigen Zeitaufwand zu verhindern.

Gerade bei der App-Entwicklung kommt es häufig auf präzise Abgabetermine an, um nicht von der Konkurrenz überflügelt zu werden. Mit anständiger Planung können diese deutlich besser eingehalten werden.