Xamarin — apa itu, platform dan pengembangan dengan C#

Penulis: IT Sectr Diterbitkan: 2026-05-01 Waktu membaca: 9 mnt

Xamarin — adalah platform Microsoft untuk membuat aplikasi mobile dalam bahasa C#, yang diumumkan pada tahun 2011. Menurut Microsoft Xamarin Documentation, 2024, Xamarin memungkinkan penulisan aplikasi untuk iOS, Android dan Windows dengan basis kode bersama dalam C# dan .NET, menggunakan Mono Runtime untuk kompilasi ke kode native. Sejak 2024, Xamarin.Forms telah digantikan oleh .NET MAUI.

Poin utama

  • Xamarin — platform mobile Microsoft untuk pengembangan dengan C# di iOS, Android dan Windows
  • Dua pendekatan: Xamarin.Forms (UI bersama melalui XAML) dan Xamarin.Native (layar native terpisah)
  • Mono Runtime mengkompilasi C# ke kode native ARM untuk iOS dan Android
  • XAML — bahasa markup deklaratif untuk membangun antarmuka pengguna
  • .NET MAUI — penerus Xamarin.Forms, dirilis oleh Microsoft pada tahun 2022

Apa itu Xamarin

Xamarin — adalah platform berbasis .NET dan Mono yang memungkinkan penggunaan C# untuk membuat aplikasi mobile lintas platform. Perusahaan Xamarin didirikan pada tahun 2011 dan diakuisisi oleh Microsoft pada tahun 2016 seharga $400 juta. Setelah akuisisi, Xamarin menjadi bagian dari ekosistem Visual Studio dan Azure.

Sebelum diakuisisi oleh Microsoft, Xamarin adalah produk komersial dengan lisensi Enterprise. Microsoft membuatnya gratis dalam Visual Studio Community, dan juga membuka kode sumber Mono Runtime dan binding SDK. Hal ini menyebabkan peningkatan popularitas: pada tahun 2020, Xamarin digunakan dalam 15% proyek lintas platform, menurut laporan SlashData.

Ide utama Xamarin — pembagian kode menjadi tiga lapisan: logika bisnis bersama (C#, .NET Standard), proyek platform (iOS, Android) dan UI bersama opsional melalui Xamarin.Forms. Pendekatan ini memungkinkan penggunaan ulang hingga 75% kode sambil mempertahankan akses native ke API setiap platform.

Sejarah dan pengembangan Xamarin

Versi pertama Xamarin 1.0 dirilis pada tahun 2012 hanya dengan dukungan iOS. Pada tahun 2013, dukungan Android ditambahkan. Xamarin.Forms — framework UI deklaratif — diperkenalkan pada tahun 2014 di konferensi Evolve. Xamarin 4.0 (2016) menambahkan dukungan watchOS dan tvOS. Xamarin 5.0 (2019) memperkenalkan gaya CSS dan tema Material Design.

Versi utama terakhir Xamarin.Forms 5.0 dirilis pada tahun 2021. Microsoft mengumumkan bahwa Xamarin beralih ke mode dukungan (akhir masa pakai — 1 Mei 2024) dan merekomendasikan migrasi ke .NET MAUI (Multi-platform App UI), yang merupakan bagian dari .NET 6+. Xamarin.Forms 5.0 tidak lagi menerima fitur baru, hanya perbaikan keamanan kritis.

Xamarin.Forms vs Xamarin.Native

Xamarin.Forms — adalah framework UI yang mengabstraksi antarmuka melalui serangkaian elemen terpadu. Markup XAML (ContentPage, StackLayout, Label, Button) dipetakan ke kontrol native setiap platform melalui renderer. Label diterjemahkan menjadi UILabel di iOS dan TextView di Android. Pendekatan ini menyediakan hingga 95% kode UI bersama.

Xamarin.Native (juga Xamarin.iOS dan Xamarin.Android) — adalah pendekatan tanpa UI bersama. Pengembang membuat layar terpisah untuk iOS (Interface Builder atau Storyboard) dan Android (AXML), menggunakan satu backend C#. Ini memberikan kontrol penuh atas tampilan setiap platform, tetapi meningkatkan volume kode UI duplikat hingga 50–60%.

Menurut Microsoft Developer Survey 2023, 70% proyek Xamarin menggunakan Xamarin.Forms, 20% — Xamarin.Native dengan layanan bersama, 10% — pendekatan hibrida dengan renderer kustom untuk optimasi platform.

Arsitektur Xamarin

Arsitektur Xamarin terdiri dari dua tingkat. Tingkat bawah — Mono Runtime, yang menjalankan C# IL (Intermediate Language) di platform. Tingkat atas — Managed Callable Wrappers (MCW) untuk iOS dan Android Bindings untuk Android, yang menyediakan akses ke API native dari kode C# terkelola.

Mono Runtime dan binding platform

Mono — adalah implementasi open-source dari .NET Framework. Di Xamarin, Mono berfungsi sebagai lingkungan eksekusi Common Language Runtime (CLR), memuat rakitan C# dan mengkompilasinya menjadi kode mesin. Di iOS, Mono mengkompilasi Ahead-of-Time (AOT) — menjadi kode mesin ARM64, karena Apple melarang kompilasi JIT di aplikasi pengguna. Di Android, Mono menggunakan kompilasi JIT dengan profiling AOT.

iOS Bindings (Xamarin.iOS) — adalah pembungkus C# di atas runtime Objective-C. Setiap kelas UIKit (UIView, UIViewController) diwakili oleh kelas terkelola dalam rakitan Xamarin.iOS.dll. Selektor Objective-C dipanggil melalui mekanisme MessageUI. Di Android, Xamarin.Android menggunakan Android Callable Wrappers (ACW) — jembatan JNI antara C# dan Java/Kotlin. Pustaka Kotlin dibungkus melalui Android Bindings Library.

XAML dan C# di Xamarin

XAML (eXtensible Application Markup Language) — bahasa deklaratif untuk mendeskripsikan UI. Di Xamarin.Forms, XAML mendefinisikan struktur layar: halaman (ContentPage), wadah (StackLayout, Grid, FlexLayout) dan elemen (Label, Entry, Button, ListView). Kode backend dalam C# menangani peristiwa (Clicked, PropertyChanged) dan mengelola pengikatan data (Binding, Data Binding).

Pola MVVM — arsitektur yang direkomendasikan untuk Xamarin.Forms. Model berisi data, ViewModel mengimplementasikan INotifyPropertyChanged dan perintah (ICommand), View (XAML) terhubung melalui BindingContext. Implementasi ICommand melalui RelayCommand atau Prism DelegateCommand memastikan pengujian ViewModel tanpa ketergantungan UI. Pustaka Prism.Forms menyediakan NavigationService, DialogService dan modularitas.

Contoh aplikasi di 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 }
            };
        }
    }
}

Kelebihan dan kekurangan Xamarin

Bahasa C# tunggal — kelebihan utama Xamarin. Pengembang C# dan .NET dapat membuat aplikasi mobile tanpa mempelajari Swift, Kotlin atau Objective-C. Logika bisnis, kerja jaringan, basis data (SQLite melalui ORM), enkripsi dan pencatatan ditulis sekali dan digunakan kembali di semua platform. Ini menyederhanakan pemeliharaan dan pengujian kode.

Akses ke API native — Xamarin menyediakan akses 100% ke API iOS (Cocoa Touch) dan Android (Android SDK) melalui binding. Saat versi baru iOS atau Android dirilis, Microsoft menerbitkan binding yang diperbarui dalam 24–48 jam. Untuk binding yang hilang (pustaka Objective-C atau Kotlin kustom) dibuat Android Bindings Library atau iOS Binding Library secara manual.

Integrasi dengan ekosistem Microsoft — Xamarin mendukung Visual Studio, Azure DevOps, App Center (CI/CD, pengujian, pemantauan) dan Enterprise Mobility + Security (Intune, ADAL, MSAL). App Center Analytics dan Crashes mengumpulkan data dari aplikasi langsung. Visual Studio App Center mengotomatiskan pembangunan, pengujian pada perangkat dan publikasi ke toko aplikasi.

Kekurangan Xamarin termasuk ukuran aplikasi — APK Xamarin.Forms dengan layar kosong berbobot 25–35 MB dibandingkan 5–8 MB untuk aplikasi Android native. Waktu kompilasi juga lebih tinggi: proyek berukuran sedang dibangun 2–5 menit dibandingkan 30–60 detik di Android Studio native. Mono Runtime menambahkan 15–20 MB ke file biner akhir.

Kekurangan kedua — keterlambatan API baru. Fitur iOS/Android baru muncul segera dalam pengembangan native, tetapi di Xamarin — 1–2 bulan setelah rilis binding. iOS 17 SDK (2023) didukung penuh oleh Xamarin 3 minggu setelah rilis. Untuk proyek mendesak, ini bisa menjadi kritis. .NET MAUI memecahkan masalah ini melalui integrasi langsung dengan .NET 8.

KriteriaXamarin.NET MAUI
PlatformiOS, Android, WindowsiOS, Android, Windows, macOS, Tizen
Framework dasarMono + .NET Standard.NET 6+ (BCL terpadu)
Framework UIXamarin.Forms.NET MAUI (penerus)
Mode dukunganAkhir masa pakai sejak 1 Mei 2024Pengembangan aktif Microsoft
Hot ReloadTerbatasXAML Hot Reload + C# Reload

Migrasi ke .NET MAUI

.NET MAUI (Multi-platform App UI) — adalah evolusi Xamarin.Forms, dirilis oleh Microsoft pada tahun 2022 bersama .NET 6. MAUI menggabungkan iOS, Android, Windows dan macOS menjadi satu proyek tanpa proyek terpisah untuk setiap platform. Tidak seperti Xamarin.Forms, MAUI menggunakan .NET 6+ BCL, bukan Mono dan .NET Standard.

Microsoft menyediakan alat migrasi — .NET Upgrade Assistant untuk Visual Studio. Alat ini menganalisis proyek Xamarin.Forms, mengganti ruang nama (Xamarin.Forms.* -> Microsoft.Maui.*), memperbarui file .csproj (format SDK-style) dan memigrasikan pengaturan Android dan iOS ke konfigurasi tunggal. Setelah migrasi, proyek dapat menggunakan semua kemampuan baru .NET 8: Native AOT, CodeQL untuk keamanan dan kinerja pembangunan yang ditingkatkan.

Perubahan kunci — proyek tunggal. Jika Xamarin.Forms membutuhkan 3 proyek terpisah (iOS, Android, .NET Standard), .NET MAUI menggunakan satu proyek dengan folder Platforms/iOS, Platforms/Android, Platforms/Windows dan Platforms/MacCatalyst. Setiap platform dikompilasi dari kode bersama dengan arahan bersyarat platform (#if ANDROID, #if IOS).

Untuk basis kode yang ada, .NET MAUI menyediakan kompatibilitas mundur 90% dengan Xamarin.Forms. Kompatibilitas API mencakup ContentView, ContentPage, Shell, NavigationPage, DependencyService dan MessagingCenter. Perubahan utama mempengaruhi Device.StartTimer (digantikan oleh IDispatcher), Platform API (dipindahkan ke Microsoft.Maui.ApplicationModel) dan renderer usang (digantikan oleh Handlers).

Proses migrasi mencakup lima langkah. Pertama — memperbarui Xamarin.Forms ke versi terbaru 5.0. Kedua — mengganti .NET Standard 2.0 dengan .NET 6 atau 8. Ketiga — menjalankan Upgrade Assistant untuk konversi otomatis proyek. Keempat — memperbaiki kode platform di folder Platforms. Kelima — pengujian, terutama renderer kustom dan layanan platform.

Pertanyaan yang sering diajukan

Apa itu Xamarin?

Xamarin — adalah platform mobile Microsoft untuk pengembangan dengan C# di iOS, Android dan Windows. Platform ini menggunakan Mono Runtime untuk kompilasi kode bersama dan menawarkan dua pendekatan: Xamarin.Forms (UI terpadu melalui XAML) dan Xamarin.Native (layar native platform). Sejak 2024, Xamarin berada dalam mode dukungan.

Apa perbedaan Xamarin dengan Flutter?

Xamarin menggunakan C# dan .NET, merender melalui kontrol native (UIKit, View), tetapi melalui binding. Flutter menggunakan Dart dan mesin rendering sendiri (Impeller), tidak bergantung pada komponen UI native. Flutter menyediakan tampilan seragam di semua platform, Xamarin — tampilan native setiap sistem operasi. Flutter didukung oleh Google dan memiliki 46% dibandingkan 15% untuk Xamarin.

Apakah layak memulai proyek baru di Xamarin pada tahun 2024?

Tidak. Microsoft telah mengakhiri dukungan untuk Xamarin pada 1 Mei 2024. Semua proyek baru harus dimulai di .NET MAUI — penerusnya, yang terintegrasi dalam .NET 8 dan akan menerima pembaruan bersama platform .NET. Untuk proyek yang ada di Xamarin.Forms, migrasi direkomendasikan dalam 12–18 bulan.

Apakah Xamarin.Forms lebih lambat dari aplikasi native?

Perbedaannya tidak signifikan untuk aplikasi biasa. Xamarin.Forms menambahkan 5–10% overhead rendering karena pembungkus Managed-Wrapper-Native. Masalah muncul pada daftar berat (ListView vs RecyclerView) dan animasi (dengan alat Xamarin.Forms tanpa API platform). Disarankan menggunakan CollectionView (menggantikan ListView) dan animasi native.

Bisakah pustaka Kotlin digunakan di Xamarin?

Ya, melalui Android Bindings Library. Jenis proyek .NET ini membungkus arsip AAR atau JAR ke dalam binding C# dengan generasi kelas dan metode otomatis. Untuk pustaka Kotlin, diperlukan penangan tambahan untuk coroutine dan sealed class, yang dikonfigurasi melalui Metadata.xml di Binding Library.

Ringkasan

  • Xamarin — platform Microsoft untuk pengembangan mobile dengan C#, berbasis Mono Runtime
  • Xamarin.Forms menyediakan 90–95% kode bersama melalui markup XAML dengan renderer native
  • Xamarin.Native memberikan kontrol penuh atas UI setiap platform melalui layar terpisah
  • Kekurangan: ukuran APK 25–35 MB, waktu kompilasi 2–5 menit, keterlambatan API baru
  • .NET MAUI — penerus Xamarin.Forms dengan proyek tunggal, .NET 8 dan dukungan 5 platform
  • Migrasi ke .NET MAUI dilakukan melalui Upgrade Assistant dalam 1–2 hari untuk proyek sedang
  • Untuk proyek baru gunakan .NET MAUI — Xamarin mencapai akhir masa pakai pada Mei 2024

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga