탐색 3

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

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

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

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

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

Jetpack 탐색 개선사항

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

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

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

코드 샘플

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