탐색 3

탐색 3은 Compose와 함께 작동하도록 설계된 탐색 라이브러리입니다. Navigation 3을 사용하면 백 스택을 완전히 제어할 수 있으며 목록에서 항목을 추가하고 삭제하여 대상 간에 이동합니다. 다음과 같은 기능을 제공하여 유연한 앱 탐색 시스템을 만듭니다.

  • 백 스택을 모델링하는 규칙. 백 스택의 각 항목은 사용자가 탐색한 콘텐츠를 나타냅니다.
  • 백 스택 변경사항 (애니메이션 포함)에 따라 자동으로 업데이트되는 UI
  • 백 스택에 있는 항목의 범위로, 항목이 백 스택에 있는 동안 상태를 유지할 수 있습니다.
  • 여러 목적지를 동시에 표시하여 이러한 레이아웃 간에 원활하게 전환할 수 있는 적응형 레이아웃 시스템
  • 콘텐츠가 상위 요소 레이아웃(메타데이터)과 통신하는 메커니즘
  • 화면 간에 결과를 반환하기 위한 대상 간 통신

대략적으로 다음과 같은 방법으로 탐색 3을 구현합니다.

  1. 사용자가 앱에서 탐색할 수 있는 콘텐츠를 고유한 키와 함께 정의하고 해당 키를 콘텐츠로 확인하는 함수를 추가합니다. 콘텐츠로 키 해결을 참고하세요.
  2. 사용자가 앱을 탐색할 때 키가 푸시되고 삭제되는 백 스택을 만듭니다. 백 스택 만들기를 참고하세요.
  3. NavDisplay을 사용하여 앱의 백 스택을 표시합니다. 백 스택이 변경될 때마다 관련 콘텐츠를 표시하도록 UI를 업데이트합니다. 백 스택 표시를 참고하세요.
  4. 적응형 레이아웃과 다양한 플랫폼을 지원하기 위해 필요에 따라 NavDisplay장면 전략을 수정합니다.
  5. 딥 링크를 지원하여 대상으로 직접 이동합니다.

AOSP에서 Navigation 3의 전체 소스 코드를 확인할 수 있습니다.

Jetpack 탐색 개선사항

Navigation 3은 다음과 같은 방식으로 원래 Jetpack Navigation API를 개선합니다.

  • Compose와의 통합을 간소화합니다.
  • 백 스택을 완전히 제어할 수 있습니다.
  • 백 스택에서 두 개 이상의 대상을 동시에 읽을 수 있는 레이아웃을 만들어 창 크기 및 기타 입력의 변경사항에 적응할 수 있도록 합니다.

공지사항 블로그 게시물에서 Navigation 3의 원칙과 API 설계 선택사항에 관해 자세히 알아보세요.

코드 샘플

레시피 저장소에는 탐색 3 빌딩 블록을 사용하여 일반적인 탐색 문제를 해결하는 방법의 예가 포함되어 있습니다.