Apps entwickeln? Xamarin!

Das Entwicklungsmuster

Das Entwicklungsmuster Model-View-ViewModel, kurz ­MVVM, ist eine Variante des Model-View-Controller-Musters mit besserer Testbarkeit und geringerem Implementierungsaufwand. Wie MVC trennt es die Präsentation von der Logik. MVVM wird besonders bei WPF-Applikationen eingesetzt, findet aber beispielweise auch in Cocoa, Java­FX und HTML5 Verwendung.
Die Benutzeroberfläche (View) ist direkt an die Eigenschaften des ViewModels gebunden. Sobald sich eine Property im ViewModel ändert, wird im benutzerdefinierten Setter der Eigenschaft eine Benachrichtigung ausgelöst, die eine Änderung induziert. Im Endeffekt bezieht das ViewModel die Informationen aus der Geschäftslogik (Model) und setzt dementsprechend seine Properties, die automatisch in der View präsentiert und aktualisiert werden (Bild 7).
Das MVVM-Konzept im Überblick (Bild 7)
Es gibt Dutzende MVVM-Frameworks für Xamarin, die den Aufwand für die Implementierung des Entwurfsmusters reduzieren. Der Vorteil an diesem Pattern ist, dass der Programmcode beziehungsweise die Oberfläche sehr leicht und schnell anzupassen sind und man die Aufgaben gut im Team aufteilen kann. Beispielsweise können die Designer unabhängig von den Programmierern an der View arbeiten. Besonders hilfreich ist es für Entwickler, die die Applikation übernehmen oder erweitern, da der Code sehr übersichtlich ist.

Fazit

Lohnt sich der Einstieg in Xamarin, wenn man bisher nativ unterwegs ist oder neu in die mobile Entwicklung einsteigen will? Wenn man alle Plattformen unterstützen will – definitiv ja. Die Einrichtung des Macs benötigt zwar zusätzlich Zeit, falls man auf einem Windows-Computer entwickelt, das ist aber eine einmalige Aktion.
Die Umstellung auf XAML ist reine Gewöhnungssache und im Zusammenspiel mit dem MVVM-Pattern eine echte Bereicherung. Zu Beginn ist der Entwurf wegen der teilweise fehlenden Vorschau und langer Kompilierzeiten langsamer als mit einem grafischen Designer, aber dank der Visual-Studio-Updates gibt es inzwischen mehr automatische Vervollständigungen und Hilfsaktionen, die das Designen leichter machen.
Da man um plattformspezifischen Code und Konfigura­tionsdateien selten komplett herumkommt, muss man sich mit den Grundlagen jeder Plattform auseinandersetzen. Deshalb ist es bei komplexeren Apps weiterhin hilfreich, ein komplettes Entwicklerteam zu haben – im Idealfall mit einem Spezialisten für jedes Betriebssystem, denn jedes hat seine Eigenheiten und Einschränkungen.
NuGet-Pakete sind bei der Entwicklung unumgänglich, ­allerdings auch ein zweischneidiges Schwert. Es gibt viele Pakete die man relativ schnell benötigt, da Xamarin.Forms auf die essenziellen Steuerungselemente beschränkt ist. Bei manchen Paketen gibt es allerdings Kompatibilitätsprobleme zwischen den .NET Frameworks oder einfach Bugs, da die Erweiterungen teilweise noch nicht ausgereift sind. Auch im stabilen Kanal von Xamarin sind schon Bugs aufgetreten, welche die Funktionalität auf einer Plattform so eingeschränkt haben, dass ein Zurückkehren auf eine ältere Version nötig war. Das zeigt, wie stark man von Xamarin und der doch recht komplexen Erstellprozedur abhängig ist. Dank der vielen aktiven Maintainer auf GitHub werden Bugs aber in aller Regel schnell bearbeitet.
Die finale App ist auf den Plattformen durch Xamarin beziehungsweise Mono etwas grösser als „echte“ native Apps. Bei UWP-Apps wird sogar ein Installer gebaut, was sehr hilfreich für das Veröffentlichen ist.
Mit Xamarin lassen sich in sehr kurzer Zeit Menüs und Ansichten aufbauen (Bild 6). Ausserdem können plattformspezifische Besonderheiten, zum Beispiel Widgets und UI-Feinarbeiten wie Animationen, auf jeder Plattform individuell implementiert werden.
Wenn man aus der .NET-Entwicklung kommt, ist der Einstieg in Xamarin leicht, und man kann bestehende Projekte mit Business-Logik direkt in Apps einbinden. Visual Studio und auch XAML können dann wie gewohnt verwendet werden.
Auch bestehende Apps zu ersetzen, wie dies etwa der Paketdienstleister UPS bereits getan hat [5], kann sich lohnen. Nach Abschluss des Grundgerüsts sind Features sehr schnell zu implementieren.
Dokumente
Artikel als PDF herunterladen

Joshua Rutschmann
Autor(in) Joshua Rutschmann




Das könnte Sie auch interessieren