Xamarin — co to je, platformy a vývoj v C#

Autor: IT Sectr Publikováno: 2026-05-01 Doba čtení: 9 min

Xamarin — je platforma Microsoftu pro vytváření mobilních aplikací v jazyce C#, oznámená v roce 2011. Podle Microsoft Xamarin Documentation, 2024 umožňuje Xamarin psát aplikace pro iOS, Android a Windows se společnou kódovou základnou v C# a .NET, přičemž používá Mono Runtime pro kompilaci do nativního kódu. Od roku 2024 je Xamarin.Forms nahrazen .NET MAUI.

Hlavní body

  • Xamarin — mobilní platforma Microsoftu pro vývoj v C# na iOS, Android a Windows
  • Dva přístupy: Xamarin.Forms (společné UI přes XAML) a Xamarin.Native (nativní obrazovky zvlášť)
  • Mono Runtime kompiluje C# do nativního ARM kódu pro iOS a Android
  • XAML — deklarativní značkovací jazyk pro vytváření uživatelského rozhraní
  • .NET MAUI — nástupce Xamarin.Forms, vydaný Microsoftem v roce 2022

Co je Xamarin

Xamarin — je platforma založená na .NET a Mono, která umožňuje používat C# pro vytváření multiplatformních mobilních aplikací. Společnost Xamarin byla založena v roce 2011 a koupena Microsoftem v roce 2016 za 400 milionů dolarů. Po koupi se Xamarin stal součástí ekosystému Visual Studio a Azure.

Před koupí Microsoftem byl Xamarin komerčním produktem s licencí Enterprise. Microsoft jej zpřístupnil zdarma v rámci Visual Studio Community a také otevřel zdrojový kód Mono Runtime a SDK vazeb. To vedlo k růstu popularity: do roku 2020 byl Xamarin používán v 15% multiplatformních projektů podle zprávy SlashData.

Hlavní myšlenka Xamarin — rozdělení kódu do tří vrstev: společná obchodní logika (C#, .NET Standard), platformové projekty (iOS, Android) a volitelné společné UI přes Xamarin.Forms. Tento přístup umožňoval znovupoužití až 75% kódu při zachování nativního přístupu k API každé platformy.

Historie a vývoj Xamarin

První verze Xamarin 1.0 byla vydána v roce 2012 pouze s podporou iOS. V roce 2013 byla přidána podpora Android. Xamarin.Forms — deklarativní UI framework — byl představen v roce 2014 na konferenci Evolve. Xamarin 4.0 (2016) přidal podporu watchOS a tvOS. Xamarin 5.0 (2019) zavedl CSS styly a téma Material Design.

Poslední hlavní verze Xamarin.Forms 5.0 byla vydána v roce 2021. Microsoft oznámil, že Xamarin přechází do režimu podpory (konec životnosti — 1. května 2024) a doporučil migraci na .NET MAUI (Multi-platform App UI), který je součástí .NET 6+. Xamarin.Forms 5.0 již nedostává nové funkce, pouze kritické bezpečnostní opravy.

Xamarin.Forms vs Xamarin.Native

Xamarin.Forms — je UI framework, který abstrahuje rozhraní prostřednictvím jednotné sady prvků. Značky XAML (ContentPage, StackLayout, Label, Button) se mapují na nativní ovládací prvky každé platformy přes renderery. Label se překládá na UILabel v iOS a TextView v Android. Tento přístup poskytuje až 95% společného UI kódu.

Xamarin.Native (také Xamarin.iOS a Xamarin.Android) — je přístup bez společného UI. Vývojář vytváří samostatné obrazovky pro iOS (Interface Builder nebo Storyboard) a Android (AXML) s jedním C# backendem. To dává plnou kontrolu nad vzhledem každé platformy, ale zvyšuje objem duplicitního UI kódu na 50–60%.

Podle Microsoft Developer Survey 2023 používalo 70% projektů na Xamarin Xamarin.Forms, 20% — Xamarin.Native se společnými službami, 10% — hybridní přístup s vlastními renderery pro platformové optimalizace.

Architektura Xamarin

Architektura Xamarin se skládá ze dvou úrovní. Spodní úroveň — Mono Runtime, který spouští C# IL (Intermediate Language) na platformě. Horní úroveň — Managed Callable Wrappers (MCW) pro iOS a Android Bindings pro Android, které poskytují přístup k nativním API ze spravovaného kódu C#.

Mono Runtime a platformové vazby

Mono — je open-source implementace .NET Framework. V Xamarin Mono funguje jako běhové prostředí Common Language Runtime (CLR), načítá sestavení C# a kompiluje je do strojového kódu. Na iOS Mono kompiluje Ahead-of-Time (AOT) — do strojového kódu ARM64, protože Apple zakazuje JIT kompilaci v uživatelských aplikacích. Na Android Mono používá JIT kompilaci s AOT profilováním.

iOS Bindings (Xamarin.iOS) — jsou C# obálky nad Objective-C runtime. Každá třída UIKit (UIView, UIViewController) je reprezentována spravovanou třídou v sestavení Xamarin.iOS.dll. Selektory Objective-C jsou volány mechanismem MessageUI. Na Android Xamarin.Android používá Android Callable Wrappers (ACW) — most JNI mezi C# a Java/Kotlin. Knihovny Kotlin jsou zabaleny přes Android Bindings Library.

XAML a C# v Xamarin

XAML (eXtensible Application Markup Language) — deklarativní jazyk pro popis UI. V Xamarin.Forms XAML definuje strukturu obrazovky: stránky (ContentPage), kontejnery (StackLayout, Grid, FlexLayout) a prvky (Label, Entry, Button, ListView). Backendový kód v C# zpracovává události (Clicked, PropertyChanged) a spravuje datové vazby (Binding, Data Binding).

MVVM vzor — doporučená architektura pro Xamarin.Forms. Model obsahuje data, ViewModel implementuje INotifyPropertyChanged a příkazy (ICommand), View (XAML) se propojuje přes BindingContext. Implementace ICommand přes RelayCommand nebo Prism DelegateCommand zajišťuje testování ViewModel bez UI závislostí. Knihovna Prism.Forms poskytuje NavigationService, DialogService a modularitu.

Příklad aplikace v Xamarin.Forms

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 }
            };
        }
    }
}

Výhody a nevýhody Xamarin

Jednotný jazyk C# — hlavní výhoda Xamarin. Vývojáři C# a .NET mohou vytvářet mobilní aplikace bez učení Swift, Kotlin nebo Objective-C. Obchodní logika, práce se sítí, databáze (SQLite přes ORM), šifrování a logování se píší jednou a znovu používají na všech platformách. To zjednodušuje údržbu a testování kódu.

Přístup k nativním API — Xamarin poskytuje 100% přístup k API iOS (Cocoa Touch) a Android (Android SDK) přes vazby. Při vydání nové verze iOS nebo Android Microsoft zveřejňuje aktualizované vazby do 24–48 hodin. Pro chybějící vazby (vlastní knihovny Objective-C nebo Kotlin) se ručně vytváří Android Bindings Library nebo iOS Binding Library.

Integrace s ekosystémem Microsoft — Xamarin podporuje Visual Studio, Azure DevOps, App Center (CI/CD, testování, monitorování) a Enterprise Mobility + Security (Intune, ADAL, MSAL). App Center Analytics a Crashes sbírají data z živých aplikací. Visual Studio App Center automatizuje sestavení, testování na zařízení a publikování do obchodů s aplikacemi.

Nevýhody Xamarin zahrnují velikost aplikace — APK Xamarin.Forms s prázdnou obrazovkou váží 25–35 MB oproti 5–8 MB u nativní Android aplikace. Doba kompilace je také vyšší: projekt střední velikosti se sestaví za 2–5 minut oproti 30–60 sekundám v nativním Android Studio. Mono Runtime přidává 15–20 MB k výslednému binárnímu souboru.

Druhou nevýhodou je zpoždění nových API. Nové funkce iOS/Android se objevují okamžitě v nativním vývoji, ale v Xamarin — 1–2 měsíce po vydání vazeb. iOS 17 SDK (2023) byl plně podporován Xamarinem 3 týdny po vydání. Pro naléhavé projekty to může být kritické. .NET MAUI řeší tento problém přímou integrací s .NET 8.

KritériumXamarin.NET MAUI
PlatformyiOS, Android, WindowsiOS, Android, Windows, macOS, Tizen
Základní frameworkMono + .NET Standard.NET 6+ (jednotné BCL)
UI frameworkXamarin.Forms.NET MAUI (nástupce)
Režim podporyKonec životnosti od 1. května 2024Aktivní vývoj Microsoftu
Hot ReloadOmezenýXAML Hot Reload + C# Reload

Přechod na .NET MAUI

.NET MAUI (Multi-platform App UI) — je evoluce Xamarin.Forms, vydaná Microsoftem v roce 2022 spolu s .NET 6. MAUI spojuje iOS, Android, Windows a macOS do jednoho projektu bez samostatných projektů pro každou platformu. Na rozdíl od Xamarin.Forms používá MAUI .NET 6+ BCL, nikoli Mono a .NET Standard.

Microsoft poskytuje nástroj pro migraci — .NET Upgrade Assistant pro Visual Studio. Analyzuje projekt Xamarin.Forms, nahrazuje jmenné prostory (Xamarin.Forms.* -> Microsoft.Maui.*), aktualizuje soubory .csproj (formát SDK-style) a migruje nastavení Android a iOS do jedné konfigurace. Po migraci může projekt využívat všechny nové možnosti .NET 8: Native AOT, CodeQL pro bezpečnost a vylepšený výkon sestavení.

Klíčová změna — jeden projekt. Zatímco Xamarin.Forms vyžadoval 3 samostatné projekty (iOS, Android, .NET Standard), .NET MAUI používá jeden projekt se složkami Platforms/iOS, Platforms/Android, Platforms/Windows a Platforms/MacCatalyst. Každá platforma se kompiluje ze společného kódu s platformovými podmíněnými direktivami (#if ANDROID, #if IOS).

Pro existující kódové základny poskytuje .NET MAUI 90% zpětnou kompatibilitu s Xamarin.Forms. Kompatibilita API zahrnuje ContentView, ContentPage, Shell, NavigationPage, DependencyService a MessagingCenter. Hlavní změny se dotkly Device.StartTimer (nahrazen IDispatcher), Platform API (přesunuto do Microsoft.Maui.ApplicationModel) a zastaralých rendererů (nahrazeny Handlers).

Proces migrace zahrnuje pět kroků. První — aktualizace Xamarin.Forms na nejnovější verzi 5.0. Druhý — nahrazení .NET Standard 2.0 za .NET 6 nebo 8. Třetí — spuštění Upgrade Assistant pro automatickou konverzi projektu. Čtvrtý — oprava platformového kódu ve složkách Platforms. Pátý — testování, zejména vlastních rendererů a platformových služeb.

Často kladené otázky

Co je Xamarin?

Xamarin — je mobilní platforma Microsoftu pro vývoj v C# na iOS, Android a Windows. Používá Mono Runtime pro kompilaci společného kódu a nabízí dva přístupy: Xamarin.Forms (jednotné UI přes XAML) a Xamarin.Native (nativní obrazovky platformy). Od roku 2024 je Xamarin v režimu podpory.

Čím se Xamarin liší od Flutter?

Xamarin používá C# a .NET, renderuje přes nativní ovládací prvky (UIKit, View), ale přes vazby. Flutter používá Dart a vlastní renderovací engine (Impeller), nespoléhá se na nativní UI komponenty. Flutter poskytuje jednotný vzhled na všech platformách, Xamarin — nativní vzhled každého operačního systému. Flutter je podporován Googlem a má 46% oproti 15% u Xamarin.

Vyplatí se začít nový projekt na Xamarin v roce 2024?

Ne. Microsoft ukončil podporu Xamarin 1. května 2024. Všechny nové projekty by měly být spouštěny na .NET MAUI — jeho nástupci, který je vestavěn do .NET 8 a bude dostávat aktualizace spolu s platformou .NET. Pro stávající projekty na Xamarin.Forms se doporučuje migrace do 12–18 měsíců.

Je Xamarin.Forms pomalejší než nativní aplikace?

Rozdíl je zanedbatelný pro běžné aplikace. Xamarin.Forms přidává 5–10% režii renderování kvůli obálkám Managed-Wrapper-Native. Problémy vznikají u těžkých seznamů (ListView vs RecyclerView) a animací (prostředky Xamarin.Forms bez platformových API). Doporučuje se používat CollectionView (nahradil ListView) a nativní animace.

Lze v Xamarin používat knihovny Kotlin?

Ano, přes Android Bindings Library. Tento typ projektu .NET zabaluje archiv AAR nebo JAR do C# vazeb s automatickým generováním tříd a metod. Pro knihovny Kotlin jsou vyžadovány další obslužné rutiny pro korutiny a sealed class, které se konfigurují přes Metadata.xml v Binding Library.

Shrnutí

  • Xamarin — platforma Microsoftu pro mobilní vývoj v C#, založená na Mono Runtime
  • Xamarin.Forms poskytuje 90–95% společného kódu přes značky XAML s nativními renderery
  • Xamarin.Native dává plnou kontrolu nad UI každé platformy pomocí samostatných obrazovek
  • Nevýhody: velikost APK 25–35 MB, doba kompilace 2–5 minut, zpoždění nových API
  • .NET MAUI — nástupce Xamarin.Forms s jedním projektem, .NET 8 a podporou 5 platforem
  • Migrace na .NET MAUI pomocí Upgrade Assistant za 1–2 dny pro střední projekt
  • Pro nové projekty používejte .NET MAUI — Xamarin dosáhl konce životnosti v květnu 2024

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také