Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Czy możesz wyjaśnić interakcję między projektami rdzenia i interfejsu użytkownika w MVVMCROSS


Czy możesz wyjaśnić interakcję między projektami rdzenia i interfejsu użytkownika w MVVMCROSS


MVVMCROSS to framework międzyplatformowy, który ułatwia rozwój aplikacji za pomocą wzoru modelu-view-viewModel (MVVM). Pozwala programistom tworzyć luźno sprzężone, możliwe do utrzymania i testowalne rozwiązania mobilne poprzez rozdzielenie logiki aplikacji na dwie główne części: projekt podstawowy i projekt interfejsu użytkownika.

Core Project

Podstawowym projektem jest zazwyczaj standardowa biblioteka .NET, która zawiera cały współdzielony kod, w tym:
- ViewModels: Są one odpowiedzialne za obsługę interakcji użytkowników i logikę biznesową.
- Modele: Reprezentuj struktury danych wykorzystywane w całej aplikacji.
- Usługi: Zapewnij dostęp do danych, usług internetowych lub innych zasobów zewnętrznych.
- Konwerter: używane do konwersji typu danych.
- Klasa aplikacji: Jest to odpowiedzialne za inicjowanie modeli logiki biznesowej aplikacji. Obsługuje także rejestrację niestandardowych obiektów w inwersji kontenera sterowania (IOC).
- AppStart: Opcjonalnie używane do określenia, który model widoku, aby zaprezentować najpierw po uruchomieniu aplikacji.
Projekt

UI

Projekt interfejsu użytkownika jest specyficzny dla platformy i zawiera elementy interfejsu użytkownika i kod specyficzny dla platformy. Dla każdej platformy docelowej (np. IOS, Android) istnieje osobny projekt interfejsu użytkownika. Projekty te obejmują:
- Widoki: Każdy widok jest odpowiedzialny za przedstawienie odpowiedniego modelu widoku. Widoki są zaprojektowane przy użyciu natywnych narzędzi platformowych (np. XAML dla Xamarin.Forms, AXML dla Androida).
- Native Application Handler: Obsługuje rodzime zdarzenia cyklu życia. Na przykład na Androidzie byłaby to klasa „MainActivity” lub „MainApplication”, podczas gdy na iOS byłaby to klasa „appDelegate”.
- Klasa konfiguracji: Jest to odpowiedzialne za ładowanie MVVMCROSS i rejestracja usług specyficznych dla platformy. Zainicjuje framework MVVMCROSS i konfiguruje kontener IOC z implementacjami specyficznymi dla platformy.

interakcja między projektami rdzenia i interfejsu użytkownika

Interakcja między projektami rdzenia i interfejsu użytkownika w MVVMCROSS jest ułatwiona przez wzór MVVM i kontener Framework w MKOl. Oto jak interakcje:
- Wiązanie ViewModel: Projekty interfejsu użytkownika używają MVVMCROSS do wiązania widoków z modelem widoku. Zazwyczaj odbywa się to przy użyciu konwencji nazewnictwa lub przez dekorowanie widoków z atrybutami takimi jak `[MvxViewFor (typeof (homeViewModel))]]`.
- Wstrzyknięcie usług: Podstawowy projekt definiuje interfejsy dla usług, które są wdrażane inaczej na każdej platformie. Usługi te są zarejestrowane w kontenerze IOC i wstrzykiwane do modeli widokowych, umożliwiając funkcjonalność specyficzną dla platformy bez powielania kodu.
- Nawigacja i prezentacja: MVVMCROSS zapewnia mechanizmy nawigacji między modelami widoku i prezentacji widoków. Framework wykorzystuje prezenterów (np. `IMVXIOSVIEWPRESENTER`,` IMVXANDROIDVIEWPRESENTER`) do zarządzania sposobem wyświetlania widoków na każdej platformie.

Oddzielając logikę aplikacji na projekty rdzenia i interfejsu użytkownika, MVVMCROSS umożliwia programistom maksymalizację ponownego użycia kodu między platformami, jednocześnie umożliwiając dostosowywanie i optymalizację platformy [1] [3] [5].

Cytaty:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
[3] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andetup
[5] https://www.suneco.nl/blogs/boost-your-xamarin-nation-projects-with-mvvmcross/
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/