Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross는 크로스 플랫폼 앱에서 코드 재사용을 어떻게 개선합니까?


MVVMCross는 크로스 플랫폼 앱에서 코드 재사용을 어떻게 개선합니까?


MVVMCross는 MVM (Model-View-ViewModel) 아키텍처 패턴을 활용하여 크로스 플랫폼 앱에서 코드 재사용을 크게 향상시킵니다. 이를 달성하는 방법은 다음과 같습니다.

1. 우려의 분리 : MVVMCross는 응용 프로그램을 두 가지 주요 부분으로 나누어 핵심과 UI로 나누어 우려 사항을 명확하게 분리합니다. 일반적으로 휴대용 클래스 라이브러리 (PCL) 또는 .NET 표준 라이브러리 인 핵심 프로젝트에는 모든 뷰 모델, 모델 및 비즈니스 로직이 포함되어 있습니다. 이를 통해 비즈니스 로직이 플랫폼 별 코드에서 분리되므로 [1] [2] [7].

2. 핵심 프로젝트의 뷰 모델 : 핵심 프로젝트에 뷰 모델을 배치함으로써 MVVMCross를 통해 개발자는 여러 플랫폼에서 이러한 구성 요소를 공유 할 수 있습니다. 이는 iOS, Android 및 Windows와 같은 다른 플랫폼에서 수정없이 사용자 상호 작용, 데이터 조작 및 탐색을 처리하기위한 논리를 재사용 할 수 있음을 의미합니다 [1] [3] [9].

3. 데이터 바인딩 : MVVMCross는 데이터 바인딩을 지원하며, 이는 뷰 모델에서 변경이 발생할 때 UI를 자동으로 업데이트합니다. 이 기능은 플랫폼 간 일관성을 유지하는 데 중요하며 수동 UI 업데이트의 필요성을 줄여 코드 재사용을 더욱 향상시킵니다 [4] [5].

4. 의존성 주입 및 플러그인 : MVVMCross에는 플러그인 아키텍처 및 DI (Dependency Injection) 기능이 포함되어 있습니다. 이러한 기능을 통해 개발자는 핵심 프로젝트에서 쉽게 액세스하고 재사용 할 수있는 방식으로 플랫폼 별 기능을 구현할 수 있습니다. 이것은 UI 계층이 플랫폼 별이어야하지만 많은 기본 기능이 여전히 공유 될 수 있음을 의미합니다 [3] [9].

5. 내비게이션 및 뷰 발표자 : MVVMCross는 강력한 ViewModel-First Navigation 시스템을 제공하여 핵심 프로젝트에서 응용 프로그램 내비게이션을 오케스트레이션 할 수 있습니다. 이는 사용자 상호 작용 및 화면 전환의 흐름이 중앙에서 관리 될 수있어 플랫폼 별 항법 코드의 필요성을 줄일 수 있음을 의미합니다 [7].

6. 효율적인 프로젝트 구조 : MVVMCross는 UI 프로젝트의 핵심 코드와 플랫폼 별 코드의 플랫폼 공유 코드를 명확하게 분리하여 프로젝트 조직에 대한 구조화 된 접근 방식을 장려합니다. 이 구조는 크로스 플랫폼 응용 프로그램의 유지 보수 및 확장을 더 쉽게 촉진시킵니다 [2] [9].

전반적으로 MVVMCross는 비즈니스 로직을 중앙 집중화하고, 데이터 바인딩을 활용하며, 플랫폼 별 기능을 통합 방식으로 관리하기위한 도구를 제공하여 코드 재사용을 향상시킵니다. 이 접근법은 복제 된 코드의 양을 크게 줄이고 크로스 플랫폼 앱 개발 속도를 높입니다.

인용 :
[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvmcross-part-1-introduction/
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=Browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross