3부 - Xamarin 플랫폼 간 솔루션 설정
사용 중인 플랫폼에 관계없이 Xamarin 프로젝트는 모두 동일한 솔루션 파일 형식(Visual Studio .sln 파일 형식)을 사용합니다. 개별 프로젝트를 로드할 수 없는 경우에도(예: Mac용 Visual Studio Windows 프로젝트) 개발 환경에서 솔루션을 공유할 수 있습니다.
새 플랫폼 간 애플리케이션을 만들 때 첫 번째 단계는 빈 솔루션을 만드는 것입니다. 이 섹션에서는 플랫폼 간 모바일 앱을 빌드하기 위한 프로젝트 설정에 대해 설명합니다.
코드 공유
플랫폼 간에 코드 공유를 구현하는 방법에 대한 자세한 설명은 코드 공유 옵션 문서를 참조하세요.
.NET Standard
.NET Standard 프로젝트는 Windows, Xamarin 플랫폼(iOS, Android, Mac) 및 Linux에서 사용할 수 있는 어셈블리를 생성하여 플랫폼 간에 코드를 쉽게 공유할 수 있는 방법을 제공합니다. Xamarin 솔루션에 대한 코드를 공유하는 것이 좋습니다.
기타 옵션
지금까지 Xamarin은 PCL(이식 가능한 클래스 라이브러리)과 공유 프로젝트를 사용했습니다. 이 두 가지 모두 새 프로젝트에 권장되지 않습니다. .NET Standard를 사용하도록 기존 앱을 마이그레이션하는 것이 좋습니다.
솔루션 채우기
코드를 공유하는 데 사용되는 방법에 관계없이 전체 솔루션 구조는 코드 공유를 장려하는 계층화된 아키텍처를 구현해야 합니다. Xamarin 접근 방식은 코드를 두 가지 프로젝트 형식으로 그룹화합니다.
- Core(또는 "Shared") 프로젝트 – 다른 플랫폼에서 공유할 재사용 가능한 코드를 한 곳에 작성합니다. 캡슐화 원칙을 사용하여 가능한 경우 구현 세부 정보를 숨깁니다.
- 플랫폼별 애플리케이션 프로젝트 – 가능한 한 적은 결합으로 재사용 가능한 코드를 사용합니다. 플랫폼별 기능은 Core 프로젝트에 노출된 구성 요소를 기반으로 하여 이 수준에서 추가됩니다.
핵심 프로젝트
코드를 공유하는 핵심 프로젝트는 .NET Standard여야 하며 모든 플랫폼에서 사용할 수 있는 어셈블리만 참조해야 합니다. 즉, 와 같은 System
공통 프레임워크 네임스페이 System.Core
스 및 System.Xml
.
핵심 프로젝트는 다음 계층을 포함할 수 있는 가능한 한 많은 비 UI 기능을 구현해야 합니다.
- 데이터 계층 – 물리적 데이터 스토리지를 돌보는 코드입니다. SQLite-NET 또는 XML 파일 데이터 계층 클래스는 일반적으로 데이터 액세스 계층에서만 사용됩니다.
- 데이터 액세스 계층 – 데이터 목록, 개별 데이터 항목에 액세스하는 방법, 데이터 항목 만들기, 편집 및 삭제와 같은 애플리케이션 기능에 필요한 데이터 작업을 지원하는 API를 정의합니다.
- 서비스 액세스 계층 – 애플리케이션에 클라우드 서비스를 제공하는 선택적 계층입니다. 원격 네트워크 리소스(웹 서비스, 이미지 다운로드 등)와 결과 캐싱에 액세스하는 코드를 포함합니다.
- 비즈니스 계층 – 플랫폼별 애플리케이션에 기능을 노출하는 모델 클래스 및 Façade 또는 Manager 클래스의 정의입니다.
플랫폼별 애플리케이션 프로젝트
플랫폼별 프로젝트는 .NET Standard 프로젝트뿐만 아니라 각 플랫폼의 SDK(Xamarin.iOS, Xamarin.Android, Xamarin.Mac 또는 Windows)에 바인딩하는 데 필요한 어셈블리를 참조해야 합니다.
플랫폼별 프로젝트는 다음을 구현해야 합니다.
- 애플리케이션 계층 – 플랫폼별 기능 및 비즈니스 계층 개체와 사용자 인터페이스 간의 바인딩/변환입니다.
- 사용자 인터페이스 계층 – 화면, 사용자 지정 사용자 인터페이스 컨트롤, 유효성 검사 논리 표시.
프로젝트 참조
프로젝트 참조는 프로젝트에 대한 종속성을 반영합니다. 핵심 프로젝트는 코드를 쉽게 공유할 수 있도록 공통 어셈블리에 대한 참조를 제한합니다. 플랫폼별 애플리케이션 프로젝트는 .NET Standard 프로젝트와 대상 플랫폼을 활용하는 데 필요한 다른 플랫폼별 어셈블리를 참조합니다.
사례 연구에서 프로젝트를 구조화해야 하는 방법에 대한 구체적인 예가 제공됩니다.
파일 추가
빌드 작업
특정 파일 형식에 대해 올바른 빌드 작업을 설정하는 것이 중요합니다. 이 목록은 몇 가지 일반적인 파일 형식에 대한 빌드 동작을 보여 줍니다.
- 모든 C# 파일 – 빌드 작업: 컴파일
- Xamarin.iOS 및 Windows 의 이미지 - 빌드 작업: 콘텐츠
- Xamarin.iOS 의 XIB 및 스토리보드 파일 – 빌드 작업: InterfaceDefinition
- Android 의 이미지 및 XML 레이아웃 – 빌드 작업: AndroidResource
- Windows 프로젝트의 XAML 파일 – 빌드 작업: 페이지
- Xamarin.Forms XAML 파일 – 빌드 작업: EmbeddedResource
일반적으로 IDE는 파일 형식을 검색하고 올바른 빌드 작업을 제안합니다.
대/소문자 구분
마지막으로, 일부 플랫폼에는 대/소문자를 구분하는 파일 시스템(예: iOS 및 Android)이 있으므로 일관된 파일 명명 표준을 사용하고 코드에서 사용하는 파일 이름이 파일 시스템과 정확하게 일치하는지 확인해야 합니다. 이는 코드에서 참조하는 이미지 및 기타 리소스에 특히 중요합니다.