Was ist Xamarin?

Screenshots of example Xamarin application in iOS and Android

Bei Xamarin handelt es sich um eine Open-Source-Plattform für das Erstellen moderner und leistungsfähiger Anwendungen für iOS, Android und Windows mit .NET. Xamarin ist eine Abstraktionsebene, die die Kommunikation zwischen freigegebenem Code und dem zugrunde liegenden Plattformcode verwaltet. Xamarin wird in einer verwalteten Umgebung ausgeführt, die Vorteile wie Speicherbelegung und Garbage Collection bietet.

Mithilfe von Xamarin können Entwickler durchschnittlich 90 Prozent Ihrer Anwendung plattformübergreifend freigeben. Dies ermöglicht es Entwicklern, die gesamte Geschäftslogik in einer einzelnen Programmiersprache zu schreiben (oder vorhandenen Anwendungscode wiederzuverwenden), und dennoch native Leistung, natives Aussehen und eine native Servicequalität auf jeder Plattform bieten zu können.

Xamarin-Anwendungen können auf einem Computer oder einem Mac geschrieben werden und werden in native Anwendungspakete kompiliert, z. B. als APK-Datei unter Android oder als IPA-Datei unter iOS.

Hinweis

Für die Kompilierung und die Bereitstellung von Anwendungen für iOS ist momentan ein macOS-Computer erforderlich. Weitere Informationen zu Entwicklungsanforderungen finden Sie unter macOS-Anforderungen.

Zielgruppe von Xamarin

Xamarin eignet sich für Entwickler mit den folgenden Zielen:

  • Plattformübergreifendes Freigeben von Code, Test- und Geschäftslogik
  • Schreiben von plattformübergreifenden Anwendungen in C# mit Visual Studio

Funktionsweise von Xamarin

Diagram of Xamarin architecture

In diesem Diagramm sehen Sie die Gesamtarchitektur einer plattformübergreifenden Xamarin-Anwendung. Mithilfe von Xamarin können Sie native Benutzeroberflächen für jede Plattform erstellen und eine Geschäftslogik in C# schreiben, die plattformübergreifend freigegeben wird. In den meisten Fällen können 80 Prozent des Anwendungscodes mithilfe von Xamarin freigegeben werden.

Xamarin baut auf .NET auf. Diese Software verarbeitet automatisch Aufgaben wie Speicherbelegung, Garbage Collection und Interoperabilität mit zugrunde liegenden Plattformen.

Weitere Informationen zu plattformspezifischen Architekturen finden Sie unter Xamarin.Android und Xamarin.iOS.

Hinzugefügte Features

Xamarin kombiniert die Funktionen nativer Plattformen und fügt u. a. Folgendes hinzu:

  1. Vollständige Bindung für die zugrundeliegenden SDKs: Xamarin enthält Bindungen für fast alle zugrunde liegenden Plattform-SDKs unter iOS und Android. Zusätzlich dazu sind diese Bindungen stark typisiert. So bieten sie einfach Navigation, lassen sich leicht nutzen und sorgen während der Entwicklung für eine stabile Typüberprüfung zur Kompilierzeit und während der Entwicklung. Stark typisierte Bindungen führen zu weniger Runtimefehlern und zu Anwendungen mit höherer Qualität.
  2. Objective-C, Java, C und C++ Interop: Xamarin stellt Funktionen zum direkten Aufrufen von Bibliotheken mit Objective-C, Java, C und C++ bereit, sodass Sie verschiedensten Drittanbietercode verwenden können. Dadurch können Sie die vorhandenen iOS- und Android-Bibliotheken nutzen, die in Objective-C, Java oder C/C++ geschrieben sind. Darüber hinaus bietet Xamarin Bindungsprojekte an, mit denen Sie native Objective-C- und Java-Bibliotheken binden können, indem Sie eine deklarative Syntax verwenden.
  3. Moderne Sprachkonstrukte: Xamarin-Anwendungen werden in C# geschrieben, einer modernen Sprache, die gegenüber Objective-C und Java bedeutende Verbesserungen beinhaltet, z. B. dynamische Sprachfeatures, funktionale Konstrukte wie Lambdas und LINQ, Funktionen für die parallele Programmierung und Generics.
  4. Solide Basisklassenbibliothek (Base Class Library, BCL): Xamarin-Anwendungen verwenden die .NET-BCL, eine große Sammlung von Klassen mit umfassenden und optimierten Features, z B. Unterstützung für leistungsstarkes XML, Datenbanken, Serialisierung, E/A, Zeichenfolgen und Netzwerke. Vorhandener C#-Code kann zur Verwendung in einer App kompiliert werden. So erhalten Sie Zugriff auf Tausende Bibliotheken, die Ihnen zusätzlich zur BCL Funktionen bieten.
  5. Moderne integrierte Entwicklungsumgebung (Integrated Development Environment, IDE): Xamarin verwendet Visual Studio, eine moderne IDE, die Features beinhaltet wie die automatische Codevervollständigung, ein durchdachtes Projekt- und Projektmappenverwaltungssystem, eine umfassende Projektvorlagenbibliothek und integrierte Quellcodeverwaltung.
  6. Unterstützung für plattformübergreifende Entwicklung von mobilen Anwendungen: Xamarin bietet hochmoderne, plattformübergreifende Unterstützung für die drei wichtigsten Plattformen: iOS, Android und Windows. Anwendungen lassen sich so schreiben, dass bis zu 90 % des Codes freigegeben werden können. In Xamarin.Essentials steht außerdem eine vereinheitlichte API zur Verfügung, mit der auf allen drei Plattformen auf häufig verwendete Ressourcen zugegriffen werden kann. Freigegebener Code kann sowohl die Kosten für die Entwicklung als auch die Zeit bis zur Markteinführung für Entwickler mobiler Anwendungen reduzieren.

