MVVMCross, sunum katmanlarının ve UI mantığının farklı platformlarda paylaşılmasını sağlayarak Xamarin yerel projelerini geliştiren güçlü bir platformlar arası MVVM çerçevesidir. Xamarin yerel projelerinde mvvmcross için bazı yaygın kullanım durumları:
1. Çapraz Platform Kod Yeniden Kullanım **
MVVMCross, geliştiricilerin taşınabilir bir sınıf kütüphanesine (PCL) ViewModels ve iş mantığını yerleştirerek kod yeniden kullanımını en üst düzeye çıkarmasına olanak tanır. Bu PCL, Xamarin.Android ve Xamarin.ios gibi platforma özgü birçok projeye atıfta bulunabilir, bu da UI'nin her platform için özelleştirilebilmesi için çekirdek mantığın tutarlı kalmasını sağlar [1] [2].2. MVVM Patern Uygulaması **
MVVMCross, kullanıcı arayüzü ve iş mantığı arasındaki endişelerin net bir şekilde ayrılmasını sağlamak için faydalı olan model-view-viewmodel (MVVM) modelinin uygulanmasını kolaylaştırır. Bu model, gevşek birleştirilmiş uygulamaların oluşturulmasına yardımcı olarak test edilmelerini ve sürdürülmesini kolaylaştırır [3] [5].3. Veri Bağlama ve Gezinme **
MVVMCross, görünümlerin ViewModels'e sorunsuz bir şekilde bağlanmasına izin veren sağlam veri bağlama özellikleri sağlar. Bu özellik, uygulamanın kullanıcı arayüzünün esnekliğini artırarak çeşitli bağlama modlarını ve dönüştürücüleri destekler. Ek olarak, MVVMCross, uygulama içindeki farklı görünümler arasında hareket etmeyi basitleştiren bir gezinme sistemi içerir [2] [5].4. Bağımlılık Enjeksiyonu ve Eklentileri **
MVVMCross, geliştiricilerin PCL'den platforma özgü hizmetleri kaydetmesine ve çözmesine izin veren bir bağımlılık enjeksiyonu (DI) konteyneri sunar. Bu özellik, kodu çoğaltmadan platforma özgü işlevsellikleri entegre etmek için çok önemlidir. Ayrıca, MVVMCross, veritabanı işlemleri, ağ bağlantısı ve daha fazlası gibi ortak işlevler için çok çeşitli eklentileri destekler, bu da NUGET paketleri aracılığıyla projelere kolayca entegre edilebilir [1] [3].5. Platforma özgü kullanıcı arayüzü özelleştirme **
Xamarin.Forms platformlar arasında UI özelleştirmesini kısıtlarken, Xamarin Native ile MVVMCross, geliştiricilerin platforma özgü UI'ler oluşturmasına izin verir. Bu, özellikle bir uygulama her platformda yerel bir görünüm ve his gerektirdiğinde kullanışlıdır. MVVMCross, farklı kullanıcı arayüzü uygulamalarına rağmen, temel iş mantığının paylaşılmasını ve tutarlı olmasını sağlar [1] [4].6. Birim Test ve Geliştirme Verimliliği **
İş mantığını bir PCL'ye ayırarak MVVMCross, uygulamanın temel mantığı için birim testleri yazmayı kolaylaştırır. Bu ayrılık da gelişimi hızlandırır, çünkü iş mantığındaki değişiklikler platforma özgü kullanıcı arayüzünde değişiklik gerektirmez [5].Özetle, MVVMCross, Xamarin yerel projeleri için çok yönlü bir araçtır ve her platform için UI'leri özelleştirme esnekliğini korurken platformlar arası geliştirmeye yapılandırılmış bir yaklaşım sunar. MVVM desen desteği, veri bağlama, bağımlılık enjeksiyonu ve kapsamlı eklenti ekosistemi gibi özellikleri, karmaşık, platformlar arası uygulamalar için ideal bir seçim haline getirir.
Alıntılar:[1] https://www.suneco.nl/blogs/boost-Your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-ing-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-wriend
[7] https://stackoverflow.com/questions/32220007/what-does-mvmcross-do-that-xamarin-doesnt-allready
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcrross