Bagikan melalui


Apa itu .NET MAUI?

.NET Multi-platform App UI (.NET MAUI) adalah kerangka kerja lintas platform untuk membuat aplikasi seluler dan desktop asli dengan C# dan XAML.

Dengan menggunakan .NET MAUI, Anda dapat mengembangkan aplikasi yang dapat berjalan di Android, iOS, macOS, dan Windows dari satu basis kode bersama.

Platform yang didukung oleh .NET MAUI.

.NET MAUI adalah sumber terbuka dan merupakan evolusi Xamarin.Forms, diperluas dari skenario seluler ke desktop, dengan kontrol UI dibangun kembali dari bawah ke atas untuk performa dan ekstensibilitas. Jika sebelumnya Anda telah menggunakan Xamarin.Forms untuk membangun antarmuka pengguna lintas platform, Anda akan melihat banyak kesamaan dengan .NET MAUI. Namun, ada juga beberapa perbedaan. Dengan menggunakan .NET MAUI, Anda dapat membuat aplikasi multi-platform menggunakan satu proyek, tetapi Anda dapat menambahkan kode sumber dan sumber daya khusus platform jika perlu. Salah satu tujuan utama .NET MAUI adalah memungkinkan Anda menerapkan logika aplikasi dan tata letak UI sebanyak mungkin dalam satu basis kode.

Untuk siapa .NET MAUI

.NET MAUI adalah untuk pengembang yang ingin:

  • Tulis aplikasi lintas platform di XAML dan C#, dari satu basis kode bersama di Visual Studio.
  • Bagikan tata letak dan desain UI di seluruh platform.
  • Bagikan kode, pengujian, dan logika bisnis di seluruh platform.

Cara kerja .NET MAUI

.NET MAUI menyaring API Android, iOS, macOS, dan Windows ke dalam satu API yang memungkinkan pengalaman pengembang write-once run-anywhere, sekaligus memberikan akses mendalam ke setiap aspek dari setiap platform asli.

.NET 6 atau yang lebih besar menyediakan serangkaian kerangka kerja khusus platform untuk membuat aplikasi: .NET untuk Android, .NET untuk iOS, .NET untuk Mac Catalyst, dan pustaka Windows UI 3 (WinUI 3). Kerangka kerja ini semuanya memiliki akses ke .NET Base Class Library (BCL) yang sama. Perpustakaan ini menyembunyikan detail dari platform yang mendasarinya, menjauhkan detail tersebut dari kode Anda. BCL tergantung pada runtime .NET untuk menyediakan lingkungan eksekusi untuk kode Anda. Untuk Android, iOS, dan macOS, lingkungan tersebut dijalankan oleh Mono, yang merupakan implementasi dari runtime .NET. Di Windows, .NET Core Common Language Runtime (CLR) menyediakan lingkungan eksekusi.

Meskipun BCL memungkinkan aplikasi yang berjalan di berbagai platform untuk berbagi logika bisnis umum, berbagai platform memiliki cara yang berbeda untuk menentukan antarmuka pengguna untuk aplikasi, dan mereka menyediakan berbagai model untuk menentukan bagaimana elemen antarmuka pengguna berkomunikasi dan beroperasi. Anda dapat membuat UI untuk setiap platform secara terpisah menggunakan kerangka kerja khusus platform yang sesuai (.NET untuk Android, .NET untuk iOS, .NET untuk Mac Catalyst, atau WinUI 3), tetapi pendekatan ini kemudian mengharuskan Anda mempertahankan basis kode untuk setiap keluarga perangkat individu.

.NET MAUI menyediakan satu kerangka kerja untuk membangun UI untuk aplikasi seluler dan desktop. Diagram berikut menunjukkan tampilan tingkat tinggi arsitektur aplikasi MAUI .NET:

arsitektur diagram .NET MAUI.

Dalam aplikasi .NET MAUI, Anda menulis kode yang terutama berinteraksi dengan kontrol .NET MAUI dan lapisan API (1). Lapisan ini kemudian langsung mengonsumsi API platform asli (3). Selain itu, kode aplikasi dapat langsung menjalankan API platform (2), jika diperlukan.

Aplikasi .NET MAUI dapat ditulis di PC atau Mac, dan dikompilasi ke dalam paket aplikasi asli:

  • Aplikasi Android yang dibuat menggunakan .NET MAUI dikompilasi dari C# ke dalam bahasa perantara (IL) yang kemudian just-in-time (JIT) dikompilasi ke rakitan asli saat aplikasi diluncurkan.
  • Aplikasi iOS yang dibuat menggunakan .NET MAUI sepenuhnya dikompilasi sepenuhnya di awal waktu (AOT) dari C# menjadi kode rakitan ARM asli.
  • Aplikasi macOS yang dibuat menggunakan .NET MAUI menggunakan Mac Catalyst, solusi dari Apple yang membawa aplikasi iOS Anda yang dibangun dengan UIKit ke desktop, dan menambahnya dengan Api AppKit dan platform tambahan sesuai kebutuhan.
  • Aplikasi Windows yang dibuat menggunakan .NET MAUI menggunakan pustaka Windows UI 3 (WinUI 3) untuk membuat aplikasi asli yang menargetkan desktop Windows. Untuk informasi selengkapnya tentang WinUI 3, lihat Perpustakaan Windows UI.

