MVVMCross와 체스 게임을 통합하려면 MVMCross 프레임 워크 설정, 체스 게임 로직 설계 및 사용자 인터페이스 구현 등 여러 단계가 필요합니다. 다음은이를 달성하는 방법에 대한 자세한 안내서입니다.
1 단계 : MVVMCross 설정
먼저 MVVMCross 프로젝트를 설정해야합니다. 여기에는 View 모델 및 모델과 같은 공유 코드가 포함 된 핵심 프로젝트, Android 및 iOS 용 플랫폼 별 프로젝트를 작성하는 것이 포함됩니다.
1. 핵심 프로젝트 만들기 :이 프로젝트는 휴대용 클래스 라이브러리 (PCL) 또는 .NET 표준 라이브러리가 될 것입니다. 뷰 모델, 모델 및 비즈니스 로직이 포함됩니다.
2. 플랫폼 별 프로젝트 작성 : Android 및 iOS의 경우 사용자 인터페이스 및 플랫폼 별 코드를 포함하는 별도의 프로젝트를 만듭니다.
3. MVVMCROSS NUGET 패키지 설치 : 핵심 프로젝트 및 플랫폼 별 프로젝트 모두에 MVMCROSS NUGET 패키지를 설치하십시오. `install-package mvvmcross` [3] 명령으로 패키지 관리자 콘솔을 사용하여이를 수행 할 수 있습니다.
2 단계 : 체스 게임 논리 설계
체스 게임 논리는 핵심 프로젝트에 있습니다. 여기에는 체스 규칙, 조각 운동 및 게임 상태 관리가 포함됩니다.
1. 체스 모델 만들기 : 체스 조각에 대한 클래스 (예 :`piece`,`pawn`,`기사 등) 및 체스 보드 (`보드 ')를 정의하십시오.
2. 게임 로직 구현 : 조각 이동, 체크 메이트 확인 및 회전 관리와 같은 게임 로직을 처리하는 서비스 또는 관리자 클래스 ( 'Chessgamemanager')를 만듭니다.
3. 종속성 주입 사용 : 핵심 프로젝트의 '앱'클래스의 IOC 컨테이너에 'chessgamemanager'를 등록하여 응용 프로그램 전체에서 액세스 할 수 있도록합니다 [2].
3 단계 : 사용자 인터페이스 구현
사용자 인터페이스의 경우 플랫폼 별 프로젝트에서 뷰를 생성합니다.
1. Android보기 : Android 프로젝트에서 체스 보드 및 조각에 대한 레이아웃을 만듭니다. MVVMCross의 데이터 바인딩 기능을 사용하여 UI 요소를 뷰 모델에 바인딩하십시오.
2. iOS보기 : 마찬가지로 iOS 프로젝트에서 체스 보드 및 조각에 대한 뷰를 만듭니다. MVVMCross의 데이터 바인딩을 사용하여 UI 요소를보기 모델에 연결하십시오.
3. 공유 UI 논리 : 가능하면 Xamarin.forms를 사용하거나 플랫폼에서 사용할 수있는 사용자 정의 컨트롤을 만들어 UI 논리를 공유하십시오.
4 단계 : 체스 로직을 MVVMCross와 통합합니다
1. 체스보기 모델 만들기 : 핵심 프로젝트에서 'Chessgamemanager'와 상호 작용하는보기 모델 (`chessviewmodel ')을 만듭니다. 이러한보기 모델은 UI가 바인딩 할 수있는 속성과 명령을 노출시킵니다.
2.보기 간 탐색 : MVMCROSS의 내비게이션 기능을 사용하여 메인 메뉴에서 게임 보드까지의 체스 게임의 다양한보기간에 이동하십시오.
3. Pass Parameters : MVVMCross의 매개 변수 전달 메커니즘을 사용하여 현재 게임 상태와 같은보기 모델간에 데이터를 전달합니다 [1].
5 단계 : 테스트 및 배포
1. 단위 테스트 : MVVMCross의 장치 테스트 도우미를 사용하여 뷰 모델 및 게임 로직 테스트를 작성하십시오.
2. UI 테스트 : 각 플랫폼에서 UI 테스트를 수행하여 체스 게임이 예상대로 작동하는지 확인하십시오.
3. 앱 배포 : 모든 것이 테스트되고 작동하면 앱을 각 앱 스토어에 배포하십시오.
이 단계를 수행하면 체스 게임을 MVVMCross와 통합하여 크로스 플랫폼 기능을 활용하여 Android와 iOS 플랫폼간에 코드 및 논리를 공유 할 수 있습니다.
인용 :[1] https://www.packtpub.com/en-us/learning/how-tutorials/sharing-mvvmcross
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://github.com/mvvmcross/mvvmcross
[4] https://stackoverflow.com/questions/50111506/how-do-i-pecify-to-use-view-from-project-in-mvvmcross-6-0
[5] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[6] https://www.chessnutech.com
[7] https://www.mvvmcross.com/documentation/getting-started/getting-started
[8] http://squareoffnow.com