Xamarin.Android

Xamarin.Android architecture diagram

Xamarin.Android-Anwendungen kompilieren von C# zu einer Zwischensprache (Intermediate Language, IL) , die dann bei Anwendungsstart Just-In-Time (JIT) in eine native Assembly kompiliert wird. Xamarin.Android-Anwendungen werden in der Mono-Ausführungsumgebung ausgeführt, parallel mit der Android Runtime-VM (ART). Xamarin bietet Android.*- und Java.*-Namespaces für .NET-Bindungen. Die Mono-Ausführungsumgebung führt Aufrufe in diese Namespaces über verwaltete Callable Wrapper (Managed Callable Wrappers, MCWs) aus und stellt ART Callable Wrappers für Android (Android Callable Wrappers, ACW) zur Verfügung, sodass in beiden Umgebungen Code voneinander aufgerufen werden kann.

Weitere Informationen finden Sie unter Architektur.

Xamarin.iOS

Xamarin.iOS architecture diagram

Xamarin.iOS-Anwendungen werden vollständig von C# zu nativem ARM-Assemblycode Ahead-of-time (AOT) -kompiliert. Xamarin verwendet Selektoren, um Objective-C für verwalteten C#-Code verfügbar zu machen und Registrars, um verwalteten C#-Code für Objective-C verfügbar zu machen. Selektoren und Registrars werden zusammen auch als „Bindungen“ bezeichnet und ermöglichen die Kommunikation zwischen Objective-C und C#.

Weitere Informationen finden Sie unter Xamarin.iOS-Architektur.

Xamarin.Essentials

Bei Xamarin.Essentials handelt es sich um eine Bibliothek, die plattformübergreifende APIs für native Gerätefeatures bietet. Wie Xamarin selbst ist Xamarin.Essentials eine Abstraktion, die den Zugriff auf die native Funktionalität vereinfacht. Zu den von Xamarin.Essentials zur Verfügung gestellten Funktionen gehören die folgenden:

  • Geräteinformationen
  • Dateisystem
  • Beschleunigungsmesser
  • Wählhilfe
  • Text-zu-Sprache
  • Bildschirmsperre

Weitere Informationen finden Sie unter Xamarin.Essentials.

Xamarin.Forms

Bei Xamarin.Forms handelt es sich um ein Open-Source-Benutzeroberflächenframework. Mithilfe von Xamarin.Forms können Entwickler Xamarin.iOS-, Xamarin.Android- und Windows-Anwendungen aus einer einzigen freigegebenen CodeBase erstellen. Xamarin.Forms ermöglicht Entwicklern die Erstellung von Benutzeroberflächen in XAML mit CodeBehind in C#. Diese Benutzeroberflächen werden als leistungsfähige native Steuerelemente für jede Plattform gerendert. Zu den von Xamarin.Forms zur Verfügung gestellten Features gehören die folgenden:

  • XAML als Programmiersprache für Benutzeroberflächen
  • Datenbindung
  • Gesten
  • Effekte
  • Format

Weitere Informationen finden Sie unter Xamarin.Forms.

Erste Schritte

Die folgenden Anleitungen unterstützen Sie bei der Erstellung Ihrer ersten App mithilfe von Xamarin:

Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.