Navigation 3는 Compose와 함께 작동하도록 설계된 새로운 탐색 라이브러리입니다. 탐색 3을 사용하면 백 스택을 완전히 제어할 수 있으며, 대상 간 이동은 목록에서 항목을 추가하고 삭제하는 것만큼 간단합니다. 다음과 같은 기능을 제공하여 유연한 앱 탐색 시스템을 만듭니다.
- 백 스택을 모델링하는 규칙. 백 스택의 각 항목은 사용자가 탐색한 콘텐츠를 나타냅니다.
- 뒤로 스택 변경사항 (애니메이션 포함)에 따라 자동으로 업데이트되는 UI
- 백 스택에 있는 항목의 범위로, 항목이 백 스택에 있는 동안 상태를 유지할 수 있습니다.
- 여러 목적지를 동시에 표시하고 이러한 레이아웃 간에 원활하게 전환할 수 있는 적응형 레이아웃 시스템
- 콘텐츠가 상위 레이아웃 (메타데이터)과 통신하는 메커니즘
대략적으로 다음과 같은 방법으로 탐색 3을 구현합니다.
- 사용자가 앱에서 탐색할 수 있는 콘텐츠를 고유한 키와 함께 정의하고 해당 키를 콘텐츠로 확인하는 함수를 추가합니다. 콘텐츠로 키 해결을 참고하세요.
- 사용자가 앱을 탐색할 때 키가 푸시되고 삭제되는 백 스택을 만듭니다. 백 스택 만들기를 참고하세요.
NavDisplay을 사용하여 앱의 뒤로 스택을 표시합니다. 백 스택이 변경될 때마다 관련 콘텐츠를 표시하도록 UI를 업데이트합니다. 뒤로 스택 표시를 참고하세요.- 적응형 레이아웃과 다양한 플랫폼을 지원하기 위해 필요에 따라
NavDisplay의 장면 전략을 수정합니다.
AOSP에서 Navigation 3의 전체 소스 코드를 확인할 수 있습니다.
Jetpack 탐색 개선사항
Navigation 3은 다음과 같은 방식으로 원래 Jetpack Navigation API를 개선합니다.
- Compose와의 통합을 간소화합니다.
- 뒤로 스택을 완전히 제어할 수 있습니다.
- 백 스택에서 두 개 이상의 대상을 동시에 읽을 수 있는 레이아웃을 만들어 창 크기 및 기타 입력의 변경사항에 적응할 수 있도록 합니다.
이 블로그 게시물에서 Navigation 3의 원칙과 API 설계 선택사항에 대해 자세히 알아보세요.
코드 샘플
레시피 저장소에는 탐색 3 빌딩 블록을 사용하여 일반적인 탐색 문제를 해결하는 방법의 예가 포함되어 있습니다.