.NET MAUI — apa itu, arsitektur dan pengembangan lintas platform

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

.NET MAUI — adalah framework lintas platform Microsoft untuk membuat aplikasi native dalam C# dan XAML, dirilis pada tahun 2022 bersama .NET 6. Menurut Microsoft .NET MAUI Documentation, 2024, MAUI mendukung iOS, Android, Windows, macOS dan Tizen, menyatukannya dalam satu proyek dengan basis kode bersama. Framework ini adalah penerus langsung Xamarin.Forms.

Poin utama

  • .NET MAUI — penerus Xamarin.Forms, terintegrasi dalam .NET 6+ tanpa SDK terpisah
  • Satu Single Project menggantikan tiga proyek platform terpisah
  • XAML dan C# digunakan untuk membangun UI deklaratif dan logika bisnis
  • Handlers menggantikan renderer Xamarin.Forms yang usang untuk abstraksi platform
  • Dukungan untuk 5 platform: iOS, Android, Windows, macOS, Tizen

Apa itu .NET MAUI

.NET MAUI (Multi-platform App UI) — adalah evolusi Xamarin.Forms, dirancang ulang dari awal untuk .NET 6+. Tidak seperti Xamarin.Forms yang memerlukan proyek terpisah untuk setiap platform, MAUI menggunakan struktur tunggal dengan file .csproj bersama dan folder platform Platforms/iOS, Platforms/Android, Platforms/Windows dan Platforms/MacCatalyst. Rilis stabil pertama MAUI terjadi pada Mei 2022.

Perbedaan utama .NET MAUI dari pendahulunya — integrasi penuh dengan .NET 8 BCL (Base Class Library). Pengembang memiliki akses langsung ke System.Text.Json, System.Net.Http, System.Linq, System.IO dan API lainnya tanpa SDK tambahan. Xamarin.Forms menggunakan .NET Standard 2.0 untuk logika bersama, yang membatasi akses ke kemampuan baru platform .NET.

Menurut Microsoft Build 2024, .NET MAUI digunakan di 40.000+ aplikasi di App Store dan Google Play. Di antara proyek terkenal — UPS Mobile, The Weather Channel dan Siemens Teamcenter. Microsoft secara aktif mengembangkan MAUI dalam kerangka .NET 9.

Sejarah dan asal-usul .NET MAUI

Pengumuman .NET MAUI terjadi di Microsoft Build 2020 sebagai bagian dari strategi unifikasi .NET. Microsoft menyatukan .NET Core, Mono dan .NET Framework ke dalam satu platform .NET 5+. Xamarin.Forms menjadi dasar untuk MAUI, tetapi basis kode ditulis ulang sepenuhnya: API usang dihapus, renderer diganti dengan Handlers, DependencyService diganti dengan container DI.

Versi .NET MAUI 8 (November 2023) menambahkan dukungan Native AOT, performa CollectionView yang ditingkatkan, Blazor Hybrid (menyematkan komponen Blazor ke dalam aplikasi MAUI) dan pemetaan font baru. .NET MAUI 9 (2024) mencakup dukungan C# 12, integrasi yang ditingkatkan dengan WinUI 3 dan macOS Sonoma, serta API Drag & Drop baru untuk semua platform.

Perbedaan .NET MAUI dari Xamarin.Forms

Perbedaan pertama — aplikasi tunggal. Di Xamarin.Forms untuk iOS dan Android diperlukan dua proyek terpisah dalam satu solusi. Di .NET MAUI satu proyek dengan folder platform. Ini menyederhanakan navigasi kode, manajemen dependensi dan pipeline CI/CD. File .csproj menggunakan format SDK-style dengan TargetFrameworks: net8.0-android, net8.0-ios, net8.0-maccatalyst.

Perbedaan kedua — arsitektur rendering melalui Handlers sebagai pengganti renderer. Di Xamarin.Forms setiap elemen (Button, Label) memiliki kelas Renderer sendiri yang membuat kontrol native. Untuk kustomisasi diperlukan Custom Renderer. Di MAUI Handler adalah objek ringan yang memetakan elemen abstrak ke kontrol native dan mendukung Property Mappers untuk memperbarui properti tanpa membuat ulang kontrol.

Perbedaan ketiga — container DI tunggal Microsoft.Extensions.DependencyInjection. Xamarin.Forms menggunakan DependencyService untuk registrasi implementasi platform. MAUI menanamkan DI ke dalam inti framework: layanan didaftarkan di MauiAppBuilder, controller menerima dependensi melalui konstruktor. Ini menyederhanakan pengujian dan mengikuti praktik .NET modern.

Arsitektur .NET MAUI

Arsitektur .NET MAUI didasarkan pada model berlapis. Lapisan bawah — .NET BCL dan Mono Runtime (Android) / CoreCLR (Windows) / NativeAOT (iOS). Lapisan tengah — Microsoft.Maui.dll dengan inti framework: Handlers, Layout, Graphics, Controls. Lapisan atas — aplikasi pengembang dengan halaman XAML, ViewModel dan layanan.

Single Project dan Multi-Targeting

Single Project — adalah fitur arsitektur kunci .NET MAUI. Semua file dibagi menjadi tiga kategori: kode bersama (Shared), kode platform (Platforms) dan sumber daya (Resources). Multi-targeting di .csproj menentukan untuk platform mana aplikasi dibangun. Setiap platform hanya mengkompilasi folder Platforms-nya sendiri dan kode bersama.

Kode platform ditempatkan di folder bersyarat. Platforms/Android berisi MainActivity.cs, MainApplication.cs dan AndroidManifest.xml. Platforms/iOS — AppDelegate.cs, Info.plist dan Entitlements.plist. Platforms/Windows — Package.appxmanifest dan App.xaml. Untuk kompilasi bersyarat dalam kode digunakan direktif #if ANDROID, #if IOS, #if WINDOWS, #if MACCATALYST.

XAML dan MVVM di .NET MAUI

XAML — bahasa markup deklaratif, diwarisi dari Xamarin.Forms dan WPF. Di .NET MAUI XAML digunakan untuk mendeskripsikan halaman (ContentPage), tata letak (VerticalStackLayout, Grid, FlexLayout), elemen (Label, Entry, Button, Image) dan kontrol (CollectionView, CarouselView). XAML dikompilasi ke format BAML pada tahap pembangunan.

Pola MVVM diimplementasikan melalui CommunityToolkit.Mvvm — pustaka sumber terbuka dari Microsoft. Atribut [ObservableProperty] menghasilkan properti INotifyPropertyChanged, [RelayCommand] membuat perintah dari metode. Source Generator CommunityToolkit.Mvvm 8.2 mentransformasi kelas parsial ViewModel, menghasilkan ObservableObject tanpa Reflection. Ini mempercepat Binding sebesar 30% dibandingkan implementasi manual.

Contoh aplikasi di .NET MAUI

csharp
using Microsoft.Maui;
using Microsoft.Maui.Controls;

namespace MauiApp;

public class MainPage : ContentPage
{
    public MainPage()
    {
        Title = "MAUI App";
        
        Content = new VerticalStackLayout
        {
            Spacing = 12,
            Padding = new Thickness(16),
            Children =
            {
                new Label
                {
                    Text = "Hello, .NET MAUI!",
                    FontSize = 24,
                    FontAttributes = FontAttributes.Bold
                },
                new Button
                {
                    Text = "Tekan saya",
                    BackgroundColor = Colors.Blue,
                    TextColor = Colors.White,
                    Command = new Command(async () =>
                        await DisplayAlert("Halo", "Dunia", "OK"))
                }
            }
        };
    }
}

Platform dan dukungan

.NET MAUI mendukung 5 platform: iOS 15.0+, Android 5.0 (API 21)+, Windows 10 1809+, macOS 12.0+ (MacCatalyst) dan Tizen 6.5+. Setiap platform menggunakan set kontrol dan API-nya sendiri. iOS menggunakan UIKit melalui Mac Catalyst, Android — AndroidX melalui Xamarin.Android, Windows — WinUI 3, macOS — AppKit melalui Mac Catalyst.

Di iOS dan Android MAUI menggunakan mekanisme rendering yang sama dengan Xamarin.Forms — kontrol UI native. Namun Handlers menyediakan kustomisasi yang lebih fleksibel. Untuk konfigurasi platform Button di iOS digunakan OnPlatform<Button> dengan PlatformConfiguration.iOS. Untuk Windows MAUI menggunakan WinUI 3 — framework UI modern dari Microsoft dengan dukungan Fluent Design System.

Dukungan macOS ditambahkan melalui Mac Catalyst — teknologi Apple yang menjalankan aplikasi UIKit di Mac. Ini memungkinkan penggunaan kembali 100% kode iOS MAUI untuk versi macOS. Untuk fungsi Mac spesifik (Menu Bar, Touch Bar) MAUI menyediakan API platform melalui Mac Catalyst dan wrapper NSView.

Tizen — platform Samsung untuk Smart TV, smartphone dan jam tangan pintar. Dukungan Tizen di .NET MAUI diimplementasikan melalui Samsung Tizen .NET. Aplikasi MAUI dikompilasi untuk Tizen melalui binding Samsung TizenFX. Namun Tizen bukan platform prioritas Microsoft — pembaruan untuknya muncul dengan keterlambatan 1–2 bulan.

PlatformVersi minimalFramework UIStatus
iOSiOS 15.0UIKit (Mac Catalyst)Stabil
AndroidAPI 21 (5.0)AndroidX / Material 3Stabil
WindowsWin 10 1809WinUI 3 / Fluent DesignStabil
macOSmacOS 12.0AppKit (Mac Catalyst)Stabil
TizenTizen 6.5TizenFX / SamsungTambahan

Keunggulan .NET MAUI

Basis kode tunggal — .NET MAUI mengurangi jumlah duplikasi kode. Satu proyek dalam C# dan XAML dikompilasi untuk 5 platform, menyediakan hingga 95% kode bersama untuk aplikasi dengan UI sederhana. Logika bisnis, layanan, model data dan klien HTTP berada dalam kode bersama. Hanya fitur platform (kamera, geolokasi, biometri) yang memerlukan implementasi terpisah melalui DI.

