MVVMCross는 특히 Xamarin과의 교차 플랫폼 개발의 맥락에서 다른 MVVM 프레임 워크에 비해 몇 가지 주요 이점을 제공합니다. 다음은 몇 가지 주요 장점입니다.
1. 크로스 플랫폼 지원 : MVVMCross는 Xamarin.ios, Xamarin.Android, Xamarin.MAC, UWP (Universal Windows Flatform), Windows Presentation Foundation (WPF) 등 다양한 플랫폼을 지원하도록 설계되었습니다. 이를 통해 개발자는 다양한 플랫폼에서 상당한 양의 코드를 공유하여 개발 시간을 줄이고 효율성을 높일 수 있습니다 [4] [9].
2. MVVM 아키텍처 및 데이터 바인딩 : MVVMCross는 MVVM 패턴을 효과적으로 구현하여 강력한 데이터 바인딩 기능을 제공합니다. 이 기능은 UI와 비즈니스 로직 간의 연결을 자동화하여 모델의 변경 사항이보기에 반영되고 그 반대도 마찬가지입니다. 데이터 바인딩은 보일러 플레이트 코드의 필요성을 줄이고 응용 프로그램의 유지 관리 가능성을 향상시킵니다 [3] [7].
3. 내비게이션 시스템 : MVVMCross에는 강력한 ViewModel-First Navigation System이 포함되어 있습니다. 이 시스템은 ViewPresenters와 결합하여 응용 프로그램의 다른 부분들 사이에서 유연하고 효율적인 내비게이션을 허용합니다 [1].
4. 의존성 주입 및 통제 역전 (IOC) : MVVMCross는 응용 프로그램의 종속성 관리를 단순화하는 경량 의존성 주입 컨테이너를 제공합니다. 이를 통해 서비스의 쉬운 등록 및 해상도, 단위 테스트 촉진 및 구성 요소의 느슨한 결합이 가능합니다 [2] [9].
5. 플러그인 아키텍처 : 프레임 워크는 개발자가 플랫폼 별 기능을 쉽게 통합 할 수있는 플러그인 시스템을 제공합니다. 이 시스템을 사용하면 각 플랫폼에서 다르게 구현할 수있는 카메라 액세스, 위치 서비스 또는 데이터베이스 작업과 같은 작업을 처리 할 수있는 사용자 정의 플러그인을 작성할 수 있습니다 [2] [9].
6. 테스트 가능성 : 비즈니스 로직을 ViewModels로 분리하면 MVMCross를 사용하면 응용 프로그램의 핵심 논리에 대한 단위 테스트를보다 쉽게 작성할 수 있습니다. UI 구성 요소로부터의 이러한 분리는 로직을 플랫폼 별 뷰와 독립적으로 테스트 할 수 있도록한다 [2] [7].
7. 기본 UI 경험 : Xamarin.forms와 같은 다른 프레임 워크와 달리 MVVMCross를 사용하면 개발자가 각 플랫폼에 대한 기본 UI 구성 요소를 만들 수 있습니다. 이로 인해보다 기본적인 모양과 느낌이 생겨 다른 플랫폼에서 사용자 경험을 향상시킵니다 [9] [10].
8. 커뮤니티 및 오픈 소스 : 오픈 소스 프레임 워크이기 때문에 MVMCROSS는 커뮤니티 기여로부터 혜택을 받고 적극적으로 유지됩니다. 이러한 개방성을 통해 개발자는 필요에 따라 프레임 워크를 확장 또는 수정하여 유연성 및 사용자 정의 옵션을 제공 할 수 있습니다 [5] [7].
전반적으로 MVVMCross는 MVVM 아키텍처, 데이터 바인딩 및 의존성 주입에 중점을 둔 효율적인 크로스 플랫폼 개발을 촉진하는 강력한 기능 세트를 제공하여 복잡한 Xamarin 응용 프로그램에 인기있는 선택입니다.
인용 :[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[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://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvmcross-part-1-introduction/
[6] https://livebook.manning.com/book/xamarin-in-action/b-using-mvvm-light-instead-of-mvvmcross/v-15/
[7] https://www.cms.lk/mvvmcross-a-cross-platform-mobile-platform-for-xamarin/
[8] https://mentormate.com/blog/6-2issons-mvvmcross-speeds-xamarin-development-pernalizes-ux/
[9] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/