Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak MVVMCROSS obsługuje kod specyficzny dla platformy


Jak MVVMCROSS obsługuje kod specyficzny dla platformy


MVVMCROSS został zaprojektowany do efektywnego obsługi kodu specyficznego dla platformy poprzez rozdzielenie logiki aplikacji na dwie główne części: podstawowe projekty i projekty specyficzne dla platformy. Podstawowy projekt, zazwyczaj standardowa biblioteka .NET, zawiera logikę biznesową, modele, modele i interfejsy dla usług specyficznych dla platformy. Pozwala to na maksymalne udostępnianie kodów na różnych platformach, takich jak Android, iOS i Windows.

Projekty specyficzne dla platformy

Każdy projekt specyficzny dla platformy (np. Xamarin.android, xamarin.ios) zawiera interfejs użytkownika i implementację usług specyficznych dla platformy. Projekty te są odpowiedzialne za inicjowanie ram MVVMCROSS i rejestrowanie usług specyficznych dla platformy za pomocą klasy instalacji. Klasa konfiguracji działa jako bootstrapper dla MVVMCROSS, umożliwiając programistom dostosowanie zachowania frameworka dla każdej platformy.

Inwersja kontroli (MKOl) i wstrzyknięcie zależności

MVVMCROSS używa inwersji kontenera sterowania (IOC) do zarządzania zależnościami w aplikacji. Umożliwia to rejestrację i wstrzyknięcie usług specyficznych dla platformy w logikę podstawowego projektu. Na przykład, jeśli aplikacja musi uzyskać dostęp do usług lokalizacyjnych GPS, usługa GPS może być zarejestrowana w klasie konfiguracji specyficznej dla platformy, a następnie wprowadzić do modeli View lub innych części podstawowego projektu.

Dostosowywanie zachowania platformy

Deweloperzy mogą dostosowywać zachowanie specyficzne dla platformy poprzez zastępowanie metod w klasie konfiguracji. Na przykład na Androida możesz zastąpić metody w „MvxandroidSetUp`, aby zarejestrować usługi specyficzne dla Androida lub obsługiwać zdarzenia cyklu życia specyficznego dla Androida. Podobnie na iOS użyłbyś „mvxiossetup” do obsługi specyficznej dla iOS inicjalizacji i rejestracji usług.

Zobacz prezenterów

MVVMCROSS zapewnia również prezenterów widoków, którzy są odpowiedzialni za decydowanie o prezentacji widoków na każdej platformie. Umożliwia to dostosowanie logiki prezentacji interfejsu użytkownika, takiego jak wyświetlanie widoków modalnie lub jako część stosu nawigacji, w zależności od konwencji platformy.

wtyczki i rozszerzenia

MVVMCROSS oferuje framework wtyczki, który umożliwia programistom łatwą integrację wtyczek stron trzecich dla typowych funkcji, takich jak lokalizacja, czujniki i wiele innych. Te wtyczki mogą być używane na wielu platformach, co dodatkowo zmniejsza potrzebę kodu specyficznego dla platformy.

Podsumowując, MVVMCROSS obsługuje kod specyficzny dla platformy, zapewniając ustrukturyzowane podejście do oddzielania wspólnej logiki od implementacji specyficznych dla platformy. Wykorzystuje MKOl i wtrysku zależności do zarządzania usługami platform, umożliwia dostosowanie za pośrednictwem klasy konfiguracji i obsługuje wtyczki do rozszerzania funkcjonalności między platformami.

Cytaty:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[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-causes-an-exception-mvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andetup