© StonePictures/Shutterstock.com
Teil 2: Mobile-Apps sind weiter auf dem Vormarsch

Die richtige Wahl


Auf den Smartphones und Tablets dieser Welt sind Android und iOS installiert. Meist muss eine App für beide Systeme erstellt werden. Android und iOS unterscheiden sich jedoch aus Anwender- und aus Entwicklersicht stark. Plattformübergreifende Programmierung bietet einen Ausweg. Hier gibt es inzwischen mehrere Optionen für Entwickler.

Die Nutzung mobiler Devices ist seit Jahren auf dem Vormarsch. Weltweit werden zunehmend mobile Geräte statt Desktopsysteme eingesetzt. Dieser Trend gilt sowohl im Bereich der Endverbraucher (Consumer) als auch für Unternehmenszwecke (Enterprise). Aus technischer Sicht gilt es zu differenzieren, d. h. man muss zwischen unterschiedlichen Arten von Apps unterscheiden. Konkret unterscheidet man

  • native Apps

  • Web-Apps und

  • hybride Apps.

Der Vorteil von nativen Apps liegt darin, dass sie für das jeweilige Betriebssystem optimiert sind. Die Benutzeroberfläche fügt sich vollständig in die Vorgaben der Plattform ein und die Benutzerführung ist mit der Systemumgebung kompatibel. Ein weiterer wichtiger Vorteil besteht darin, dass native Apps keine Einschränkungen beim Zugriff auf spezifische Gerätehardware des Smartphones oder Tablets aufweisen. Alle Sensoren dieser Geräte können über die APIs des Systems direkt angesprochen werden. Das Deployment von nativen Apps erfolgt üblicherweise über die App-Stores. Ist eine native App installiert, kann sie im Offlinemodus auch ohne Internetzugriff ausgeführt werden.

Dem gegenüber stehen Web-Apps. Das sind spezielle Webapplikationen, die für die Nutzung auf mobilen Geräten angepasst werden. Der Zugriff auf die Systemhardware ist jedoch beschränkt. Einfache Funktionen wie der Ortungsdienst sind nutzbar. Die Darstellung erfolgt im Browser des Systems und kann die Besonderheiten der einzelnen Plattform nur bedingt berücksichtigen. Web-Apps können nicht über App-Stores bereitgestellt werden. Sie laufen auf dem Server und benötigen daher eine konstante Internetverbindung. Mit Progressive Web Apps (PWA) ist auch eine Offlinenutzung möglich. Zwischen Web-App und nativer App agieren hybride Apps. Sie laufen in einem WebView-Container, d. h. gewissermaßen in einem internen Browser. Damit wirken sie für das Betriebssystem wie eine native App. Das User Interface (UI) muss generisch sein, um mit allen Systemen zurechtzukommen. Ein Vorteil von hybriden Apps ist es, dass man sie über die App-Stores verteilen kann. Wie die drei Arten von Apps grundsätzlich funktionieren, ist in Abbildung 1 dargestellt.

krypczyk_cross_platform2_1.tif_fmt1.jpgAbb. 1: Native vs. hybride vs. Web-App

Wir wollen uns ansehen, wie man Apps entwickelt, die sowohl unter Android als auch unter iOS ausgeführt werden können. Dabei geht es uns um native Apps, d. h., die Applikationen sollten möglichst performant ausgeführt werden können und sich bestmöglich in das Betriebssystem eingliedern.

Entwicklung für mobile Systeme

Sehen wir uns an, welche technischen Ansätze es gibt, eine App für die mobilen Systeme zu erstellen. Berücksichtigt ist eine Auswahl aus verschiedenen Technologiebereichen. Natürlich gibt es weitere Möglichkeiten, eine App für Android und iOS zu programmieren. Zum Beispiel kann man auch Low-Code-Tools einsetzen und dabei hauptsächlich mit Hilfe grafischer Designer arbeiten. Erfreulicherweise gibt es eine beachtliche Vielfalt von Vorgehensweisen. Das hat den Vorteil, dass man sich die passende Variante für sein Projekt gewissermaßen herauspicken kann. Neben den technischen Zielen stehen dabei auch andere Gründe für die Auswahl im Fokus, zum Beispiel:

  • Kenntnis von Programmiersprachen und Technologien: Wenn Sie nur gelegentlich eine Mobile-App programmieren, ist es hilfreich, wenn Sie dazu einen vertrauten Ansatz wählen können, um den Lernaufwand zu minimieren.

  • Kosten für Lizenzen: Entwicklungsumgebungen und zu nutzende Frameworks müssen teilweise auch lizenziert werden. Für eine nicht oder nur begrenzt kommerzielle Lösung stehen die Werkzeuge meist kostenfrei zur Verfügung. Bei einer weitergehenden Nutzung müssen i. d. R. Lizenzgebühren entrichtet werden.

  • Erfahrungen: Bestehen bereits positive oder negative Erfahrungen mit einem Ansatz? Das können Gründe sein, eine bekannte Technologie zu wechseln oder beizubehalten.

Ebenso ist zu beachten, dass nicht alle Vorhaben mit jedem Ansatz realisierbar sind. Das Ziel der hier dargestellten Vorgehensweisen ist zwar eine native App, dennoch gibt es immer noch Unterschiede, wenn man mit Java (Android) oder Swift (iOS) und den direkten APIs der jeweiligen Plattform arbeitet. Das kann sich zum Beispiel darin äußern, dass man ausgewählte Hardware nicht ansprechen oder dass man eine spezifische Designvorgabe aus technischen Gründen nicht realisieren kann. In diesem Fall bleibt tatsächlich nur der direkte Weg, den die Hersteller der Betriebssysteme Google und Apple vorgesehen haben. Je ausgereifter die Vorgehensweisen sind, desto seltener sollten diese massiven Probleme jedoch auftreten.

Mit Mobile-Apps sind solche für Android und iOS gemeint. Cross-Plattform-Ansätze, die sich auf diese beiden Systeme konzentrieren, sind meist spezialisierter als Vorgehensweisen, die gleichzeitig auch das Erstellen von Apps für Desktopsysteme ermöglichen. Das liegt primär daran, dass die Hardwarevoraussetzungen auf einem mobilen Gerät (Touch, kleiner Bildschirm usw.) vollständig anders sind als auf einem Desktoprechner.

Los geht es mit Xamarin als Weg zur App für iOS und Android.

Xamarin

Mit Hilfe von Xamarin ist es möglich, Apps für alle Plattformen simultan zu erstellen [1]. Dabei erzeugt man native Applikationen. Grundsätzlich stehen zwei Wege zur Verfügung (Abb. 2):

krypczyk_cross_platform2_2.tif_fmt1.jpgAbb. 2: Xamarin.Forms vs. Xamarin traditionell
  1. Traditionell (nativ): Das User Interface wird mit der spezifischen Technologie der Plattform erstellt und die Businesslogik wird aus einer gemeins...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang