Saat membandingkan penggunaan MVVMCross dengan Xamarin.Forms dan Xamarin asli, beberapa perbedaan utama muncul, terutama dalam hal fleksibilitas UI, berbagi kode, dan pendekatan pengembangan.
fleksibilitas dan kontrol UI
- Xamarin.Forms: Kerangka kerja ini menyediakan lapisan UI bersama di seluruh platform, yang menyederhanakan pengembangan dengan memungkinkan Anda untuk menulis kode UI sekali dan menggunakannya di beberapa platform. Namun, UI bersama ini dapat membatasi kustomisasi untuk fitur-fitur khusus platform, yang membutuhkan renderer khusus untuk elemen UI yang lebih maju [7] [9]. MVVMCross dapat digunakan dengan Xamarin.Forms untuk mengelola logika bisnis dan navigasi, tetapi UI tetap distandarisasi di seluruh platform [1] [10].
- Xamarin asli: Saat menggunakan Xamarin asli dengan MVVMCross, Anda memiliki kontrol penuh atas UI untuk setiap platform. Ini memungkinkan implementasi UI khusus platform, memaksimalkan tampilan dan nuansa asli dari setiap platform. Meskipun pendekatan ini membutuhkan lebih banyak upaya untuk mengembangkan lapisan UI terpisah untuk iOS dan Android, ia menawarkan fleksibilitas dan kustomisasi yang lebih besar [7] [9].
berbagi kode dan penggunaan kembali
- xamarin.forms: dengan xamarin.forms, Anda dapat berbagi tidak hanya logika bisnis (melalui mvvmcross) tetapi juga kode UI di seluruh platform. Ini menyederhanakan pengembangan dan mengurangi jumlah kode yang perlu Anda pertahankan. Namun, UI terbatas pada serangkaian elemen umum yang bekerja di semua platform [4] [10].
- Xamarin Native: Dalam pengaturan Xamarin asli dengan MVVMCross, Anda dapat berbagi logika bisnis (ViewModels) di seluruh platform, tetapi Anda harus mengimplementasikan UI secara terpisah untuk setiap platform. Pendekatan ini memungkinkan lebih banyak lagi kode penggunaan kembali di lapisan presentasi dan logika UI saat menggunakan MVVMCross, tetapi masih membutuhkan pengembangan UI spesifik platform [9].
pendekatan pengembangan
- Xamarin.Forms: Mengembangkan dengan Xamarin.Forms dan MVVMCross sering lebih disukai oleh pengembang tanpa pengalaman seluler yang luas, karena menyederhanakan pengembangan UI lintas platform. Kerangka kerja ini menangani banyak kompleksitas yang mendasarinya, yang memungkinkan pengembang untuk fokus pada logika bersama dan UI [4] [10].
-Xamarin asli: Pengembangan Xamarin asli dengan MVVMCross biasanya disukai oleh pengembang yang menginginkan kontrol berbutir halus atas UI dan nyaman dengan pengembangan spesifik platform. Pendekatan ini membutuhkan lebih banyak keahlian dalam pengembangan iOS dan android asli tetapi menawarkan fleksibilitas yang lebih besar dalam desain dan implementasi UI [7] [9].
Navigasi dan Binding
- Xamarin.Forms dengan MVVMCross: Navigasi di Xamarin.Forms dengan MVVMCross dikelola pada tingkat ViewModel, memungkinkan pemisahan kekhawatiran yang bersih. MVVMCROSS memberikan peningkatan kemampuan pengikatan, seperti nilai fallback, meskipun tidak memiliki beberapa fitur seperti properti sumber yang ditemukan di standar Xamarin.Forms [2] [10].
- Xamarin asli dengan MVVMCROSS: Dalam proyek Xamarin asli, MVVMCross menangani navigasi dan pemasangan tampilan/viewmodel, memungkinkan untuk arsitektur MVVM yang konsisten di seluruh platform. Pengaturan ini memungkinkan pengembang untuk memanfaatkan pola navigasi khusus platform sambil mempertahankan lapisan logika bisnis bersama [3] [9].
Singkatnya, sementara kedua pendekatan dapat memanfaatkan MVVMCross untuk arsitektur MVVM, Xamarin.Forms menawarkan lapisan UI bersama dengan kontrol yang lebih sedikit atas fitur UI spesifik platform, sedangkan asli Xamarin memberikan kontrol penuh atas kustomisasi UI tetapi membutuhkan lebih banyak upaya pengembangan untuk implementasi UI yang terpisah.
Kutipan:[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx