Xamarin — was es ist, Plattformen und Entwicklung mit C#

Autor: IT Sectr Veröffentlicht: 2026-05-01 Lesezeit: 9 Min.

Xamarin ist eine Microsoft-Plattform zur Erstellung mobiler Anwendungen in C#, die 2011 angekündigt wurde. Laut Microsoft Xamarin Documentation, 2024 ermöglicht Xamarin das Schreiben von Anwendungen für iOS, Android und Windows mit einer gemeinsamen Codebasis in C# und .NET unter Verwendung der Mono Runtime zur Kompilierung in nativen Code. Seit 2024 wurde Xamarin.Forms durch .NET MAUI ersetzt.

Wichtige Punkte

  • Xamarin — Microsofts mobile Plattform für C#-Entwicklung für iOS, Android und Windows
  • Zwei Ansätze: Xamarin.Forms (gemeinsame UI über XAML) und Xamarin.Native (native Bildschirme getrennt)
  • Mono Runtime kompiliert C# in nativen ARM-Code für iOS und Android
  • XAML — eine deklarative Auszeichnungssprache zur Erstellung von Benutzeroberflächen
  • .NET MAUI — der Nachfolger von Xamarin.Forms, veröffentlicht von Microsoft im Jahr 2022

Was ist Xamarin

Xamarin ist eine auf .NET und Mono basierende Plattform, die die Verwendung von C# zur Erstellung plattformübergreifender mobiler Anwendungen ermöglicht. Das Unternehmen Xamarin wurde 2011 gegründet und 2016 von Microsoft für 400 Millionen US-Dollar übernommen. Nach der Übernahme wurde Xamarin Teil des Visual Studio- und Azure-Ökosystems.

Vor der Übernahme war Xamarin ein kommerzielles Produkt mit einer Enterprise-Lizenz. Microsoft machte es als Teil von Visual Studio Community kostenlos und öffnete auch den Quellcode der Mono Runtime und der SDK-Bindings. Dies führte zu einem Popularitätsschub: Laut einem SlashData-Bericht wurde Xamarin bis 2020 in 15 % der plattformübergreifenden Projekte eingesetzt.

