Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mvvmcross platforma özgü kodu nasıl işliyor


Mvvmcross platforma özgü kodu nasıl işliyor


MVVMCross, uygulama mantığını iki ana parçaya ayırarak platforma özgü kodu verimli bir şekilde işlemek için tasarlanmıştır: temel bir proje ve platforma özgü projeler. Temel proje, tipik olarak bir .NET Standart Kütüphanesi, platforma özgü hizmetler için iş mantığını, görünüm modellerini, modelleri ve arayüzleri içerir. Bu, Android, iOS ve Windows gibi farklı platformlarda maksimum kod paylaşımına izin verir.

platforma özgü projeler

Platforma özgü her proje (ör. Xamarin.android, xamarin.ios) kullanıcı arayüzünü ve platforma özgü hizmetlerin uygulanmasını içerir. Bu projeler, kurulum sınıfını kullanarak MVVMCross çerçevesinin başlatılmasından ve platforma özgü hizmetleri kaydetmekten sorumludur. Kurulum sınıfı, MVVMCross için bir bootstrapper görevi görür ve geliştiricilerin her platform için çerçevenin davranışını özelleştirmelerine olanak tanır.

Kontrol (IOC) ve bağımlılık enjeksiyonunun tersine çevrilmesi

MVVMCross, uygulama genelindeki bağımlılıkları yönetmek için bir kontrol (IOC) kapsayıcısını kullanır. Bu, platforma özgü hizmetlerin çekirdek projenin mantığına kaydedilmesini ve enjekte edilmesini sağlar. Örneğin, bir uygulamanın GPS Konum Hizmetlerine erişmesi gerekiyorsa, GPS hizmeti platforma özgü kurulum sınıfına kaydedilebilir ve daha sonra View modellerine veya temel projenin diğer bölümlerine enjekte edilebilir.

Platform davranışını özelleştirme

Geliştiriciler, kurulum sınıfındaki yöntemleri geçersiz kılarak platforma özgü davranışı özelleştirebilir. Örneğin, Android'de, Android'e özgü hizmetleri kaydetmek veya Android'e özgü yaşam döngüsü olaylarını işlemek için `mvxandroidsetup 'yöntemlerini geçersiz kılabilirsiniz. Benzer şekilde, iOS'ta iOS'a özgü başlatma ve hizmet kaydını işlemek için `mvxiossetup 'kullanırsınız.

Sunucuları Görüntüle

MVVMCross ayrıca, her platformda görünümlerin nasıl sunulduğuna karar vermekten sorumlu olan görünüm sunumcuları da sağlar. Bu, platformun kurallarına bağlı olarak görünümleri modal olarak veya navigasyon yığınının bir parçası olarak gösterme gibi kullanıcı arayüzü sunum mantığının özelleştirilmesine izin verir.

Eklentiler ve Uzantılar

MVVMCross, geliştiricilerin yerelleştirme, sensörler ve daha fazlası gibi ortak işlevler için üçüncü taraf eklentilerini kolayca entegre etmelerini sağlayan bir eklenti çerçevesi sunar. Bu eklentiler, birden fazla platformda kullanılabilir ve platforma özgü kod ihtiyacını daha da azaltır.

Özetle, MVVMCross, paylaşılan mantığı platforma özgü uygulamalardan ayırmak için yapılandırılmış bir yaklaşım sağlayarak platforma özgü kodu işler. Platform hizmetlerini yönetmek için IOC ve bağımlılık enjeksiyonunu kullanır, kurulum sınıfı aracılığıyla özelleştirmeye izin verir ve platformlar arasında işlevselliği genişletmek için eklentileri destekler.

Alıntılar:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-ing-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-sauses-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-pplications-using-the-mvmcross-pramework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-ton-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/adved/customizing-using-app-and-setup