Nota

Membangun app untuk iOS dan macOS memerlukan Mac.

Apa yang disediakan .NET MAUI

.NET MAUI menyediakan kumpulan kontrol yang dapat digunakan untuk menampilkan data, memulai tindakan, menunjukkan aktivitas, menampilkan koleksi, memilih data, dan banyak lagi. Selain kumpulan kontrol, .NET MAUI juga menyediakan:

  • Mesin tata letak yang rumit untuk merancang halaman.
  • Berbagai tipe halaman untuk membuat jenis navigasi yang kaya fitur, seperti laci.
  • Dukungan untuk pengikatan data, untuk pola pengembangan yang lebih elegan dan dapat dipertahankan.
  • Kemampuan untuk menyesuaikan handler untuk meningkatkan cara elemen UI disajikan.
  • API lintas platform untuk mengakses fitur perangkat asli. API ini memungkinkan aplikasi mengakses fitur perangkat seperti GPS, akselerometer, serta status baterai dan jaringan. Untuk informasi selengkapnya, lihat api lintas platform untuk fitur perangkat.
  • Fungsionalitas grafis lintas platform, yang menyediakan kanvas gambar yang mendukung menggambar dan melukis bentuk dan gambar, pengoperasian komposit, dan transformasi objek grafis.
  • Sistem proyek tunggal yang menggunakan penargetan ganda untuk menargetkan Android, iOS, macOS, dan Windows. Untuk informasi selengkapnya, lihat .NET MAUI proyek tunggal.
  • .NET hot reload, sehingga Anda dapat memodifikasi XAML dan kode sumber terkelola saat aplikasi berjalan, lalu mengamati hasil modifikasi Anda tanpa membangun kembali aplikasi. Untuk informasi selengkapnya, lihat .NET hot reload.

API lintas platform untuk fitur perangkat

.NET MAUI menyediakan API lintas platform untuk fitur perangkat asli. Contoh fungsionalitas yang disediakan oleh .NET MAUI untuk mengakses fitur perangkat meliputi:

  • Akses ke sensor, seperti akselerometer, kompas, dan giroskop pada perangkat.
  • Kemampuan untuk memeriksa status konektivitas jaringan perangkat, dan mendeteksi perubahan.
  • Berikan informasi tentang perangkat tempat aplikasi berjalan.
  • Salin dan tempel teks ke clipboard sistem, di antara aplikasi.
  • Pilih satu atau beberapa file dari perangkat.
  • Simpan data dengan aman sebagai pasangan kunci/nilai.
  • Gunakan mesin teks-ke-ucapan bawaan untuk membaca teks di perangkat.
  • Mulai alur autentikasi berbasis browser yang mendengarkan panggilan balik ke URL terdaftar aplikasi tertentu.

Proyek tunggal

Proyek tunggal .NET MAUI mengambil pengalaman pengembangan khusus platform yang biasanya Anda temui saat mengembangkan aplikasi dan mengabstraksikannya menjadi satu proyek bersama yang dapat menargetkan Android, iOS, macOS, dan Windows.

Proyek tunggal .NET MAUI memberikan pengalaman pengembangan lintas platform yang disederhanakan dan konsisten, terlepas dari platform yang ditargetkan. Proyek tunggal .NET MAUI menyediakan fitur-fitur berikut:

  • Satu proyek bersama yang dapat menargetkan Android, iOS, macOS, dan Windows.
  • Pilihan target debug yang disederhanakan untuk menjalankan aplikasi .NET MAUI Anda.
  • File sumber daya bersama dalam proyek tunggal.
  • Manifes aplikasi tunggal yang menentukan judul, id, dan versi aplikasi.
  • Akses ke API dan alat khusus platform jika diperlukan.
  • Satu titik entri aplikasi lintas platform.

Proyek tunggal .NET MAUI diaktifkan melalui penargetan ganda dan penggunaan proyek dengan gaya SDK. Untuk informasi selengkapnya tentang proyek tunggal .NET MAUI, lihat proyek tunggal .NET MAUI.

Muat ulang cepat

.NET MAUI menyertakan dukungan untuk .NET hot reload, yang memungkinkan Anda memodifikasi kode sumber terkelola saat aplikasi berjalan, tanpa perlu menjeda atau memasukkan titik henti secara manual. Kemudian, pengeditan kode Anda dapat diterapkan ke aplikasi yang sedang berjalan tanpa kompilasi ulang.

.NET MAUI juga menyertakan dukungan untuk pemutakhiran cepat XAML, yang memungkinkan Anda menyimpan file XAML dan melihat perubahan yang tercermin dalam aplikasi yang sedang berjalan tanpa perlu mengkompilasi ulang. Selain itu, status navigasi dan data Anda akan dipertahankan, memungkinkan Anda untuk dengan cepat melakukan iterasi pada UI Anda tanpa kehilangan tempat Anda di aplikasi.