Share with your friends










Submit
CrossPlatform

Besonderheiten der Xamarin-Plattform

Die Xamarin-Plattform bietet einige spezielle technische Vorteile, die sie zu einem idealen Grundpfeiler für eine nachhaltige mobile Entwicklungsstrategie machen – gerade auch für Unternehmen, die sich keine zwei oder drei parallelen Entwicklungsprozesse leisten können oder wollen. Durch die nahtlose Einbettung der iOS-, Android- und Windows Phone – Entwicklung in das umfangreiche Ökosystem von C#/.NET und die enge Kooperation von Xamarin mit Microsoft ergeben sich völlig neue Perspektiven technischer, aber auch wirtschaftlicher Natur.

Im Folgenden werden die wichtigsten Aspekte kurz vorgestellt.

Plattform – Nativität

Mit Xamarin erstellte Anwendungen sind nativ auf der jeweils zugrunde liegenden Plattform (iOS, Android, Windows Phone) [1]. Durch eine spezielle Bindungstechnologie haben die Entwickler mit der Programmiersprache C# vollen Zugriff auf die Anwendungsschnittstellen der jeweiligen Plattform, etwa auf Features wie Telefonie, Gesichtserkennung, Kalender-Integration, NFC oder Bluetooth. Der Support etwaiger herstellerspezifischer Features und/oder OS-Versionen wird dabei innerhalb weniger Stunden nach Veröffentlichung des Hersteller-Release bereitgestellt.

Volle Unterstützung gängiger Entwicklungsumgebungen

Xamarin unterstützt sowohl die weitverbreitete, für die C# – Entwicklung gängige Entwicklungsumgebung Visual Studio von Microsoft [2] als als auch eine eigene IDE namens Xamarin Studio [3]. Beide stellen alle Werkzeuge bereit, die ein Entwickler benötigt, um eine App zu entwerfen, zu entwickeln und in die jeweiligen App-Stores zu stellen (wie z.B. visuelle Designer, Code-Debugger, Performance-Profiler etc.).

Vor allem die Visual Studio – Integration dürfte den meisten C#-Entwicklern sehr entgegenkommen, da es ihnen dadurch ermöglicht wird, mit den meist über Jahre vertrauten Entwicklungswerkzeugen zu arbeiten. Zudem hat man dadurch Zugriff auf das komplette Ökosystem unterstützender Tools wie etwa ReSharper oder Team Foundation Server.

Xamarin Component Store

Der Xamarin Component Store ist ein Webkatalog freier und kostenpflichtiger Erweiterungskomponenten für Xamarin, ganz ähnlich dem weithin bekannten NuGet. Und ebenso wie sein Vorbild ist er direkt in die Entwicklungsumgebung integriert (sei es Visual Studio oder Xamarin Studio), sodass es sehr schnell und einfach möglich ist, spezielle Komponenten wie etwa einen Barcode-Scanner, ein Unterschriften-Modul oder auch eine Cloud-Anbindung in eine Xamarin-App zu integrieren.

Der Xamarin Component Store wird vom Unternehmen selbst gepflegt. So wird sichergestellt, dass immer alle Komponenten auf dem neuesten Stand sind, fehlerfrei arbeiten und gut dokumentiert sind.

Support, Training und Services

Neben den Entwicklungswerkzeugen bietet Xamarin auch ein umfangreiches Ökosystem an Support und Dienstleistungen, um die App-Entwicklung zu unterstützen. Die Angebote umfassen z.B. SLAs, technische Unterweisung und Unterstützung bei der Fehlersuche/Optimierung.

Mit der Xamarin University bietet Xamarin außerdem ein systematisches technisches Training an, dass es Entwicklern ermöglicht, sich gezielt weiterzubilden und alle Nuancen der Xamarin-Plattform zu erlernen.

Voller Zugriff auf die herstellerspezifischen Anwendungsschnittstellen

Xamarin bietet vollen Zugriff auf die herstellerspezifischen Anwendungsschnittstellen der jeweiligen Plattform (Android bzw. iOS). Eine spezielle Bindungstechnologie stellt ein 1:1-Mapping auf die jeweils native API bereit, während natürlich auch C#-spezifische Idiome wie etwa LINQ, Delegaten oder Events uneingeschränkt verfügbar sind.

Erweiterbarkeit

Mittels Xamarin wird die mobile App-Entwicklung vollständig in das bereits bestehende, sehr umfangreiche Ökosystem integriert, das über die Jahre um die C#-Entwicklung herum gewachsen ist. Dies heisst in der Praxis, dass Xamarin-Entwicklern alle für C# verfügbaren portablen Programmbibliotheken von Drittanbietern zur Verfügung stehen (Als Beispiele seien hier etwa die Bibliothek Automapper und die Spracherweiterung PostSharp genannt).

Zudem existiert eine wachsende Zahl von Xamarin-spezifischen Bibliotheken, die entweder einen vereinheitlichten Zugriff auf gerätespezifische Features ermöglichen (wie etwa Xamarin.Mobile) oder ein umfassendes Framework für die Mobil-Entwicklung bereitstellen (z.B. MvvmCross oder MVVM Light).

Ausgereifte Technologie

Xamarin setzt auf der Mono – Plattform auf, einer OpenSource-Implementierung des .NET-Framework, der .NET-Laufzeitumgebung, sowie eines C#-Compilers. Mono wird seit mehr als einer Dekade erfolgreich in verschiedensten Umgebungen von eingebetteten Systemen bis hin zu großen Farmen von Backend-Servern verwendet. Xamarin bringt diese Leistung und Stabilität nun auf die Betriebssysteme Android und iOS, wobei Mono’s ausgefeilte Compiler-Technologie hohe Performanz bei kleinstmöglichem Speicherverbrauch garantiert [4].

Umfangreiche Test-Unterstützung

In der Praxis ist es durch die unüberschaubare und täglich wachsende Zahl von Endgeräten und Betriebssystemversionen kaum möglich, eine mobile App auf allen relevanten Plattformen umfassend zu testen – andererseits verursachen Fehler gerade im Mobil-Bereich sehr hohe Kosten, und deren Behebung erfordert beträchtlichen Aufwand [5].  Damit dieser Herausforderung in der App-Entwicklung besser begegnet werden kann, unterhält Xamarin die sog. Xamarin Test Cloud. Dies ist im Wesentlichen einen Pool von Hunderten von mobilen Endgeräten [6], auf denen automatisierte Tests ausgeführt werden können.

Mobile Cross-Platform - Entwicklung mit Xamarin (I)




Referenzen und Anmerkungen

[1] Tatsächlich sind mit Xamarin erstellte iOS – Apps technisch nicht von mit Apple’s hauseigenen Entwicklungswerkzeugen erstellten zu unterscheiden.
[2] Ab Version VS 2010. Für die Entwicklung auf Windows-Systemen.
[3] Für Windows und Mac.
[4] Bei rechenintensiven Aufgaben ist die Performanz von Xamarin-Apps vergleichbar mit denen ihrer nativen Objective-C – bzw. Java – Gegenstücken oder ist ihr sogar teilweise überlegen. Vgl. z.B. hier.
[5] Zum Einen ziehen Fehler negative Bewertungen in den diversen App-Stores nach sich (die natürlich auch bestehen bleiben, wenn der ursächliche Fehler schon lange behoben ist). Zum Anderen ist eine Korrektur sehr aufwändig, da immer der komplette Deployment-Prozess durchlaufen werden muss.
[6] Zum Zeitpunkt dieser Niederschrift waren es genau 1341. Die ausführliche Liste der Geräte bzw. OS-Versionen findet sich hier.