Xamarin – Was ist das eigentlich?

Xamarin – Was ist das eigentlich?

Für die Leser, die sich im Bereich der Enterprise-Entwicklung auskennen, sollte der Begriff Xamarin nicht gänzlich neu sein. Voraussichtlich werden sie diesen mit einer Plattform verbinden, die es ermöglicht, mit geringerem Aufwand eine App für die drei meist vertretenen mobilen Plattformen – iOS, Android und WindowsPhone – zu entwickeln. Doch das ist so nicht ganz korrekt.

Xamarin ist in erster Linie der Name eines Software-Unternehmens aus San Francisco, das 2011 gegründet wurde. Das Unternehmen wurde von den Entwicklern des Mono-Frameworks ins Leben gerufen.

Bei Mono handelt es sich um eine quelloffene Implementierung von Microsofts .NET Framework. Das Ziel besteht darin, die Entwicklung plattformunabhängiger Software unter Einsatz der Programmiersprache C# zu ermöglichen. Um die Plattformunabhängigkeit gewährleisten zu können, achten die Entwickler auf die Einhaltung des internationalen Standards der Common Language Infrastructure (CLI). Mono ist fester Bestandteil der Xamarin Plattform und wird stetig weiterentwickelt.

Xamarin Logo

Quelle: xamarin.com

Xamarin macht es sich zur Aufgabe, die Entwicklung der Cross-Platform im mobilen Bereich zu beschleunigen und zu vereinfachen. Die Softwareentwickler können in C# Apps für iOS, Android und WindowsPhone schreiben. Der geschriebene Quellcode kann im Durchschnitt zu 75 Prozent für alle Plattformen benutzt werden. Die Xamarin Plattform ist dann in der Lage, die in C# geschriebenen Apps in die jeweilige native Sprache zu übersetzen. Somit ist gewährleistet, dass am Ende des Entwicklungsprozesses eine native App für die jeweilige Plattform zur Verfügung steht. Neben den mobilen Betriebssystemen ist auch die Entwicklung von Apps für Mac und Windows möglich.

Aufkauf von Microsoft und Integration in Visual Studio

Unter dem Hashtag #XamarinJoinsMicrosoft war am 24. Februar 2016 einiges los auf Twitter. Auch auf den einschlägigen TechBlogs war das Xamarin-Logo in Verbindung mit dem Microsoft-Logo zu sehen. Grund dafür ist, dass Microsoft das Unternehmen gekauft hat. Laut der New York Times beläuft sich der Kaufpreis auf mindestens 300 Millionen Dollar. Zum Zeitpunkt der Übernahme verfügte das Unternehmen über 350 Mitarbeiter und hatte 150.000 Kunden in 120 Ländern.

Durch die finanziellen Mittel, die durch den Aufkauf zur Verfügung stehen, soll die Xamarin Plattform optimiert und schneller weiterentwickelt werden. Durch diese Maßnahmen könnte die Xamarin Plattform für immer mehr Entwickler und Unternehmen im Enterprise Bereich attraktiver werden. Das würde wiederum dazu führen, dass vermehrt auch Apps für Microsofts eigene mobile Plattform entwickelt werden würden. Was im Vergleich zur Anzahl der Apps im App Store (iOS, 1,5 Millionen) und Play Store (Android, 1,6 Millionen) auch deutlich nötig wäre. Im Windows Phone Store befinden sich zur selben Zeit lediglich 340.000 Apps (Stand: Juli 2015).
Neben den bereits genannten Maßnahmen zur Verbreitung der Xamarin Plattform gibt es eine vollständige Integration aller Komponenten, die Xamarin zur Verfügung stellt, in jeder Visual Studio Version. Dazu gehört auch die kostenfreie Variante namens Visual Studio Community. So werden bereits alle notwendigen Komponenten mit Visual Studio vorinstalliert, um mit der Xamarin-Entwicklung loszulegen. Dazu gehören z. B. Emulatoren für Android und iOS.
Neben der reinen Entwicklung stellt Visual Studio Mechanismen zur Verfügung, um die entwickelten Apps zu Debuggen, Builden und Deployen. Des Weiteren kann Xamarin nun auf die Portable Class Libraries (PCL) von Microsoft zugreifen. Außerdem werden die meisten Features von C# 5.0 ebenfalls unterstützt, wie beispielsweise async/wait.

Die verschiedenen Xamarin Produkte

Wir von CCVOSSEL haben für Sie die wichtigsten Begriffe einmal zusammengefasst:

Xamarin Studio
Im Februar 2013 hat Xamarin seine eigene standalone IDE namens Xamarin Studio veröffentlicht. Ein Grund für die Einführung einer eigenen IDE war, dass Visual Studio nicht auf einem Mac lauffähig ist. Dieses Problem löst man mit Xamarin Studio, denn es ist für Windows und Mac verfügbar. Zudem ist die IDE auf die mobile Entwicklung spezialisiert und auf die Bedürfnisse dieser Art der Entwicklung abgestimmt. Neben einem Debugger bietet Xamarin Studio die Möglichkeit der C# Code-Completion, einen Android UI Builder zum Erstellen von User Interfaces ohne die Verwendung von XML sowie eine Integration zum Xcode Interface Builder zum Designen von iOS Apps.

Xamarin Plattform
Die Xamarin Plattform ist eine Sammlung von mehreren Komponenten. Mit den Komponenten Xamarin.iOS, Xamarin.Android und Xamarin.Mac wird es möglich, native Apps für iOS, Android, Mac und Windows in C# zu schreiben. Für die Entwicklung stehen zwei IDEs zur Verfügung, Visual Studio und Xamarin Studio.

Xamarin.Forms
Mit dieser Komponente hat der Entwickler die Möglichkeit, auch die UI plattformübergreifend mit nur einer Codebasis zu implementieren. Dabei stellt Xamarin.Forms ein gewisses Kontingent an UI-Elementen zur Verfügung, das auf allen mobilen Plattformen zur Verfügung stehen muss (z. B. eine TextView oder ein Button). Bei der Umsetzung zur nativen App werden diese Forms-Elemente dann in die eigentlichen UI-Elemente der jeweiligen Plattform übersetzt.

Einsatzmöglichkeiten und Voraussetzungen

Quelle: shutterstock_395220502

Quelle: shutterstock_395220502

Um einen guten Einstieg in die Entwicklung mobiler Apps mit Xamarin zu finden, sind fundierte Kenntnisse in C# und .NET von Vorteil. Ebenfalls sollten weitreichende Kenntnisse in der nativen Programmierung und Nutzung der jeweiligen Plattform vorhanden sein, da man auf die nativen Elemente zugreift. Apps auf Basis der Xamarin.Forms erfordern weniger tiefreichende Erfahrungen, da diese eine weitere Abstraktionsschicht darstellen, die im Hintergrund auf die jeweiligen nativen Funktionalitäten zugreifen.

 

Vorteilhaft sind auch das grundlegende Verständnis sowie die Erfahrung in UI/UX für die spezifische Plattform. Eine App sollte nicht auf allen Plattformen zu hundert Prozent gleich aussehen. Der Nutzer muss sich in der App wiederfinden können.

Um für alle Plattformen entwickeln zu können, sind sowohl ein Mac, als auch ein Windows PC nötig, da iOS Applikationen nur auf einem Apple Rechner gebaut werden können/dürfen und Windows Apps auf Windows. Der Umweg über eine virtuelle Maschine ist leider nicht möglich.

Die Vorteile von Xamarin im Überblick

  • Die Implementierung einer App für alle Plattformen in nur einer Programmiersprache ist der größte Vorteil, den Xamarin mit sich bringt.
  •  etwa 75 Prozent des Codes kann plattformübergreifend wiederverwendet werden, mit Xamarin.Forms sogar noch um einiges mehr.
  • Dadurch entstehen weitaus geringere Kosten bei der Entwicklung, da nicht für jede Plattform eine komplette App implementiert werden muss.
  • Schnellere Auslieferung der Apps.
  • Sehr gute UI Automation Acceptance Tests über Calabash.
  • Die mächtigen Spracheigenschaften von C# wie LINQ, Generics, Tasks, Attributes etc. können verwendet werden.
  • Dadurch, dass nativer Code generiert wird, erhält man auch native Performance.
  • Der Xamarin Component Store mit sehr vielen nützlichen Bibliotheken
  • Sehr gute Community
  • Layouts können einfach über XAML Dateien erstellt werden.
  • Das Kostenmodell hat sich geändert und Xamarin steht nun kostenlos zur Verfügung

Die Nachteile von Xamarin im Überblick

  • Die Entwicklung hängt häufig den aktuellen Versionen der jeweiligen Plattform hinterher, da Xamarin nachliefern muss.
  • Xamarin.Forms bietet nicht die Möglichkeit, Apps mit komplexer UI zu bauen.
  • Auffinden von Fehlern wird erschwert, da Xamarin eigene Fehler mitbringt.
  • Der Aufwand ist zu Beginn schwerer abschätzbar, da viele Dinge für alle Plattformen berücksichtigt werden müssen
  • Zugriff auf iOS Simulator zurzeit nur über separatem Mac möglich. Dies könnte allerdings bald kein Problem mehr sein, da Xamarin seinen eigenen iOS Simulator anpreist.
  • Es besteht bisher keine Möglichkeit, um die (Visual Studio integrierten)-Android Emulatoren zu konfigurieren, da die Emulatoren vorgefertigt sind.

 

Sie haben Fragen zum Thema Xamarin?
Wir von CCVOSSEL freuen uns auf Ihren Anruf!