MVVMCross는 특히 크로스 플랫폼 개발의 맥락에서 다른 MVVM 프레임 워크에 비해 몇 가지 장점을 제공합니다. 주요 이점은 다음과 같습니다.
1. 크로스 플랫폼 지원 : MVVMCross는 Xamarin.ios, Xamarin.Android, Xamarin.MAC, Xamarin.Forms, Universal Windows 플랫폼 (UWP) 및 Windows Presentation Foundation (WPF)을 포함한 광범위한 플랫폼을 지원하도록 설계되었습니다. 이를 통해 여러 플랫폼에 응용 프로그램을 배포 해야하는 개발자에게는 탁월한 선택이됩니다.
2. MVVM 아키텍처 : MVVMCross는 MVM (Model-View-ViewModel) 패턴의 구현을 용이하게하며, 이는 프리젠 테이션 레이어를 비즈니스 로직에서 분리하는 데 유리합니다. 이 분리는 응용 프로그램의 유지 관리 가능성과 테스트 가능성을 향상시킨다 [2] [7].
3. 데이터 바인딩 : MVVMCross는 강력한 데이터 바인딩 기능을 제공하여 뷰와 뷰 모델 사이의 양방향 연결을 허용합니다. 이 기능은 UI와 기본 데이터 모델 사이의 동기화를 유지하는 데 중요합니다 [6].
4. Navigation System : 프레임 워크에는 강력한 ViewModel-First Navigation System이 포함되어있어 응용 프로그램의 여러 부분간에 탐색 프로세스를 단순화합니다. 이 시스템은 고도로 사용자 정의 가능하며 복잡한 내비게이션 시나리오를 지원합니다 [5].
5. 의존성 주입 (DI) 및 제어 역전 (IOC) : MVVMCross는 싱글 톤 및 동적 등록과 같은 다양한 등록 패턴을 지원하는 경량 DI 컨테이너를 제공합니다. 이를 통해 애플리케이션 전반에 걸쳐 종속성을 쉽게 관리 할 수 있으며 모듈성 및 테스트 성을 향상시킬 수 있습니다 [2].
6. 플러그인 아키텍처 : 프레임 워크에는 개발자가 플랫폼 별 기능 또는 타사 라이브러리를 응용 프로그램에 쉽게 통합 할 수있는 플러그인 시스템이 포함되어 있습니다. 이 시스템은 플러그인의 런타임 주입을 지원하므로 크로스 플랫폼 코드를보다 쉽게 관리 할 수 있습니다 [4].
7. 코드 재사용 성 : 뷰 모델을 휴대용 클래스 라이브러리 (PCL) 또는 .NET 표준 라이브러리에 배치 할 수있게함으로써 MVVMCross는 다른 플랫폼에서 코드 재사용 성을 최대화합니다. 이 접근법은 개발 시간과 노력을 크게 줄입니다 [3] [7].
8. 기본 UI 지원 : Xamarin.forms와 같은 다른 프레임 워크와 달리 MVVMCross는 각 플랫폼의 기본 UI 개발을 지원합니다. 이는 개발자가 기본 컨트롤과 API를 활용하는 플랫폼 별 UI를 만들 수 있음을 의미합니다.
9. 유연성 및 사용자 정의 가능성 : MVVMCross는 매우 구성 가능하며 개발자가 많은 구성 요소를 무시할 수 있습니다. 이러한 유연성은 광범위한 프로젝트 요구 사항 및 개발 스타일에 적합합니다 [4].
전반적으로 MVVMCross는 크로스 플랫폼 지원, MVVM 아키텍처, 데이터 바인딩, 내비게이션, 의존성 주입 및 코드 재사용의 강력한 조합을 제공하여 여러 플랫폼에서 복잡하고 유지 관리 가능한 응용 프로그램을 구축하는 개발자에게 강력한 선택이됩니다.
인용 :[1] https://www.mvvmcross.com/documentation/getting-started/getting-started
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[8] https://stackoverflow.com/questions/26783673/mvvmcross-for-new-cross-platform-project