Performa .NET MAUI lebih tinggi dari Xamarin.Forms. Handlers mengurangi overhead rendering: pengujian Microsoft menunjukkan pengurangan waktu rendering layar sebesar 20–30% dibandingkan Xamarin.Forms 5.0. Native AOT di iOS mengkompilasi kode C# langsung ke instruksi ARM64, menghilangkan kompilasi JIT dan mengurangi waktu startup sebesar 40%.

Blazor Hybrid — kemampuan unik .NET MAUI. BlazorWebView menyematkan komponen Blazor langsung ke dalam aplikasi MAUI. Pengembang antarmuka web dapat menggunakan kembali komponen Blazor (halaman Razor, JS-interop, gaya CSS) di aplikasi seluler. Blazor Hybrid berfungsi di semua 5 platform MAUI tanpa mengubah kode komponen Blazor.

Ekosistem .NET — akses ke ribuan paket NuGet: Entity Framework Core untuk bekerja dengan database, Serilog untuk pencatatan, Polly untuk permintaan HTTP berulang, FluentValidation untuk validasi. CommunityToolkit.Maui menyediakan elemen UI siap pakai: Popup, Toast, Snackbar, SemanticScreenReader untuk aksesibilitas. .NET MAUI terintegrasi dengan Azure, SignalR dan Microsoft Graph SDK.

Alat pengembangan — Visual Studio 2022 dan Rider dari JetBrains. XAML Hot Reload memperbarui UI tanpa memulai ulang aplikasi dalam 1–2 detik. C# Hot Reload (dari .NET 6+) mengkompilasi ulang perubahan metode tanpa memulai ulang proses. Visual Studio Debugger, Profiler dan IntelliCode melengkapi perangkat diagnostik performa dan kualitas kode.

Pertanyaan yang sering diajukan

Apa itu .NET MAUI?

.NET MAUI — adalah framework lintas platform Microsoft untuk membuat aplikasi native dalam C# dan XAML untuk iOS, Android, Windows, macOS dan Tizen. Ini adalah penerus Xamarin.Forms, terintegrasi dalam .NET 6+ dan menggunakan satu proyek (Single Project) daripada proyek terpisah untuk setiap platform.

Apa perbedaan .NET MAUI dengan Xamarin.Forms?

.NET MAUI menggunakan satu proyek, Handlers sebagai pengganti renderer, container DI terintegrasi, Native AOT untuk iOS dan Blazor Hybrid. Xamarin.Forms memerlukan proyek terpisah untuk setiap platform, menggunakan Custom Renderer untuk kustomisasi UI, DependencyService untuk DI dan tidak mendukung Blazor. .NET MAUI adalah bagian dari .NET, Xamarin.Forms adalah SDK terpisah.

Apakah .NET MAUI mendukung macOS?

Ya, .NET MAUI mendukung macOS melalui Mac Catalyst (versi minimal macOS 12.0). Aplikasi iOS di MAUI secara otomatis dikompilasi untuk Mac tanpa perubahan kode. Untuk fungsi Mac native (Menu Bar, Dock, Touch ID) digunakan panggilan platform melalui Mac Catalyst dan wrapper NSView di folder Platforms/MacCatalyst.

Bisakah menggunakan paket Flutter di .NET MAUI?

Tidak, .NET MAUI tidak kompatibel dengan paket Dart/Flutter. MAUI menggunakan ekosistem .NET dan paket NuGet. Untuk fitur platform (kamera, Bluetooth, biometri) digunakan pustaka native melalui Android Bindings (Kotlin/Java) dan iOS Bindings (Objective-C/Swift). CommunityToolkit.Maui menyediakan wrapper siap pakai untuk skenario populer.

Apakah .NET MAUI lebih lambat dari aplikasi native?

Perbedaan performa minimal. .NET MAUI dengan Handlers dan Native AOT di iOS mencapai 95–98% performa aplikasi SwiftUI native. Di Android perbedaan dengan aplikasi Kotlin adalah 3–7% dalam pengujian rendering UI (Microsoft Benchmarks, 2024). Untuk sebagian besar aplikasi bisnis, perbedaan tidak terlihat oleh pengguna.

Kesimpulan

  • .NET MAUI — framework lintas platform Microsoft dalam C# dan XAML, penerus Xamarin.Forms
  • Single Project dengan multi-targeting menggantikan 3 proyek terpisah dengan satu konfigurasi
  • Handlers memberikan rendering lebih cepat daripada renderer Xamarin.Forms
  • Blazor Hybrid memungkinkan penyematan komponen web langsung ke dalam aplikasi seluler
  • 5 platform — iOS 15+, Android 5.0+, Windows 10, macOS 12+, Tizen 6.5+
  • Native AOT di iOS mengurangi waktu startup sebesar 40% dan ukuran file biner
  • Pilih .NET MAUI untuk proyek .NET dengan kebutuhan lintas platform dan akses ke API native

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