Die Hauptidee von Xamarin besteht darin, den Code in drei Schichten aufzuteilen: gemeinsame Geschäftslogik (C#, .NET Standard), plattformspezifische Projekte (iOS, Android) und eine optionale gemeinsame UI über Xamarin.Forms. Dieser Ansatz ermöglichte die Wiederverwendung von bis zu 75 % des Codes bei gleichzeitigem nativen Zugriff auf die APIs jeder Plattform.

Geschichte und Entwicklung von Xamarin

Die erste Version Xamarin 1.0 wurde 2012 mit Unterstützung nur für iOS veröffentlicht. Die Android-Unterstützung wurde 2013 hinzugefügt. Xamarin.Forms — ein deklaratives UI-Framework — wurde 2014 auf der Evolve-Konferenz vorgestellt. Xamarin 4.0 (2016) enthielt Unterstützung für watchOS und tvOS. Xamarin 5.0 (2019) führte CSS-Stile und Material Design-Designs ein.

Die letzte Hauptversion Xamarin.Forms 5.0 wurde 2021 veröffentlicht. Microsoft kündigte an, dass Xamarin in den Support-Modus übergeht (Ende der Lebensdauer — 1. Mai 2024), und empfahl die Migration zu .NET MAUI (Multi-platform App UI), das Teil von .NET 6+ ist. Xamarin.Forms 5.0 erhält keine neuen Funktionen mehr, sondern nur noch kritische Sicherheitskorrekturen.

Xamarin.Forms vs. Xamarin.Native

Xamarin.Forms ist ein UI-Framework, das die Schnittstelle über einen einheitlichen Satz von Komponenten abstrahiert. XAML-Markup (ContentPage, StackLayout, Label, Button) wird über Renderer auf native Steuerelemente jeder Plattform abgebildet. Label wird auf iOS zu UILabel und auf Android zu TextView. Dieser Ansatz bietet bis zu 95 % gemeinsamen UI-Code.

Xamarin.Native (auch Xamarin.iOS und Xamarin.Android) ist ein Ansatz ohne gemeinsame UI. Der Entwickler erstellt separate Bildschirme für iOS (Interface Builder oder Storyboard) und Android (AXML) mit einem einzigen C#-Backend. Dies bietet vollständige Kontrolle über das Erscheinungsbild jeder Plattform, erhöht jedoch die UI-Code-Duplizierung auf 50–60 %.

Laut der Microsoft Developer Survey 2023 verwendeten 70 % der Xamarin-Projekte Xamarin.Forms, 20 % verwendeten Xamarin.Native mit gemeinsamen Diensten und 10 % verwendeten einen hybriden Ansatz mit benutzerdefinierten Renderern für plattformspezifische Optimierungen.

Xamarin-Architektur

Die Xamarin-Architektur besteht aus zwei Ebenen. Die untere Ebene ist die Mono Runtime, die C# IL (Intermediate Language) auf der Plattform ausführt. Die obere Ebene besteht aus Managed Callable Wrappers (MCW) für iOS und Android Bindings für Android, die den Zugriff auf native APIs aus verwaltetem C#-Code ermöglichen.

Mono Runtime und Plattform-Bindings

Mono ist eine Open-Source-Implementierung des .NET Frameworks. In Xamarin fungiert Mono als Common Language Runtime (CLR), lädt C#-Assemblys und kompiliert sie in Maschinencode. Auf iOS kompiliert Mono Ahead-of-Time (AOT) — in ARM64-Maschinencode, da Apple die JIT-Kompilierung in Benutzeranwendungen verbietet. Auf Android verwendet Mono JIT-Kompilierung mit AOT-Profiling.

iOS-Bindings (Xamarin.iOS) sind C#-Wrapper über die Objective-C-Laufzeit. Jede UIKit-Klasse (UIView, UIViewController) wird durch eine verwaltete Klasse in der Assembly Xamarin.iOS.dll repräsentiert. Objective-C-Selektoren werden über den MessageUI-Mechanismus aufgerufen. Auf Android verwendet Xamarin.Android Android Callable Wrappers (ACW) — eine JNI-Brücke zwischen C# und Java/Kotlin. Kotlin-Bibliotheken werden über die Android Bindings Library gekapselt.

XAML und C# in Xamarin

XAML (eXtensible Application Markup Language) ist eine deklarative Sprache zur Beschreibung der UI. In Xamarin.Forms definiert XAML die Bildschirmstruktur: Seiten (ContentPage), Container (StackLayout, Grid, FlexLayout) und Elemente (Label, Entry, Button, ListView). Der Code-Behind in C# behandelt Ereignisse (Clicked, PropertyChanged) und verwaltet die Datenbindung (Binding, Data Binding).

MVVM-Muster ist die empfohlene Architektur für Xamarin.Forms. Das Modell enthält Daten, das ViewModel implementiert INotifyPropertyChanged und Befehle (ICommand), und die Ansicht (XAML) bindet über BindingContext. Die Implementierung von ICommand über RelayCommand oder Prism DelegateCommand ermöglicht das Testen des ViewModel ohne UI-Abhängigkeiten. Die Prism.Forms-Bibliothek bietet NavigationService, DialogService und Modularität.

Beispiel einer Xamarin.Forms-Anwendung

csharp
using Xamarin.Forms;

namespace XamarinApp
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            
            var label = new Label
            {
                Text = "Hello, Xamarin!",
                FontSize = 24,
                VerticalOptions = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.Center
            };
            
            Content = new StackLayout
            {
                Children = { label }
            };
        }
    }
}

Vor- und Nachteile von Xamarin

Einheitliche C#-Sprache — der Hauptvorteil von Xamarin. C#- und .NET-Entwickler können mobile Anwendungen erstellen, ohne Swift, Kotlin oder Objective-C zu lernen. Geschäftslogik, Netzwerke, Datenbanken (SQLite über ORM), Verschlüsselung und Protokollierung werden einmal geschrieben und auf allen Plattformen wiederverwendet. Dies vereinfacht die Code-Wartung und das Testen.

Zugriff auf native APIs — Xamarin bietet 100%igen Zugriff auf iOS- (Cocoa Touch) und Android-APIs (Android SDK) über Bindings. Wenn eine neue Version von iOS oder Android veröffentlicht wird, veröffentlicht Microsoft innerhalb von 24–48 Stunden aktualisierte Bindings. Für fehlende Bindings (benutzerdefinierte Objective-C- oder Kotlin-Bibliotheken) werden manuell Android Bindings Library oder iOS Binding Library erstellt.

Integration in das Microsoft-Ökosystem — Xamarin unterstützt Visual Studio, Azure DevOps, App Center (CI/CD, Tests, Überwachung) und Enterprise Mobility + Security (Intune, ADAL, MSAL). App Center Analytics und Crashes sammeln Daten von Live-Anwendungen. Visual Studio App Center automatisiert Build, Gerätetests und die Veröffentlichung in App-Stores.

Nachteile von Xamarin sind die Anwendungsgröße — ein Xamarin.Forms-APK mit leerem Bildschirm wiegt 25–35 MB im Vergleich zu 5–8 MB für eine native Android-App. Auch die Kompilierungszeit ist höher: Ein mittelgroßes Projekt wird in 2–5 Minuten erstellt, verglichen mit 30–60 Sekunden in nativem Android Studio. Die Mono Runtime fügt dem endgültigen Binary 15–20 MB hinzu.

Der zweite Nachteil ist die Verzögerung neuer APIs. Neue iOS/Android-Funktionen erscheinen sofort in der nativen Entwicklung, während sie in Xamarin 1–2 Monate nach der Veröffentlichung der Bindings eintreffen. Das iOS 17 SDK (2023) wurde 3 Wochen nach der Veröffentlichung von Xamarin vollständig unterstützt. Für dringende Projekte kann dies kritisch sein. .NET MAUI löst dieses Problem durch direkte Integration mit .NET 8.

KriteriumXamarin.NET MAUI
PlattformeniOS, Android, WindowsiOS, Android, Windows, macOS, Tizen
Basis-FrameworkMono + .NET Standard.NET 6+ (einheitliche BCL)
UI-FrameworkXamarin.Forms.NET MAUI (Nachfolger)
Support-StatusEnde der Lebensdauer seit 1. Mai 2024Aktive Microsoft-Entwicklung
Hot ReloadEingeschränktXAML Hot Reload + C# Reload

Migration zu .NET MAUI

.NET MAUI (Multi-platform App UI) ist die Weiterentwicklung von Xamarin.Forms, die von Microsoft im Jahr 2022 zusammen mit .NET 6 veröffentlicht wurde. MAUI vereint iOS, Android, Windows und macOS in einem einzigen Projekt, ohne separate Projekte für jede Plattform. Im Gegensatz zu Xamarin.Forms verwendet MAUI .NET 6+ BCL anstelle von Mono und .NET Standard.

Microsoft bietet ein Migrationstool — den .NET Upgrade Assistant für Visual Studio. Es analysiert das Xamarin.Forms-Projekt, ersetzt Namespaces (Xamarin.Forms.* -> Microsoft.Maui.*), aktualisiert .csproj-Dateien (SDK-Stil-Format) und migriert Android- und iOS-Einstellungen in eine einheitliche Konfiguration. Nach der Migration kann das Projekt alle neuen .NET 8-Funktionen nutzen: Native AOT, CodeQL für Sicherheit und verbesserte Build-Leistung.

