MVVMCross adalah kerangka kerja populer untuk membangun aplikasi lintas platform menggunakan pola Model-View-ViewModel (MVVM). Meskipun menawarkan banyak manfaat, seperti pengikatan data dan injeksi ketergantungan, ada beberapa tantangan yang terkait dengan penggunaannya.
Cacat dalam komponen kerangka kerja
Salah satu tantangan utama dengan MVVMCross adalah adanya cacat dalam beberapa komponennya, terutama yang terkait dengan pandangan Android dan iOS yang mendukung pengikatan data. Cacat ini dapat menyebabkan masalah dengan UI dan membutuhkan upaya debugging tambahan. Karena MVVMCross adalah sumber terbuka, pengguna dapat menyumbangkan perbaikan, tetapi ini mungkin tidak selalu mudah bagi pengembang tanpa pengetahuan luas tentang internal kerangka kerja [3].
Kecepatan startup ###
Aplikasi MVVMCross sering mengalami waktu startup yang lebih lambat dibandingkan dengan kerangka kerja lainnya. Ini sebagian besar disebabkan oleh mekanisme berbasis refleksi yang digunakan selama inisialisasi, yang melekat pada arsitektur kerangka kerja. Meskipun kelambatan ini juga umum di aplikasi Xamarin secara umum, ini bisa menjadi kelemahan bagi pengguna yang mengharapkan peluncuran aplikasi cepat [3].
Meningkatkan rasa sakit
Meningkatkan versi MVVMCross dapat menjadi tantangan karena perubahan signifikan dalam penamaan konvensi dan perilaku. Dokumentasi sering tertinggal di balik pembaruan ini, yang mengarah pada kesulitan dalam menemukan solusi untuk masalah baru. Ini menghasilkan proses peningkatan yang panjang dan terkadang membuat frustrasi [3].
Kualitas dokumentasi ###
Kualitas dokumentasi MVVMCross adalah tantangan lain. Ini sering mengandung kesalahan ejaan, tidak memiliki bahan referensi yang komprehensif, dan termasuk tautan yang rusak. Pengembang sering harus mempelajari kode sumber kerangka kerja untuk menemukan informasi yang akurat, yang dapat memakan waktu dan membutuhkan pemahaman yang baik tentang arsitektur kerangka kerja [3].
Sampel yang sudah ketinggalan zaman
MVVMCross menyediakan repositori proyek sampel, tetapi banyak dari sampel ini sudah ketinggalan zaman dan tidak kompatibel dengan versi terbaru dari kerangka kerja. Ini menyulitkan pengembang baru untuk memulai atau bagi pengembang yang ada untuk beradaptasi dengan perubahan dalam kerangka kerja. Hanya beberapa sampel yang dipertahankan secara aktif, yang membatasi kegunaannya untuk belajar dan pemecahan masalah [3].
Keterbatasan Mengikat Data
Sementara MVVMCross mendukung pengikatan data, mode pengikatan tertentu, seperti pengikatan satu kali, lebih jarang digunakan dan mungkin tidak cocok untuk semua skenario. Mode ini tidak secara aktif memantau perubahan dari ViewModel, yang dapat menyebabkan data yang sudah ketinggalan zaman dalam tampilan jika tidak dikelola dengan benar [1].
Navigasi dan masalah siklus hidup
Menavigasi antara viewmodels dan mengelola siklus hidup mereka bisa menjadi rumit, terutama ketika berhadapan dengan perilaku spesifik platform seperti Tombstoning di Android. MVVMCross menyediakan metode siklus hidup untuk membantu mengelola skenario ini, tetapi menguasai mereka membutuhkan pemahaman yang baik tentang kerangka kerja dan spesifik platform yang mendasarinya [7].
Pembalikan Kontrol dan Layanan Layanan
Sementara pola locator layanan bawaan MVVMCross dan dukungan inversi kontrol (IOC) adalah fitur yang kuat, mereka membutuhkan pengaturan dan manajemen yang cermat. Mendaftarkan layanan dan penyelesaian dependensi dapat menjadi rumit jika tidak diatur dengan benar, terutama dalam aplikasi yang lebih besar [3] [6].
Singkatnya, sementara MVVMCross menawarkan banyak manfaat untuk pengembangan lintas platform, ini menghadirkan beberapa tantangan terkait dengan cacat, kinerja, dokumentasi, dan kompleksitas. Mengatasi tantangan ini membutuhkan pemahaman yang mendalam tentang kerangka kerja dan teknologi yang mendasarinya.
Kutipan:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://wojosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-to-try-to-use-behaviours-and-storyboards-in-a-u-mu