© S&S Media
Teil 3: Vorgehensweisen am Beispiel von Apps für Android und iOS

Mobile Apps aus einer Quelle


In dieser Ausgabe wollen wir die Praxis der Cross-Platform-Entwicklung für die mobilen Systeme Android und iOS betrachten. Wie sieht eine passende Entwicklungsumgebung aus? Welchen Aufbau hat ein Projekt? Wie wird das User Interface erstellt? Fragen über Fragen. Wir haben einige Vorgehensweisen detaillierter betrachtet.

In Teil 2 der Artikelserie haben wir die folgenden Ansätze zur Entwicklung von nativen Apps für iOS und Android im Überblick vorgestellt: Xamarin, RAD Studio (FireMonkey), NativeScript, Flutter und Qt. Diese Ansätze eint das gemeinsame Ziel, aus einer einzigen Quellcodebasis simultan Apps für die Systeme Android und iOS zu erstellen. In diesem dritten Teil der Artikelserie wollen wir den Schwerpunkt der Cross-Platform-Programmierung vertiefen. Dazu besprechen wir die praktische Vorgehensweise bei der Entwicklung einer App anhand unterschiedlicher Ansätze.

Testfeld

Aus dem umfassenden Angebot der Entwicklungsansätze zur mobilen und nativen App-Entwicklung für Android und iOS aus einem gemeinsamen Quellcode haben wir uns für drei recht unterschiedliche Vorgehensweisen entschieden. Es sind:

  • Xamarin: Mit Microsoft Technologien (C#, XAML) kann man in Visual Studio unter Windows oder macOS arbeiten.

  • Tabris.js: Man arbeitet mit JavaScript (TypeScript) und einem interessanten Entwicklungszyklus aus Developer-App und Online-Build.

  • RAD Studio: Apps entstehen hier als Teil einer umfassenden geräteübergreifenden Strategie.

In den folgenden Textabschnitten sehen wir uns diese alternativen Vorgehensweisen im Detail an. Beginnen wir mit Xamarin von Microsoft.

Eine App mit Xamarin Forms

Zunächst müssen wir uns hier über die Konfiguration der Entwicklungsumgebung Gedanken machen. Wir haben die Wahl zwischen Visual Studio (Microsoft Windows) mit dem entsprechenden Workload oder Visual Studio for Mac (macOS) [1]. Um Apps für iOS zu erstellen und per Simulator zu testen, ist ein installierter Xcode auf einem macOS notwendig. Mit dem Erstellen von Apps ist hier das Generieren des App-Package gemeint. Ein brauchbarer Ansatz ist es, Windows in einer virtuellen Maschine auf macOS auszuführen. Über die Projektvorlage starten wir eine neue Cross-Platform-App und wählen als Vorlage Xamarin.Forms für die gemeinsame Codebasis (Abb. 1).

krypczyk_cross_platform_3_1.tif_fmt1.jpgAbb. 1: Vorlage Visual Studio for Mac für eine Xamarin.Forms-App

Der Assistent fordert Sie dazu auf, die Zielplattformen und die Art der Codeteilung festzulegen. Wir aktivieren iOS und Android. Für jede Plattform (iOS, Android) wird jeweils ein eigenes und ein übergreifendes Projekt angelegt. Idealerweise gelingt es, den gesamten Code im generischen Projekt unterzubringen. Spezifischer Quellcode ist dann für die Plattformen nicht notwendig. Das User Interface wird deklarativ mit Hilfe der Beschreibungssprache XAML erstellt.

Eine Vorschaufunktion erlaubt das Abschätzen des Ergebnisses. Einen interaktiven Designer gibt es nicht. Bezüglich der Architektur setzt man bei Xamarin auf das MVVM-Pattern. Es werden also das User Interface (View), Geschäftslogik (ViewModel) und Datenschicht (Model) getrennt. Die Steuerelemente des User Interface kann man über ihre Eigenschaften und die auslösenden Ereignisse mittels Data Binding an das ViewModel binden. Damit können die Daten zwischen den Schichten ausgetauscht werden, ohne dass dafür explizit Code geschrieben werden muss. Ist die erste Version einer App fertiggestellt, kann man diese für die jeweilige Zielplattform kompilieren. Bekanntermaßen benötigt man für iOS wieder einen Mac und Xcode im lokalen Netzwerk. Die App wird direkt aus Visual Studio heraus erstellt.

Für Xamarin sind inzwischen sehr viele Komponenten und Bibliotheken verfügbar. Diese bindet man in das eigene Projekt ein. Entwickler, die mit den Technologien aus dem Microsoft-Stack vertraut sind, werden hier schnell klarkommen. Insbesondere das Erstellen des User Interface mittels XAML-Beschreibungssprache ist dem Vorgehen beim Erstellen einer WPF-(Desktop-) oder UWP-App sehr ähnlich. Zwar sind die XAML-Dialekte unterschiedlich, aber die Systematik ist gleich. Wie bereits im letzten Teil erwähnt, besteht grundsätzlich die Option, statt dem generischen Vorgehen mit Xamarin.Forms das User Interface plattformspezifisch zu erstellen. Das sollte aber nur dann gewählt werden, wenn man mit Xamarin.Forms nicht an das Ziel kommt, denn dann werden einige Vorteile der Cross-Platform-Strategie wieder aufgehoben.

Xamarin zeichnet sich durch folgende Features aus, um eine native App für Android und iOS zu erstellen:

  • User Interface: Auswahl zwischen einem generischen User Interface auf der Basis von Xamarin.Forms bzw. einem plattformspezifischen Vorgehen.

  • Xamarin.Forms: Deklarative Erstellung des User Interface mit einer einfachen Entkopplung der Anwendungsschichten auf der Basis des MVVM-Patterns (Kasten: „Das MVVM-Pattern“).

  • Entwicklungsumgebung: Einsatz einer umfassenden integrierten Entwicklungsumgebung Visual Studio bzw. Visual Studio for Mac.

  • Bibliotheken: Rückgriff auf viele Bibliotheken über den Package-Manager in Visual Studio NuGet.

Xamarin (Forms) richtet sich damit primär an Entwickler, die native Apps für iOS und Android entwickeln möchten und bereits Erfahrungen haben im Stack der Microsoft-Technologien (XAML, C#, Visual Studio).

Eine App mit Tabris.js

In der Aufstellung der Cross-Platform-Ansätze des letzten Teils hatten wir Tabris.js noch nicht vorgestellt, daher holen wir das jetzt nach. Mit Tabris.js können Sie native Apps für iOS und Android aus einer einzigen Codebasis mit Hilfe der Programmiersprache JavaScript bzw. TypeScript entwickeln [2]. Tabr...

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

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang