MVVMCross는 강력한 크로스 플랫폼 MVVM 프레임 워크로, 특히 Xamarin과 함께 사용될 때 크로스 플랫폼 응용 프로그램을 개발하는 데 몇 가지 이점을 제공합니다. 다음은 mvvmcross를 사용하는 데있어 주요 장점 중 하나입니다.
MVVM 패턴 및 코드 재사용
MVMCross를 사용하면 개발자가 MVM (Model-View-ViewModel) 패턴을 구현할 수 있으며, 이는 사용자 인터페이스에서 응용 프로그램 로직을 분리하는 데 유리합니다. 이 분리를 통해 휴대용 클래스 라이브러리 (PCL) 또는 .NET 표준 라이브러리 [1] [2]에 뷰 모델을 배치하여 iOS, Android 및 Windows와 같은 다른 플랫폼에서 비즈니스 로직을 재사용 할 수 있습니다. 이 접근법은 각 플랫폼이 기본 UI를 구현하면서 동일한 뷰 모델을 여러 플랫폼에서 사용할 수 있으므로 코드 재사용을 크게 향상시킵니다.데이터 바인딩
MVVMCross는 데이터 바인딩을 지원하며 이는 MVVM 패턴에 중요합니다. 데이터 바인딩을 통해 기본 데이터가 변경 될 때 UI 요소를 자동으로 업데이트 할 수있어 수동 업데이트 및 보일러 플레이트 코드가 줄어 듭니다 [3] [5]. 이 기능은 UI와 비즈니스 로직 간의 우려를 깨끗하게 분리하는 데 도움이됩니다.의존성 주입 및 제어 역전
MVVMCross에는 의존성 주입을 지원하는 IOC (Control) 컨테이너가 내장되어 있습니다. 이를 통해 개발자는 구성 요소와 서비스 간의 종속성을 쉽게 관리 할 수 있습니다. 생성자 주입을 사용함으로써 ViewModels는 구현 세부 사항을 알 필요없이 플랫폼 별 서비스를받을 수 있으므로 크로스 플랫폼 코드를보다 쉽게 작성할 수 있습니다 [2] [5].플러그인 및 플랫폼 별 기능
MVVMCross는 개발자가 복제 코드없이 플랫폼 별 기능을 만들고 사용할 수있는 플러그인 아키텍처를 제공합니다. 이 플러그인은 NUGET를 통해 쉽게 설치할 수 있으며 각 플랫폼에서 다르게 구현되는 카메라 액세스, GPS 또는 데이터베이스 작업과 같은 기능을 제공 할 수 있습니다 [1] [2]. 이 접근법은 플랫폼 별 서비스를 크로스 플랫폼 응용 프로그램에 통합하는 것을 단순화합니다.테스트 가능성
MVVMCross를 사용하면 중요한 이점 중 하나는 뷰 모델의 개선 된 테스트 가능성입니다. ViewModels에는 비즈니스 논리가 포함되어 있으며 UI에서 분리되므로 플랫폼 별 UI 코드와 독립적으로 쉽게 테스트 할 수 있습니다 [2] [5]. 따라서 응용 프로그램 논리에 대한 단위 테스트를보다 쉽게 작성할 수 있습니다.내비게이션 및 뷰 발표자
MVVMCross는 ViewPresenters를 포함하여 강력한 ViewModel-First Navigation 시스템을 제공합니다. 이 구성 요소는 다양한 플랫폼에서 뷰가 제시되는 방식을 관리하여 내비게이션 및 UI 프레젠테이션에서 더 많은 유연성을 제공 할 수 있습니다 [8].유연성 및 확장 성
MVVMCross는 Xamarin Native 및 Xamarin.forms 개발 접근법을 모두 지원하여 UI 계층을 구현하는 방법을 선택할 수있는 유연성을 제공합니다 [9]. 또한, 오픈 소스 특성 및 활동적인 커뮤니티는 특정 프로젝트 요구를 충족시키기 위해 확장되고 맞춤화 될 수 있도록합니다.전반적으로 MVVMCross는 코드 재사용을 촉진하고 플랫폼 별 구현을 단순화하며 애플리케이션 유지 관리 및 테스트 가능성을 향상시켜 크로스 플랫폼 개발을 향상시킵니다.
인용 :[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[4] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do- xamarin-doesnt-already
[5] https://www.cms.lk/mvvmcross-a-cross-platform-mobile-platform-for-xamarin/
[6] https://www.velvetech.com/blog/5-2iseason-use-mobile-cross-platform-development/
[7] https://www.toptal.com/app/xamarin-mvmcross-skiasharp-cross-platform
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started