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.

.NET MAUI supported platforms.

.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 untuk mengimplementasikan logika aplikasi dan tata letak UI sebanyak mungkin dalam satu basis kode.

Siapa .NET MAUI adalah untuk

.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 menyatukan Android, iOS, macOS, dan Windows API ke dalam satu API yang memungkinkan pengalaman pengembang menulis-sekali run-di mana saja, sekaligus menyediakan akses mendalam ke setiap aspek dari setiap platform asli.

.NET 6 atau yang lebih besar menyediakan serangkaian kerangka kerja khusus platform untuk membuat aplikasi: pustaka .NET Android, .NET iOS, .NET macOS, dan Windows UI 3 (WinUI 3). Kerangka kerja ini semuanya memiliki akses ke .NET Base Class Library (BCL) yang sama. Pustaka ini mengabstraksi detail platform yang mendasar jauh dari kode Anda. BCL bergantung pada runtime bahasa umum .NET untuk menyediakan lingkungan eksekusi untuk kode Anda. Untuk Android, iOS, dan macOS, lingkungan diimplementasikan oleh Mono, implementasi runtime .NET. Di Windows, .NET CoreCLR 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 Android, .NET iOS, .NET macOS, 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:

.NET MAUI architecture diagram.

Dalam aplikasi .NET MAUI, Anda menulis kode yang terutama berinteraksi dengan .NET MAUI API (1). .NET MAUI 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 dari C# ke dalam 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 Pustaka UI Windows.

Catatan

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 mendesain halaman.
  • Beberapa jenis halaman untuk membuat jenis navigasi yang kaya, seperti laci.
  • Dukungan untuk pengikat 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 multi-penargetan untuk menargetkan Android, iOS, macOS, dan Windows. Untuk informasi selengkapnya, lihat Proyek tunggal .NET MAUI.
  • .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 dari 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 menggunakan multi-penargetan dan penggunaan proyek gaya SDK. Untuk informasi selengkapnya tentang proyek tunggal .NET MAUI, lihat proyek tunggal .NET MAUI.

Isi ulang panas

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

.NET MAUI juga menyertakan dukungan untuk reload panas XAML, yang memungkinkan Anda menyimpan file XAML dan melihat perubahan yang tercermin dalam aplikasi yang sedang berjalan tanpa kompilasi 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.