© Zhitkov Boris/Shutterstock.com
Wege zur mobilen App - Teil 2

Xamarin - State of the Art


Neben der Namensänderung von Xamarin zu MAUI sind weitere Entwicklungen des Frameworks zum Erstellen von plattformübergreifenden Apps für mobile Devices geplant. Dieser Artikel gibt einen Überblick über den aktuellen Stand von Xamarin, beschreibt den Stand der Technik aus der Perspektive der Praxis und wagt einen Blick in die Zukunft.

Im vorherigen Artikel haben wir uns einen Überblick über alternative Vorgehensweisen zur Entwicklung von Apps für mobile Geräte verschafft. Eine führende Marktposition in diesem Bereich hat seit langer Zeit Xamarin. Insbesondere für Entwickler aus dem Microsoft-Umfeld ist diese Vorgehensweise nach wie vor von größerem Interesse, da sie eine Entwicklung von Apps für iOS und Android mit dem bekannten und vertrauten Technologiestack ermöglicht. Damit meinen wir das Zusammenspiel aus der Programmiersprache (C#), dem Einsatz von .NET Core als Basis-Framework, bekannter Bibliotheken und einer vertrauten Entwicklungsumgebung in Form von Visual Studio. Ebenso sind das deklarative Erstellen des User Interface mit XAML (Xamarin.Forms) und der typische Aufbau (Architektur) einer Applikation auf der Basis des Model-View-ViewModel-(MVVM-)Patterns der Standard, wenn man mit den Vorgehensweisen zum Erstellen von Applikationen für Windows-Systeme auf der Basis der Universal Windows Platform (UWP) bzw. Windows Presentation Foundation (WPF) vertraut ist.

In diesem Teil der Artikelserie werfen wir einen vertiefenden Blick auf den Stand des Frameworks, probieren einige Aspekte anhand eines Beispiels aus der Praxis aus und versuchen, damit den aktuellen Stand des Ansatzes zu skizzieren. Ebenso interessiert uns, wie es mit Xamarin weitergeht. Aus Xamarin wird MAUI, oder wie es vollständig heißt: .NET Multi-Platform App UI. Und sonst ändert sich nichts? Doch, die aktuell auf der Build 2020 von Microsoft vorgestellte Roadmap verspricht durchaus Änderungen auf allen Ebenen.

Interessant ist insbesondere der Umstand, dass sich Xamarin durchaus zum Erstellen von Apps für Android und iOS etablieren konnte, obwohl das eigene Betriebssystem von Microsoft für mobile Devices, Windows 10 Mobile, schon seit geraumer Zeit nicht mehr am Start ist. Entwickler aus dem Microsoft-Umfeld werden nach wie vor erfreut sein, mit ihren Kenntnissen auch Apps für Smartphones bauen zu können.

Der aktuelle Stand von Xamarin

Xamarin bietet bekanntermaßen (Stand heute) zwei Optionen, eine App für Android bzw. iOS zu erstellen. Man kann sich mit der plattformübergreifenden Programmierung auf die Businesslogik der App beschränken und für das Erstellen des User Interface die jeweilige native Vorgehensweise von Android und iOS verwenden. Deutlich weiter geht der Ansatz von Xamarin.Forms. Bei Xamarin.Forms handelt es sich um ein Open-Source-Benutzeroberflächen-Framework. Xamarin.Forms ermöglicht es, die Benutzeroberflächen in XAML zu deklarieren und die entsprechende Logik via Code-Behind in C# zu schreiben. Das MVVM-Pattern kann auch als Architekturprinzip für die Verbindung von View und Logik verwendet werden, und man setzt in der Regel auf ein konsequentes Data Binding bei der Anbindung des User Interface. Die Funktionsweise von Xamarin.Forms ist in Abbildung 1 dargestellt.

bochkor_app_development_teil2_1.tif_fmt1.jpgAbb. 1: Funktionsweise von Xamarin.Forms [1]

Xamarin.Forms verwendet ein einheitliches API, mit dem sich plattformübergreifend Benutzeroberflächenelemente erstellen lassen. Zur Laufzeit verwendet Xamarin. Forms Plattform-Renderer, die die plattformübergreifend definierten Elemente des User Interface in native Steuerelemente für Android und iOS konvertieren. Eine Xamarin.Forms-Anwendung besteht in der Regel aus einer freigegebenen .NET-Standard-Bibliothek und einzelnen Plattformprojekten, d. h. pro unterstützter Plattform haben wir ein Projekt und ein gemeinsames Projekt für die generische Definition der Seiten, die Geschäftslogik in C#, den Zugriff auf Dienste, Modelle usw.

Achtung: Künftig ist hier eine Änderung geplant, d. h., der Nachfolger .NET MAUI plant eine Bündelung des gesamten Codes in einem Projekt und damit ein vereinfachtes Deployment zwischen den Plattformen. Xamarin.Forms bietet umfassende Optionen, um über externe Bibliotheken zusätzliche Funktionen zu erhalten. Besonders häufig setzt man in der Praxis dabei die folgenden Bibliotheken ein:

  • Xamarin.Essentials: Eine Bibliothek, die die plattformübergreifenden APIs für typische Gerätefunktionen kapselt. Funktionen aus dieser Bibliothek sind zum Beispiel die Nutzung des Beschleunigungssensors, des Barometers und der GPS-Funktion. Ebenso gehört dazu das Abrufen von Gerätefunktionen, das Speichern von Dateien in App-Daten oder das vereinfachte Erstellen von SMS.

  • Xamarin.Forms-Shell: Es werden weitere App-typische Funktionen bereitgestellt. Dazu gehören eine gemeinsame Navigationsbenutzerumgebung, ein URI-basiertes Navigationsschema und ein integrierter Such-Handler.

  • Xamarin.Forms Material Visual: Material Design ist ein von Google erstelltes Entwurfssystem, das das Aussehen von Apps in Hinblick auf die Größe, die Farbe, den Abstand usw. der Elemente definiert. Wird diese Designbibliothek in Xamarin.Forms angewendet, sehen die damit erstellten Apps für iOS und Android weitgehend identisch aus. Damit ist es möglich, unabhängig von der Zielplattform ein einheitliches Design umzusetzen und das Aussehen der App zum Beispiel an die Vorgaben eines bestehenden Corporate Designs des Unternehmens anzupassen.

In den folgenden Abschnitten soll der aktuelle Stand zu den Entwicklungswerkzeugen für Xamarin-Apps näher beleuchtet werden. Wir haben die Wahl, unter Microsoft Windows zu entwickeln und die dazu notwendigen Tools in Visual Studio 2019 zu installieren, oder wir können die integrierte Entwicklungsumgebung Visual Studio Mac direkt auf macOS ausführen. Grundsätzlich gilt jedoch: Um Apps für iOS und/oder macOS zu erstellen, wird ein Mac mit installiertem Xcode benötigt, um die App-Packages zu generieren.

Xamarin unter Windows

Will man mit Visual Studio unter Windows arbeiten, müssen zunächst einige erweiternde Installations- und Konfigurationsarbeiten am Entwicklungsrechner vorgenommen werden. Der Installer von Visual Studio muss über die Workload „Mobile Entwicklung mit .NET“ installiert werden (Abb. 2).

bochkor_app_development_teil2_2.tif_fmt1.jpgAbb. 2: Xamarin muss als Workload in Visual Studio installiert werden

Das kann einige Augenblicke dauern, denn es werden sogleich die notwendigen Dateien zum Erstellen von Apps für Android und iOS auf den Rechner geladen. Ebenso stehen dann neue Projektvorlagen zur Verfügung. Neben der Einrichtung des Windows-Rechners sind auch einige Arbeiten auf dem Mac notwendig. Auch wenn wir die App vollständig in Visual Studio entwickeln, ist es notwendig, Xcode auf dem Mac zu installieren. Laden Sie dazu Xcode kostenfrei aus dem App Store herunter und installieren Sie die Entwicklungsumgebung. Starten Sie Xcode nach der grundlegenden Installation. W...

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