Xamarin.Forms Shell 소개
Xamarin.Forms Shell은 다음을 비롯한 대부분의 모바일 애플리케이션에 필요한 기본 기능을 제공하여 모바일 애플리케이션 개발의 복잡성을 줄입니다.
- 애플리케이션의 시각적 계층 구조를 설명하는 단일 위치입니다.
- 일반적인 탐색 사용자 환경입니다.
- 애플리케이션의 모든 페이지에 대한 탐색을 허용하는 URI 기반 탐색 체계입니다.
- 통합된 검색 처리기입니다.
또한 셸 애플리케이션은 렌더링 속도 향상 및 메모리 사용 감소의 혜택을 받습니다.
Important
기존 애플리케이션에 셸을 도입하면 탐색, 성능 및 확장성 향상으로 인한 즉각적인 이점을 얻을 수 있습니다.
애플리케이션 시각적 계층 구조
Xamarin.Forms Shell 애플리케이션에서 애플리케이션의 시각적 계층 구조는 Shell
클래스를 서브클래싱하는 클래스에서 설명합니다. 이 클래스는 다음 세 가지 주요 계층적 개체로 구성될 수 있습니다.
FlyoutItem
또는TabBar
.FlyoutItem
은 플라이아웃에서 하나 이상의 항목을 나타내며 애플리케이션의 탐색 패턴에 플라이아웃이 필요한 경우에 사용해야 합니다.TabBar
는 아래쪽 탭 표시줄을 나타내며 애플리케이션의 탐색 패턴이 아래쪽 탭으로 시작되고 플라이아웃이 필요하지 않은 경우에 사용해야 합니다.Tab
. 아래쪽 탭으로 탐색할 수 있는 그룹화된 콘텐츠를 나타냅니다.ShellContent
. 각 탭에 대한ContentPage
개체를 나타냅니다.
이러한 개체가 나타내는 것은 사용자 인터페이스가 아니라 애플리케이션의 시각적 계층 구조의 조직입니다. 셸은 이 개체를 사용하고 콘텐츠에 대한 탐색 사용자 인터페이스를 생성합니다.
참고 항목
페이지는 탐색에 대한 응답으로 요청에 따라 Shell 애플리케이션에 만들어집니다.
자세한 내용은 Xamarin.Forms Shell 애플리케이션 만들기를 참조하세요.
탐색 사용자 환경
Xamarin.Forms Shell에서 제공하는 탐색 환경은 플라이아웃 및 탭을 기반으로 합니다. Shell 애플리케이션에서 탐색의 최상위 수준은 애플리케이션의 탐색 요구 사항에 따라 플라이아웃 또는 아래쪽 탭 표시줄이 됩니다. 다음 예제에서는 탐색의 최상위 수준이 플라이아웃인 애플리케이션을 보여 줍니다.
이 예제에서는 일부 플라이아웃 항목이 탭 표시줄 항목으로 중복됩니다. 그러나 플라이아웃에서만 액세스할 수 있는 항목도 있습니다. 플라이아웃을 선택하면 항목을 나타내는 아래쪽 탭이 선택되고 표시됩니다.
참고 항목
플라이아웃이 열리지 않으면 아래쪽 탭 표시줄을 애플리케이션의 최상위 탐색 수준으로 간주할 수 있습니다.
탭 표시줄의 각 탭에는 ContentPage
가 표시됩니다. 그러나 아래쪽 탭에 둘 이상의 페이지가 포함되면 위쪽 탭 표시줄을 통해 페이지를 탐색할 수 있습니다.
각 탭 내에서 세부 정보 페이지로 알려진 추가 ContentPage
개체를 탐색할 수 있습니다.
Shell은 설정된 탐색 계층 구조를 따르지 않고도 경로를 사용하여 애플리케이션의 모든 페이지를 탐색하는 URI 기반 탐색 환경을 사용합니다. 또한 탐색 스택의 모든 페이지를 방문하지 않고도 뒤로 이동할 수 있는 기능을 제공합니다. 자세한 내용은 Xamarin.Forms Shell 탐색을 참조하세요.
검색
Xamarin.Forms Shell에는 SearchHandler
클래스에서 제공하는 통합 검색 기능이 포함되어 있습니다. 검색 기능을 페이지에 추가하려면 서브클래싱된 SearchHandler
개체를 페이지에 추가하면 됩니다. 그러면 검색 상자가 페이지 위쪽에 추가됩니다. 검색 상자에 데이터를 입력하면 검색 제안 영역이 데이터로 채워집니다.
검색 제안 영역에서 결과를 선택할 때 세부 정보 페이지 탐색과 같은 사용자 지정 논리를 실행할 수 있습니다.
자세한 내용은 Xamarin.Forms Shell 검색을 참조하세요.
플랫폼 지원
Xamarin.Forms Shell은 iOS 및 Android에서는 완전히 지원되나 UWP(유니버설 Windows 플랫폼)에서는 부분적으로만 지원됩니다. 이에 더해, 셸은 현재 UWP에서 시험 단계에 있으며, UWP 프로젝트에서 App
클래스에 다음 코드 줄을 추가하고 Forms.Init
을 호출해야만 사용 가능합니다.
global::Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");
UWP의 셸 상태에 대한 자세한 내용은 github.com에서 Xamarin.Forms 셸 프로젝트 보드를 참조하세요.