Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross는 플랫폼 별 코드를 어떻게 처리합니까?


MVVMCross는 플랫폼 별 코드를 어떻게 처리합니까?


MVVMCross는 응용 프로그램 논리를 핵심 프로젝트와 플랫폼 별 프로젝트의 두 가지 주요 부분으로 분리하여 플랫폼 별 코드를 효율적으로 처리하도록 설계되었습니다. 일반적으로 .NET 표준 라이브러리 인 핵심 프로젝트에는 플랫폼 별 서비스를위한 비즈니스 로직, 모델, 모델 및 인터페이스가 포함되어 있습니다. 이를 통해 Android, iOS 및 Windows와 같은 다른 플랫폼에서 최대 코드 공유가 가능합니다.

플랫폼 별 프로젝트

각 플랫폼 별 프로젝트 (예 : Xamarin.Android, Xamarin.ios)에는 사용자 인터페이스 및 플랫폼 별 서비스 구현이 포함되어 있습니다. 이 프로젝트는 MVVMCross 프레임 워크를 초기화하고 설정 클래스를 사용하여 플랫폼 별 서비스를 등록하는 일을 담당합니다. 설정 클래스는 MVVMCross의 부트 스트레이퍼 역할을하므로 개발자가 각 플랫폼에 대한 프레임 워크의 동작을 사용자 정의 할 수 있습니다.

제어 (IOC) 및 종속성 주입의 역전

MVVMCross는 IOC (Control) 컨테이너를 사용하여 응용 프로그램의 종속성을 관리합니다. 이를 통해 플랫폼 별 서비스를 핵심 프로젝트의 논리에 등록하고 주입 할 수 있습니다. 예를 들어, 응용 프로그램이 GPS 위치 서비스에 액세스 해야하는 경우 GPS 서비스를 플랫폼 별 설정 클래스에 등록한 다음 뷰 모델 또는 핵심 프로젝트의 다른 부분에 주입 할 수 있습니다.

플랫폼 행동 사용자 정의

개발자는 설정 클래스에서 방법을 재정의하여 플랫폼 별 동작을 사용자 정의 할 수 있습니다. 예를 들어, Android에서는 'mvxandroidsetup'의 방법을 무시하여 Android 특정 서비스를 등록하거나 Android 특정 수명주기 이벤트를 처리 할 수 ​​있습니다. 마찬가지로 iOS에서 'MVXIOSSETUP'을 사용하여 iOS 별 초기화 및 서비스 등록을 처리합니다.

발표자보기

MVVMCross는 또한 뷰 발표자를 제공하며 각 플랫폼에서 뷰가 제시되는 방식을 결정하는 책임을 맡고 있습니다. 이를 통해 플랫폼 규칙에 따라 모드 또는 내비게이션 스택의 일부로보기를 표시하는 것과 같은 UI 프리젠 테이션 로직을 사용자 정의 할 수 있습니다.

플러그인 및 확장

MVVMCross는 개발자가 현지화, 센서 등과 같은 일반적인 기능을 위해 타사 플러그인을 쉽게 통합 할 수있는 플러그인 프레임 워크를 제공합니다. 이 플러그인은 여러 플랫폼에서 사용될 수 있으므로 플랫폼 별 코드의 필요성을 더욱 줄일 수 있습니다.

요약하면, MVVMCross는 플랫폼 별 구현과 공유 논리를 분리하는 구조적 접근 방식을 제공하여 플랫폼 별 코드를 처리합니다. IOC 및 종속성 주입을 사용하여 플랫폼 서비스를 관리하고 설정 클래스를 통해 사용자 정의 할 수 있으며 플랫폼에서 기능을 확장하기위한 플러그인을 지원합니다.

인용 :
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup