Für das plattformübergreifende Entwickeln von mobilen Applikationen gibt es die verschiedensten Tools, die einem bei dieser Arbeit unterstützen können. Eines davon ist Xamarin, welches einem ein Cross-Plattform
Toolkit für das Entwickeln von Android, Windows Phone und iOS Applikationen zur
Verfügung stellt. In diesem Blogartikel werden wir uns ein wenig mit Xamarin.Forms
beschäftigen.
Mithilfe von Xamarin.Forms kann das gesamte Layout der
Applikation entweder in XAML (Extensible Application Markup Language) oder im
C# Quellcode definiert werden, was eine sehr schnelle und einfache Entwicklung
ermöglicht. Somit gehört das Entwickeln von mehreren User Interfaces für die
einzelnen Zielplattformen der Vergangenheit an, da dieser Entwicklungsschritt
mit Xamarin.Forms abstrahiert wird: Ein Xamarin.Forms.Button wird in das
jeweilige UI Element der Zielplattform umgewandelt. Folglich ist ein weiter
Vorteil von Xamarin.Forms die Tatsache, dass die hierbei entstehenden
Applikationen nativ auf den Geräten laufen und somit die Nutzung der plattformspezifischen
APIs möglich ist. Die Nutzung von Designpatterns wie zum Beispiel MVVM wird
durch diesen Aufbau ebenfalls ermöglicht.
Nach der Wahl eines
Xamarin.Forms Templates in Visual Studio werden mehrere Projekte in einer Solution
erstellt. Für jede einzelne Plattform wird ein eigenes Projekt erstellt,
welches dann Xamarin.Forms Framework initialisiert.
Der plattformspezifische Code für diesen Prozess schaut für
jedes mobile Betriebssystem selbstverständlich anders aus. Um die Wiederverwendbarkeit
des Startup–Codes zu optimieren, wird in einer portablen Klassenbibliothek die
Klasse App erstellt, welche für das Initialisieren der ersten Seite zuständig
ist. Beim Erstellen der Solution wird hierfür bereits ein Beispielcode
eingefügt:
In dieser Klasse wird im Konstruktor eine neue ContentPage
angelegt, welche dann nach dem Start der Applikation auf dem Endgerät angezeigt
wird. Man könnte jetzt beispielsweise mit dieser automatisch generierten Seite
weiterarbeiten und das gesamte UI in C# definieren oder alternativ eine neue
Seite einfügen, die in XAML definiert ist.
Hierfür müssen wir zunächst in unserem XForms (Portable) –
Projekt eine neue XAML – Seite einfügen:
In dieser XAML – Datei können wir nun unsere neue Startseite
für dieses Xamarin.Forms Projekt erstellen. Hierfür werden wir ein Eingabefeld
und einen Button benötigen. Unsere kleine Beispielanwendung wird den Inhalt des
Eingabefeldes bei einem Klick auf den Button in einem Meldungsfenster ausgeben.
Wer bereits Erfahrungen mit UWP oder WPF gemacht hat, wird sich an folgender
Stelle sicherlich recht schnell zurechtfinden:
Für unser Layout benötigen wir einen Container, der unsere
Steuerelemente für uns automatisch ausrichtet. Hierbei eignet sich das StackLayout,
welches all unsere Steuerelemente übereinander stapelt. Für die Darstellung
eines Beschriftungstextes verwenden wir ein Label-Steuerelement, für ein
einfaches Eingabefeld ein Entry-Steuerelement und für den Button ein
Button-Steuerelement.
In der Code-Behind-Datei definieren wir nun die
Funktionalität unseres kleinen Beispiels. Wir wollen ein Meldungsfenster auf
allen Geräten anzuzeigen und den Inhalt des Eingabefeldes wiedergeben. Hierfür
wird die Methode DisplayAlert genutzt.
Damit unsere neue Startseite letztendlich auch angezeigt
wird, müssen wir den Code in der App.cs – Datei der XForms-Library ein wenig anpassen.
Hierbei müssen wir der MainPage nur eine Instanz unserer neuen Startseite
übergeben:
Unser Projekt ist nun fertig. Die UWP und Android – Varianten
sehen beispielsweise folgendermaßen aus:
Wer mehr über die vielen Möglichkeiten von Xamarin und
Xamarin.Forms erfahren möchte, kann auch einen passenden Kurs dazu besuchen.