Die wichtigste Änderung ist ein einzelnes Projekt. Während Xamarin.Forms 3 separate Projekte (iOS, Android, .NET Standard) erforderte, verwendet .NET MAUI ein einziges Projekt mit den Ordnern Platforms/iOS, Platforms/Android, Platforms/Windows und Platforms/MacCatalyst. Jede Plattform wird aus gemeinsamem Code mit plattformspezifischen bedingten Direktiven (#if ANDROID, #if IOS) kompiliert.

Für bestehende Codebasen behält .NET MAUI 90 % Abwärtskompatibilität mit Xamarin.Forms. Die API-Kompatibilität umfasst ContentView, ContentPage, Shell, NavigationPage, DependencyService und MessagingCenter. Die wichtigsten Änderungen betrafen Device.StartTimer (ersetzt durch IDispatcher), Platform API (verschoben nach Microsoft.Maui.ApplicationModel) und veraltete Renderer (ersetzt durch Handlers).

Der Migrationsprozess umfasst fünf Schritte. Erstens — Aktualisierung von Xamarin.Forms auf die neueste Version 5.0. Zweitens — Ersetzen von .NET Standard 2.0 durch .NET 6 oder 8. Drittens — Ausführen des Upgrade Assistant zur automatischen Projektkonvertierung. Viertens — Korrektur plattformspezifischen Codes in den Platforms-Ordnern. Fünftens — Testen, insbesondere benutzerdefinierter Renderer und Plattformdienste.

Häufig gestellte Fragen

Was ist Xamarin?

Xamarin ist eine mobile Microsoft-Plattform für C#-Entwicklung für iOS, Android und Windows. Sie verwendet die Mono Runtime zur Kompilierung von gemeinsamem Code und bietet zwei Ansätze: Xamarin.Forms (einheitliche UI über XAML) und Xamarin.Native (plattformeigene Bildschirme). Seit 2024 befindet sich Xamarin im Support-Modus.

Wie unterscheidet sich Xamarin von Flutter?

Xamarin verwendet C# und .NET und rendert über native Steuerelemente (UIKit, View) mittels Bindings. Flutter verwendet Dart und eine eigene Rendering-Engine (Impeller), ohne auf native UI-Komponenten angewiesen zu sein. Flutter bietet ein einheitliches Erscheinungsbild auf allen Plattformen, während Xamarin das native Erscheinungsbild jedes Betriebssystems bietet. Flutter wird von Google unterstützt und hat 46 % gegenüber 15 % bei Xamarin.

Sollte ich 2024 ein neues Projekt mit Xamarin starten?

Nein. Microsoft hat den Support für Xamarin am 1. Mai 2024 eingestellt. Alle neuen Projekte sollten mit .NET MAUI gestartet werden — seinem Nachfolger, der in .NET 8 integriert ist und zusammen mit der .NET-Plattform Updates erhält. Für bestehende Xamarin.Forms-Projekte wird eine Migration innerhalb von 12–18 Monaten empfohlen.

Ist Xamarin.Forms langsamer als native Apps?

Der Unterschied ist für normale Anwendungen vernachlässigbar. Xamarin.Forms fügt aufgrund der Managed-Wrapper-Native-Ebenen 5–10 % Rendering-Overhead hinzu. Probleme treten bei schweren Listen (ListView vs. RecyclerView) und Animationen (Verwendung von Xamarin.Forms ohne Plattform-APIs) auf. Die Verwendung von CollectionView (ersetzt ListView) und nativen Animationen wird empfohlen.

Kann ich Kotlin-Bibliotheken in Xamarin verwenden?

Ja, über die Android Bindings Library. Dieser .NET-Projekttyp kapselt AAR- oder JAR-Archive in C#-Bindings mit automatischer Klassen- und Methodengenerierung. Kotlin-Bibliotheken erfordern zusätzliche Handler für Coroutinen und versiegelte Klassen, die über Metadata.xml in der Binding Library konfiguriert werden.

Zusammenfassung

  • Xamarin — Microsofts Plattform für mobile C#-Entwicklung, basierend auf der Mono Runtime
  • Xamarin.Forms bietet 90–95 % gemeinsamen Code durch XAML-Markup mit nativen Renderern
  • Xamarin.Native bietet vollständige Kontrolle über die UI jeder Plattform auf Kosten separater Bildschirme
  • Nachteile: APK-Größe 25–35 MB, Kompilierungszeit 2–5 Minuten, Verzögerung neuer APIs
  • .NET MAUI — der Nachfolger von Xamarin.Forms mit einem einzigen Projekt, .NET 8 und 5-Plattform-Support
  • Die Migration zu .NET MAUI erfolgt über den Upgrade Assistant in 1–2 Tagen für ein mittleres Projekt
  • Für neue Projekte .NET MAUI verwenden — Xamarin hat im Mai 2024 das Ende seiner Lebensdauer erreicht

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch