Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross ve Xamarin.Forms kullanma arasındaki temel farklar nelerdir?


MVVMCross ve Xamarin.Forms kullanma arasındaki temel farklar nelerdir?


MVVMCross ve Xamarin.Forms, her biri farklı amaçlara hizmet veren ve benzersiz avantajlar sunan platformlar arası mobil uygulama geliştirmede kullanılan iki ayrı teknolojedir.

Xamarin.forms'a Genel Bakış

Xamarin.Forms, Microsoft tarafından geliştirilen geliştiricilerin, kullanıcı arayüzü için paylaşılan bir C# kod tabanı ve XAML kullanarak platformlar arası uygulamalar oluşturmalarını sağlayan bir çerçevedir. Geliştiricilerin bir kez yazmasını ve iOS, Android ve UWP dahil olmak üzere birden fazla platformda çalışmasını sağlar. Xamarin.Forms, platformlar arasında tutarlı bir kullanıcı arayüzü istendiği projeler için idealdir ve UI bileşenleri için birleşik bir API sağlayarak geliştirme sürecini basitleştirir. Bununla birlikte, bu tutarlılık esneklik pahasına gelir, çünkü kullanıcı arayüzü, her bir platformdan ortak unsurların bir alt kümesiyle sınırlıdır, bu da yerel görünüm ve his veya gelişmiş UI özelleştirmesinin sağlanmasında sınırlamalara yol açabilir [4] [7].

MVVMCross'a Genel Bakış

MVVMCross, Xamarin.ios, Xamarin.Android, Xamarin.Forms ve diğer platformları destekleyen platformlar arası bir MVVM (Model-View-ViewModel) çerçevesidir. İş mantığını kullanıcı arayüzünden ayırmaya odaklanır ve geliştiricilerin kodlarının önemli bir bölümünü farklı platformlarda paylaşmalarına olanak tanır. MVVMCross, karmaşık uygulamaların geliştirilmesini kolaylaştıran veri bağlama, navigasyon, kontrolün tersine çevrilmesi ve bağımlılık enjeksiyonu gibi özellikler sağlar. Xamarin.forms'ın aksine, MVVMCross belirli bir UI çerçevesini zorlamıyor; Bunun yerine, geliştiricilerin her platform için kullanıcı arayüzünü nasıl uygulamak istediklerini seçmelerine izin verir ve yerel kullanıcı arayüz deneyimlerine ulaşmada daha fazla esneklik sağlar [7] [10].

Anahtar Farklılıklar

1. UI uygulaması:
- Xamarin.forms: Platformlar arasında paylaşılan bir kullanıcı arayüzü katmanı kullanır, bu da gelişimi basitleştirir, ancak özelleştirme ve yerel görünüm ve hissi sınırlandırabilir.
- MVVMCross: Her platformda yerel kullanıcı arayüzü uygulamasına izin verir veya Xamarin.forms ile paylaşılan kullanıcı arayüzü, platforma özgü kullanıcı arayüzü tasarımlarına ulaşmada daha fazla esneklik sağlar.

2. Kod paylaşımı:
- Her iki çerçeve de kod paylaşımını etkinleştirir, ancak MVVMCross farklı kullanıcı arayüzü uygulamalarına izin verirken iş mantığını (ViewModels) paylaşmaya odaklanır. Xamarin.Forms hem kullanıcı arayüzünü hem de iş mantığını paylaşır.

3. Navigasyon ve veri bağlama:
- MVVMCross, Xamarin.Forms dahil olmak üzere farklı UI çerçevelerinde çalışan sağlam bir gezinme sistemi ve veri bağlama özellikleri sağlar. Xamarin.Forms kendi navigasyon ve veri bağlama mekanizmalarına dayanır.

4. Proje karmaşıklığı:
- Gelişmiş UI özelleştirme veya platforma özgü özellikler gerektiren karmaşık projeler için, MVVMCross esnekliği nedeniyle daha uygun olabilir. Tutarlı bir kullanıcı arayüzü yeterli olduğu daha basit projeler için Xamarin.forms uygulaması daha kolay olabilir.

5. Geliştirme yaklaşımı:
- Xamarin.Forms, birleşik bir geliştirme deneyimi sağladığı için XAML ve .NET'e aşina olan geliştiriciler tarafından genellikle tercih edilir. MVVMCross, iş mantığının kullanıcı arayüzünden ayrılması gereken projeler için faydalıdır ve her platformdaki kullanıcı arayüzü uygulaması üzerinde daha fazla kontrol sağlar.

Özetle, her iki çerçeve de platformlar arası geliştirmeyi desteklerken, Xamarin.forms, kullanıcı arayüzü katmanını platformlar arasında paylaşmaya odaklanırken, MVVMCross iş mantığını paylaşmayı vurgular ve daha esnek UI uygulama seçeneklerine izin verir. Aralarındaki seçim, projenin kullanıcı arayüzü özelleştirme, karmaşıklık ve kod paylaşma stratejisi ile ilgili gereksinimlerine bağlıdır.

Alıntılar:
[1] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[2] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[3] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-wriend
[4] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcrross
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvmcross-framework/
[6] https://canbilgin.wordpress.com/tag/mvmcross/
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] https://www.reddit.com/r/csharp/comments/a9mph1/mvc_or_mvm_for_xamarin/
[9] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/
[10] https://www.suneco.nl/blogs/boost-Your-xamarin-native-sjects-with-mvvmcross/