eXperts dotnetpro-Artikel: Der richtige Umgang mit Xamarin.Forms

Die Bandbreite aktueller Plattformen (Windows, iOS und Android) kombiniert mit unterschiedlichen Devices und Formfaktoren erhöht massiv die Komplexität bei der Entwicklung von mobilen Business-Applikationen.

Als Senior eXpert entwickle ich für Enterprise-Kunden skalierbare Frontend- und Backend-Architekturen mit Fokus auf mobilen Business-Apps auf Basis von Xamarin. Diese Erfahrungen, insbesondere mit der Komplexität bei der Entwicklung von Cross-Plattform-Apps mit Xamarin.Forms, lasse ich in meinem Artikel “Der richtige Umgang mit Xamarin.Forms”, der in der heutigen Ausgabe der dotnetpro erscheint, einfließen. Auf knapp acht Seiten berichte ich über die Entwicklung von Xamarin.Forms Apps mit plattformspezifischer User Experience und maximaler Code-Wiederverwendung.

Viel Spaß beim Lesen! Ich freue mich auf euer Feedback. 😊

Cross-Platform mit Xamarin.Forms 3.0

Nach der Ankündigung von Xamarin.Forms 3.0 auf der Microsoft Build Konferenz im Mai hat Microsoft die Features dieses nächsten Major-Releases im Visual Studio Magazin konkretisiert.

Insbesondere das neue Feature Xamarin.Forms für WPF bestätigt unsere Cross-Platform-Strategie, mit Xamarin.Forms professionelle Business Applications für die typischen Unternehmens-Plattformen Windows 7, Windows 10 und iOS umzusetzen.

Hier nun aus unserer Sicht ein kurzer Überblick über die wichtigsten, für Business Applications relevanten, Neuerungen:

Performance

Es werden grundlegend neue Features angegangen, um die Performance von Apps zu erhöhen:

  • Sogenannte „Fast Renderers“ reduzieren die Implementierung von zwei Views auf eine View und verringern so die Komplexität und damit den Ressourcenbedarf für das Gerät. Der Performancegewinn zeigt sich sofort, ohne Anpassungen an der App – außer bei selbst geschriebenen Custom Renderers, die auf die neuen Fast Renderers umgesetzt werden müssen.
  • Die Startzeit von Apps wird deutlich verbessert, indem Xamarin.Forms als einzelne DLL ausgeliefert wird.
  • OneTime-Bindings für Werte, die sich nach dem Setzen nicht mehr ändern, sparen Resourcen.

Embedding

Durch Embedding können Xamarin.Forms Views in nativen Xamarin.iOS/Android/UWP/WPF-Projekten aufgerufen werden. Dies erlaubt den flexiblen Einsatz von nativen Views für einzelne Plattformen wie auch gemeinsame Views für alle. Embedding ermöglicht so auch die schrittweise Migration von bestehenden Projekten.

Plattformen

Angefangen mit der Unterstützung für iOS und Android, also rein mobilen Plattformen, und fortgeführt mit UWP, wird Xamarin.Forms 3.0 demnächst weitere, nicht mobile Plattformen unterstützen: Neben macOS, Linux und Tizen das insbesondere im Unternehmensumfeld noch weit verbreitete WPF. In Kombination mit Embedding können so bestehende Technologien auf neue Plattformen migriert werden.

Um all diese Plattformen zu unterstützen, wird auf den zukünftigen Microsoft XAML-Standard vereinheitlicht, in 2017 zunächst auf die Version XAML-Standard 1.0.

Fazit

Xamarin.Forms 3.0 klingt vor allem für Business App-Projekte sehr vielversprechend, da die Erweiterungen und Neuerungen den Cross-Platform-Ansatz deutlich verbessern und gleichzeitig eine Migrations-Option für Bestands-Software bieten.

Weiterführende Information zu allen Features von Xamarin.Forms 3.0 sowie zur Timeline erhalten Sie auf den Xamarin Dev Days z.B. bei SDX in Frankfurt oder über folgende Links:

XAML-Designer für Xamarin.Forms

Unter WPF ist es möglich, sein XAML und seine UI direkt im Designer zu sehen und zu entwickeln – was die Entwicklung vereinfacht und beschleunigt. Unter Xamarin.Forms war dies bisher nicht möglich. Also wird unter Xamarin.Forms aktuell die UI in XAML entwickelt, dann auf das Gerät oder den Emulator installiert und anschließend kann die Arbeit gesehen und getestet werden.

Diesen Aspekt will Xamarin nun verbessern: Auf der diesjährigen Evolve im April wurde ein XAML Previewer angekündigt. Hiermit kann man während der Entwicklung einen Emulator öffnen und seine UI-Änderungen in XAML direkt sehen und erleben.
Da der XAML Previewer von Xamarin immer noch nicht zur Verfügung steht, muss man sich aktuell nach Alternativen umsehen, wenn man seine UI während der Entwicklung sehen möchte. Hierbei stößt man relativ zügig auf den Gorilla Player von UXDivers, der aktuell auch von Xamarin empfohlen wird.

Gorilla Player

Der Gorilla Player ist ein mächtiges Tool – auch jetzt schon, obwohl es noch im BETA-Stadium ist. Denn dieses Tool bietet aktuell bereits mehr Funktionen an, als Xamarin für seinen neuen XAML Previewer überhaupt angekündigt hat.

Mit dem Gorilla Player ist es möglich, seine UI nicht nur auf einem Emulator zu erleben, sondern gleichzeitig auf unterschiedlichen Emulatoren. Und um hier noch weiter zu gehen, kann die UI auch direkt auf einem echten Gerät angezeigt werden, sodass auch die UX wirklich erlebt werden kann. Hiermit gehen die Entwickler einen deutlichen Schritt weiter als die üblichen Designer zur Entwicklungszeit.

Darüber hinaus kann der Gorilla Player die Oberfläche nicht nur auf Emulatoren und Geräten anzeigen, sondern bietet auch die Möglichkeit, einen Status zu seiner Oberfläche zu bekommen.
Status
Hier überprüft der Gorilla Player den Code hinter der Oberfläche und gibt eine Übersicht wieder, ob der Code in Ordnung ist oder ob es an einigen Stellen Warnungen oder Hinweise gibt. Wenn Fehler vorhanden sind, kann die Oberfläche nicht angezeigt werden – dafür werden im Statusfeld aber direkt der Fehler und der Grund inkl. eines kurzen StackTrace angezeigt. Hierdurch wird die Suche nach dem Fehler und einer Lösung beschleunigt.

Das Schöne an diesem Gorilla Player ist auch, dass man eigene Steuerelemente verwenden und sich live angucken kann – hierfür muss die App nur einmal mit den jeweiligen UserControls, Converters, CustomRenderer etc. deployed und anschließend können die Referenzen im XAML auch aufgelöst werden.

Einbindung

Die Einbindung des Gorilla Players in sein eigenes Xamarin.Forms Projekt ist weder komplex noch zeitaufwendig, da einfach nur die benötigten NuGet-Pakete eingebunden werden müssen. Nach dem Kauf der Lizenz erhält der Entwickler auch eine Applikation für den Entwicklungsrechner, die sich um die ganze Koordination zwischen dem Quellcode und den einzelnen Playern auf den Geräten/Emulatoren kümmert.

Nach der erfolgreichen Einbindung muss die App einmal auf das Gerät oder den Emulator installiert werden. Nach der erfolgreichen Verbindung zwischen Gerät, Applikation und Visual Studio muss lediglich eine XAML-Datei geöffnet werden. Dass der Gorilla Player nun diese XAML-Datei darstellt, sieht man an dem eingeblendeten Logo innerhalb des Visual Studios in der rechten oberen Ecke.

connected

Ein kleines Manko an dem Gorilla Player ist allerdings, dass er aktuell nur für die Plattformen Android und iOS zur Verfügung steht – nicht für UWP oder WindowsPhone.

UI/UX erleben

Mit dem Gorilla Player von UXDivers bekommt man ein sehr mächtiges Tool an die Hand, mit dem der Entwickler direkt seine zu entwickelnde UI und UX sehen und vor allem erleben kann.

Und wer seine UI nicht von Grund auf neu aufbauen, sondern auf bestehenden Templates aufsetzen möchte, sollte sich das Grial UI Kit von UXDivers genauer ansehen. Hier bekommt man ebenfalls für die Plattformen Android und iOS eine Vielzahl von fertigen Screens zur Verfügung gestellt.

Quellen:

Xamarin Evolve 2016: https://evolve.xamarin.com/
XAML-Previewer Ankündigung: https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-previewer/
UXDivers: http://www.uxdivers.com/
Gorilla Player: http://gorillaplayer.com/
Grial UI Kit: http://grialkit.com/