Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Platform Xamarin terdiri dari banyak elemen yang memungkinkan Anda mengembangkan aplikasi untuk iOS dan Android:
- Bahasa C# - Memungkinkan Anda menggunakan sintaks yang familier dan fitur canggih seperti Generik, LINQ, dan Pustaka Tugas Paralel.
- Kerangka kerja Mono .NET – Menyediakan implementasi lintas platform dari fitur ekstensif dalam kerangka kerja .NET Microsoft.
- Compiler – Tergantung pada platform, menghasilkan aplikasi asli (misalnya, iOS) atau aplikasi dan runtime .NET terintegrasi (misalnya, Android). Pengkompilasi juga melakukan banyak pengoptimalan untuk penyebaran seluler seperti menautkan kode yang tidak digunakan.
- Alat IDE – Visual Studio di Mac dan Windows memungkinkan Anda membuat, membangun, dan menyebarkan proyek Xamarin.
Selain itu, karena bahasa yang mendasar adalah C# dengan kerangka kerja .NET, proyek dapat disusun untuk berbagi kode yang juga dapat disebarkan ke Windows Telepon.
Di bawah Kerudung
Meskipun Xamarin memungkinkan Anda menulis aplikasi di C#, dan berbagi kode yang sama di beberapa platform, implementasi aktual pada setiap sistem berbeda.
Kompilasi
Sumber C# masuk ke aplikasi asli dengan cara yang berbeda di setiap platform:
- iOS – C# dikompilasi ke bahasa assembly ARM. Kerangka kerja .NET disertakan, dengan kelas yang tidak digunakan dilucuti selama penautan untuk mengurangi ukuran aplikasi. Apple tidak mengizinkan pembuatan kode runtime pada iOS, sehingga beberapa fitur bahasa tidak tersedia (lihat Batasan Xamarin.iOS ).
- Android – C# dikompilasi ke IL dan dikemas dengan MonoVM + JIT'ing. Kelas yang tidak digunakan dalam kerangka kerja dilucuti selama penautan. Aplikasi berjalan berdampingan dengan Java/ART (runtime Android) dan berinteraksi dengan jenis asli melalui JNI (lihat Xamarin.Android Limitations ).
- Windows – C# dikompilasi ke IL dan dijalankan oleh runtime bawaan, dan tidak memerlukan alat Xamarin. Merancang aplikasi Windows mengikuti panduan Xamarin memudahkan penggunaan kembali kode di iOS dan Android. Platform Windows Universal juga memiliki opsi .NET Native, yang berperilaku mirip dengan kompilasi AOT Xamarin.iOS.
Dokumentasi linker untuk Xamarin.iOS dan Xamarin.Android memberikan informasi lebih lanjut tentang bagian proses kompilasi ini.
Runtime 'kompilasi' – menghasilkan kode secara dinamis dengan System.Reflection.Emit
- harus dihindari.
Kernel Apple mencegah pembuatan kode dinamis pada perangkat iOS, oleh karena itu memancarkan kode saat terbang tidak akan berfungsi di Xamarin.iOS. Demikian juga, fitur Dynamic Language Runtime tidak dapat digunakan dengan alat Xamarin.
Beberapa fitur refleksi berfungsi (misalnya, MonoTouch.Dialog menggunakannya untuk API Refleksi), tetapi bukan pembuatan kode.
Akses SDK Platform
Xamarin membuat fitur yang disediakan oleh SDK khusus platform mudah diakses dengan sintaks C# yang familier:
- iOS – Xamarin.iOS mengekspos kerangka kerja CocoaTouch SDK Apple sebagai namespace yang dapat Anda referensikan dari C#. Misalnya kerangka kerja UIKit yang berisi semua kontrol antarmuka pengguna dapat disertakan dengan pernyataan sederhana
using UIKit;
. - Android – Xamarin.Android mengekspos Android SDK Google sebagai namespace, sehingga Anda dapat mereferensikan bagian mana pun dari SDK yang didukung dengan pernyataan penggunaan, seperti
using Android.Views;
untuk mengakses kontrol antarmuka pengguna. - Windows – Aplikasi Windows dibuat menggunakan Visual Studio di Windows. Jenis proyek termasuk Formulir Windows, WPF, WinRT, dan Platform Windows Universal (UWP).
Integrasi Tanpa Hambatan untuk Pengembang
Keindahan Xamarin adalah bahwa meskipun perbedaan di bawah tenda, Xamarin.iOS, dan Xamarin.Android (ditambah dengan SDK Windows Microsoft) menawarkan pengalaman yang mulus untuk menulis kode C# yang dapat digunakan kembali di ketiga platform.
Logika bisnis, penggunaan database, akses jaringan, dan fungsi umum lainnya dapat ditulis sekali dan digunakan kembali di setiap platform, menyediakan fondasi untuk antarmuka pengguna khusus platform yang terlihat dan berfungsi sebagai aplikasi asli.
Ketersediaan Lingkungan Pengembangan Terpadu (IDE)
Pengembangan Xamarin dapat dilakukan di Visual Studio di Mac atau Windows. IDE yang Anda pilih akan ditentukan oleh platform yang ingin Anda targetkan.
Karena aplikasi Windows hanya dapat dikembangkan di Windows, untuk membangun iOS, Android, dan Windows memerlukan Visual Studio untuk Windows. Namun dimungkinkan untuk berbagi proyek dan file antara komputer Windows dan Mac, sehingga aplikasi iOS dan Android dapat dibangun di Mac dan kode bersama nantinya dapat ditambahkan ke proyek Windows.
Persyaratan pengembangan untuk setiap platform dibahas secara lebih rinci dalam panduan Persyaratan .
iOS
Mengembangkan aplikasi iOS memerlukan komputer Mac, menjalankan macOS. Anda juga dapat menggunakan Visual Studio untuk menulis dan menyebarkan aplikasi iOS dengan Xamarin di Visual Studio. Namun, Mac masih diperlukan untuk tujuan build dan lisensi.
IDE Xcode Apple harus diinstal untuk menyediakan pengkompilasi dan simulator untuk pengujian. Anda dapat menguji di perangkat Anda sendiri secara gratis, tetapi untuk membangun aplikasi untuk distribusi (misalnya, App Store) Anda harus bergabung dengan Program Pengembang Apple ($ 99 USD per tahun). Setiap kali Anda mengirimkan atau memperbarui aplikasi, aplikasi harus ditinjau dan disetujui oleh Apple sebelum tersedia untuk diunduh pelanggan.
Kode ditulis dengan VISUAL Studio IDE dan tata letak layar dapat dibangun secara terprogram atau diedit dengan Xcode di Mac.
Lihat Panduan Penginstalan Xamarin.iOS untuk petunjuk terperinci tentang menyiapkan.
Android
Pengembangan aplikasi Android mengharuskan SDK Java dan Android diinstal. SDK menyediakan pengkompilasi, emulator, dan alat lain yang diperlukan untuk membangun, menyebarkan, dan menguji. Alat Java, Google Android SDK, dan Xamarin semuanya dapat diinstal dan dijalankan di Windows dan macOS. Konfigurasi berikut disarankan:
- Windows 10 dengan Visual Studio 2019
- macOS Mojave (10.11+) dengan Visual Studio 2019 untuk Mac
Xamarin menyediakan alat penginstal terpadu yang akan mengonfigurasi sistem Anda dengan alat Java, Android, dan Xamarin prasyarat (termasuk perancang visual untuk tata letak layar). Lihat Panduan Penginstalan Xamarin.Android untuk petunjuk terperinci.
Anda dapat membangun dan menguji aplikasi di perangkat nyata tanpa lisensi apa pun dari Google, namun untuk mendistribusikan aplikasi Anda melalui toko (seperti Google Play, Amazon, atau Barnes & Noble) biaya pendaftaran dapat dibayarkan kepada operator. Google Play akan memublikasikan aplikasi Anda secara instan, sementara toko lain memiliki proses persetujuan yang mirip dengan Apple.
Windows
Aplikasi Windows (WinForms, WPF, atau UWP) dibangun dengan Visual Studio. Mereka tidak menggunakan Xamarin secara langsung. Namun, kode C# dapat dibagikan di Windows, iOS, dan Android. Kunjungi Pusat Dev Microsoft untuk mempelajari tentang alat yang diperlukan untuk pengembangan Windows.
Membuat Antarmuka Pengguna (UI)
Manfaat utama menggunakan Xamarin adalah antarmuka pengguna aplikasi menggunakan kontrol asli pada setiap platform, membuat aplikasi yang tidak dapat dibedakan dari aplikasi yang ditulis di Objective-C atau Java (untuk iOS dan Android masing-masing).
Saat membuat layar di aplikasi, Anda dapat menjabarkan kontrol dalam kode atau membuat layar lengkap menggunakan alat desain yang tersedia untuk setiap platform.
Membuat Kontrol Secara Terprogram
Setiap platform memungkinkan kontrol antarmuka pengguna ditambahkan ke layar menggunakan kode. Ini bisa memakan waktu karena mungkin sulit untuk memvisualisasikan desain jadi ketika koordinat piksel pengodean keras untuk posisi dan ukuran kontrol.
Kontrol pembuatan secara terprogram memang memiliki manfaat, terutama pada iOS untuk membangun tampilan yang mengubah ukuran atau merender secara berbeda di seluruh ukuran layar i Telepon dan iPad.
Visual Designer
Setiap platform memiliki metode yang berbeda untuk menata layar secara visual:
- iOS – Papan cerita berisi beberapa Tampilan dan Kontrol, dan dapat diakses di . File papan cerita yang disertakan dalam proyek Anda.
- Android – Xamarin menyediakan desainer UI seret dan letakkan Android untuk Visual Studio.
- Windows – Microsoft menyediakan desainer antarmuka pengguna seret dan letakkan di Visual Studio dan Blend. Tata letak layar disimpan sebagai . File XAML.
Cuplikan layar ini menunjukkan perancang layar visual yang tersedia di setiap platform:
Dalam semua kasus, elemen yang Anda buat secara visual dapat dirujuk dalam kode Anda.
Pertimbangan Antarmuka Pengguna
Manfaat utama menggunakan Xamarin untuk membangun aplikasi lintas platform adalah mereka dapat memanfaatkan toolkit UI asli untuk menyajikan antarmuka yang akrab bagi pengguna. UI juga akan berkinerja secepat aplikasi asli lainnya.
Beberapa metafora UI bekerja di beberapa platform (misalnya, ketiga platform menggunakan kontrol daftar gulir yang sama) tetapi agar aplikasi Anda 'merasa' benar UI harus memanfaatkan elemen antarmuka pengguna khusus platform jika sesuai. Contoh metafora UI khusus platform meliputi:
- iOS – navigasi hierarkis dengan tombol soft back, tab di bagian bawah layar.
- Android – tombol kembali perangkat keras/perangkat lunak sistem, menu tindakan, tab di bagian atas layar.
- Windows – Aplikasi Windows dapat berjalan di desktop, tablet (seperti Microsoft Surface), dan ponsel. Perangkat Windows 10 mungkin memiliki tombol kembali perangkat keras dan petak peta langsung, misalnya.
Disarankan agar Anda membaca panduan desain yang relevan dengan platform yang Anda targetkan:
- iOS – Pedoman Antarmuka Manusia Apple
- Android – Panduan Antarmuka Pengguna Google
- Windows – Panduan Desain Pengalaman Pengguna untuk Windows
Pustaka dan Penggunaan Kembali Kode
Platform Xamarin memungkinkan penggunaan kembali kode C# yang ada di semua platform dan integrasi pustaka yang ditulis secara asli untuk setiap platform.
Sumber dan Pustaka C#
Karena produk Xamarin menggunakan C# dan kerangka kerja .NET, banyak kode sumber yang ada (baik proyek sumber terbuka maupun internal) dapat digunakan kembali dalam proyek Xamarin.iOS atau Xamarin.Android. Seringkali sumbernya hanya dapat ditambahkan ke solusi Xamarin dan itu akan segera berfungsi. Jika fitur .NET framework yang tidak didukung telah digunakan, beberapa tweak mungkin diperlukan.
Contoh sumber C# yang dapat digunakan di Xamarin.iOS atau Xamarin.Android meliputi: SQLite-NET, NewtonSoft.JSON, dan SharpZipLib.
Objective-C Pengikatan + Proyek Pengikatan
Xamarin menyediakan alat yang disebut btouch yang membantu membuat pengikatan yang memungkinkan Objective-C pustaka digunakan dalam proyek Xamarin.iOS. Lihat dokumentasi Jenis Pengikatan Objective-C untuk detail tentang bagaimana hal ini dilakukan.
Contoh pustaka yang dapat digunakan di Xamarin.iOS meliputi: Pemindaian Objective-C kode batang RedLaser, Google Analytics, dan integrasi PayPal. Pengikatan Xamarin.iOS sumber terbuka tersedia di GitHub.
.jar Pengikatan + Proyek Pengikatan
Xamarin mendukung penggunaan pustaka Java yang ada di Xamarin.Android. Lihat dokumentasi Mengikat Pustaka Java untuk detail tentang cara menggunakan . File JAR dari Xamarin.Android.
Pengikatan Xamarin.Android sumber terbuka tersedia di GitHub.
C melalui PInvoke
Teknologi "Platform Invoke" (P/Invoke) memungkinkan kode terkelola (C#) untuk memanggil metode di pustaka asli serta dukungan untuk pustaka asli untuk memanggil kembali ke kode terkelola.
Misalnya, pustaka SQLite-NET menggunakan pernyataan seperti ini:
[DllImport("sqlite3", EntryPoint = "sqlite3_open", CallingConvention=CallingConvention.Cdecl)]
public static extern Result Open (string filename, out IntPtr db);
Ini mengikat implementasi SQLite bahasa C asli di iOS dan Android. Pengembang yang terbiasa dengan C API yang ada dapat membuat sekumpulan kelas C# untuk memetakan ke API asli dan menggunakan kode platform yang ada. Ada dokumentasi untuk menautkan pustaka asli di Xamarin.iOS, prinsip serupa berlaku untuk Xamarin.Android.
C++ melalui CppSharp
Miguel menjelaskan CXXI (sekarang disebut CppSharp) di blognya. Alternatif untuk mengikat ke pustaka C++ secara langsung adalah membuat pembungkus C dan mengikatnya melalui P/Invoke.