MVVMCross는 특히 .NET 생태계에서 크로스 플랫폼 개발에 사용되는 인기있는 MVVM 프레임 워크입니다. iOS, Android, MacOS 및 Windows와 같은 플랫폼을 지원하므로 개발자는 MVVM 패턴을 사용하여 이러한 플랫폼에서 코드를 공유 할 수 있습니다. MVVMCross와 기타 MVVM 프레임 워크의 주요 차이점은 다음과 같습니다.
mvvmcross vs. MVVM 조명 툴킷
- 기능 세트 : MVVMCross는 MVVM Light Toolkit에 비해 기능이 더 완료됩니다. MVVMCross는 다양한 기능에 대한 데이터 바인딩, 내비게이션, 종속성 주입 및 플러그인을 포함한 포괄적 인 기능 세트를 제공합니다 [1] [3]. MVVM Light Toolkit은 가볍고 많은 상자 외 기능이 부족하여 복잡한 응용 프로그램에 적합하지 않습니다 [2].
- 커뮤니티 및 지원 : MVVMCross는 2015 년 이후로 업데이트되지 않은 MVVM Light Toolkit에 비해 더 크고 활발한 커뮤니티를 보유하고 있습니다 [2] [9].
mvvmcross vs. 프리즘
- 내비게이션 및 복잡성 : 프리즘은 강력한 탐색 기능으로 유명하며 대규모 응용 프로그램에서 종종 사용됩니다. 그러나 일부 개발자는 덜 직관적 인 것을 발견하는 내비게이션에 마법 문자열을 사용합니다 [9]. MVVMCross는보다 간단한 내비게이션 시스템을 제공하지만 프리즘만큼 강력하지는 않습니다.
- 문서화 및 성능 : 프리즘의 문서는 때때로 부족하다는 비판을 받고 있으며, 이는 주로 성능의 이유로 DRYIOC를 지원합니다 [9]. MVVMCross는 광범위한 문서를 가지고 있으며 다양한 종속성 주입 패턴을 지원합니다 [3] [10].
mvvmcross vs. Reactiveui
- 철학과 접근 : MVVMCross는 플랫폼 전체의 코드 공유에 중점을 둔 기본 모바일 애플리케이션을 구축하기위한 포괄적 인 기능 세트를 제공하는 데 중점을 둡니다 [7]. 반면에 ReactiveUi는 RX (Realtive Extensions) 라이브러리를 사용한 반응성 프로그래밍을 강조하여 복잡한 비동기 연산을 갖는 응용 분야에 적합합니다 [7].
- 데이터 바인딩 : MVVMCross는 컨벤션 기반 데이터 바인딩 접근법을 사용하는 반면 ReactiveUi는 관찰 가능성을 사용하여보다 반응적이고 명백한 접근법을 사용합니다 [7].
- 학습 곡선 : ReactiveUi는 Reactive 프로그래밍에 중점을두기 때문에 더 가파른 학습 곡선을 가질 수 있지만 MVVMCross는 일반적으로 광범위한 문서화와 커뮤니티 지원으로 인해 시작하기가 더 쉽습니다 [7].
mvvmcross vs. Mugen MVVM 툴킷
-기능 세트 및 복잡성 : Mugen MVVM 툴킷은 다양한 플랫폼에 대한 모든 원하는 기능과 좋은 샘플을 갖는 것에 대해 칭찬을받습니다 [2]. 그러나 소규모 커뮤니티와 복잡한 내부 소스 코드가있어 배우고 확장하기가 어려울 수 있습니다 [2]. MVVMCross는 더 널리 채택되었으며 더 간단한 아키텍처를 보유하고있어 많은 개발자에게 더 쉽게 사용할 수 있습니다.
요약하면, MVVMCross는 다양한 플랫폼을 지원하고 크로스 플랫폼 개발을위한 포괄적 인 기능 세트를 제공하는 다양한 프레임 워크입니다. 그 강점은 플랫폼에서 코드를 공유하는 능력과 광범위한 커뮤니티 지원에 있습니다. 그러나 ReactiveUi 및 Prism과 같은 다른 프레임 워크는 Reactive 프로그래밍 또는 강력한 내비게이션 시스템과 같은 특정 요구에 더 적합 할 수 있습니다.
인용 :[1] https://www.mvvmcross.com/documentation/getting-started/getting-started
[2] https://github.com/m0j0/mvvmframeworkscomparison
[3] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[4] https://github.com/mvvmcross/mvvmcross
[5] https://platform.uno/blog/demystifying-mvvm-and-introducting-mvux-spoach/
[6] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[7] https://www.reacitiveui.net/vs/mvvmcross
[8] https://www.reddit.com/r/csharp/comments/10avv3g/suggested_wpf_mvvm_frameworks/
[9] https://github.com/rogerwcpt/xamarin-mvvvm-frameworks
[10] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview