제품 소식

Jetpack Navigation 3 안정화

전문 길이: 3분
Don Turner
개발자 관계팀 엔지니어

Jetpack Navigation 3 버전 1.0이 안정화되었습니다 🎉. 지금 바로 프로덕션 앱에서 사용해 보세요. JetBrains는 이미 KotlinConf 앱에서 사용하고 있습니다.

Navigation 3은 Jetpack Compose 상태를 수용하기 위해 처음부터 빌드된 새로운 탐색 라이브러리입니다. 백 스택을 완전히 제어하고 탐색 상태를 유지하며 적응형 레이아웃 (예: 목록 세부정보)을 쉽게 만들 수 있습니다. JetBrains의 크로스 플랫폼 버전도 있습니다.

새 라이브러리가 필요한 이유

원래 Jetpack Navigation 라이브러리 (현재 Nav2)는 7년 전에 설계되었으며 원래 목표를 잘 달성하고 반복적으로 개선되었지만 현재 앱이 빌드되는 방식은 근본적으로 변경되었습니다. 

이제 선언적 UI를 사용한 반응형 프로그래밍이 일반적입니다. Nav3은 이 접근 방식을 수용합니다. 예를 들어 NavDisplay (화면을 표시하는 Nav3 UI 구성요소)는 Compose 상태로 지원되는 키 목록 (각각 화면을 나타냄)을 관찰하고 목록이 변경되면 UI를 업데이트합니다.

nav-display.png

Nav2에는 자체 내부 상태가 있으므로 탐색 상태에 관한 단일 정보 소스를 확보하기 어려울 수도 있습니다. Nav3을 사용하면 자체 상태를 제공하므로 완전히 제어할 수 있습니다.

마지막으로 유연성과 맞춤설정 가능성을 높여 달라는 요청이 있었습니다. 단일 모놀리식 API를 사용하는 대신 Nav3은 복잡한 기능을 만들기 위해 결합할 수 있는 더 작고 분리된 API('빌딩 블록')를 제공합니다. Nav3 자체는 이러한 빌딩 블록을 사용하여 잘 정의된 탐색 사용 사례에 적절한 기본값을 제공합니다. 

이 접근 방식을 사용하면 다음 작업을 할 수 있습니다.

출시 블로그에서 디자인과 기능에 관해 자세히 알아보세요. 출시 블로그.

Navigation 2에서 이전

이미 Nav2, 특히 Navigation Compose를 사용하고 있다면 Nav3으로 이전을 고려해야 합니다. 이를 지원하기 위해 이전 가이드가 있습니다. 주요 단계는 다음과 같습니다.

  1. 탐색 3 종속 항목을 추가합니다.
  2. 탐색 경로를 업데이트하여 NavKey를 구현합니다. 경로가 Nav3을 사용하기 위해 이 인터페이스를 구현할 필요는 없지만 구현하는 경우 Nav3의 rememberNavBackStack 함수를 활용하여 영구 백 스택을 만들 수 있습니다.
  3. 탐색 상태를 보유하고 수정하는 클래스를 만듭니다. 여기에 백 스택이 보관됩니다.
  4. NavController를 이러한 클래스로 바꿉니다.
  5. NavHost의 NavGraph에서 entryProvider로 대상을 이동합니다.
  6. NavHost를 NavDisplay로 바꿉니다.

AI 에이전트 이전 실험

AI 에이전트를 사용하여 이전 가이드를 읽고 프로젝트에서 단계를 실행해 볼 수 있습니다. Android 스튜디오의 Gemini 에이전트 모드에서 이를 시도하려면 다음 단계를 따르세요.

  • 이 가이드의 Markdown 버전을 프로젝트에 저장합니다.
  • 이 프롬프트를 에이전트에 붙여넣습니다 (하지만 Enter 키를 누르지 마세요). '이 프로젝트를 Navigation 3으로 이전합니다.'
  • @migration-guide.md를 입력합니다. 이렇게 하면 가이드가 에이전트의 컨텍스트로 제공됩니다.

항상 AI 에이전트가 변경한 사항을 주의 깊게 검토하세요. 실수가 있을 수 있습니다.

사용자 또는 에이전트의 실적을 알려주세요. 여기에서 의견을 보내주세요.

일반적인 시나리오를 위한 유용한 탐색 레시피

일반적이지만 미묘한 사용 사례를 위한 레시피 저장소가 있습니다. 여기에서는 Nav3 API를 특정 방식으로 결합하는 방법을 보여주므로 특정 요구사항에 맞게 레시피를 선택하거나 수정할 수 있습니다. 레시피가 인기가 있는 것으로 확인되면 미묘하지 않은 부분을 핵심 Nav3 라이브러리 또는 애드온 라이브러리로 '졸업'하는 것을 고려할 것입니다. 

code-recipes.png

현재 다음과 같은 19개의 레시피가 있습니다.

현재 딥 링크 레시피Koin 통합을 작업 중이며 다른 레시피도 많이 계획되어 있습니다. JetBrains의 엔지니어Compose 멀티플랫폼 버전의 레시피도 게시했습니다.

레시피를 보고 싶은 일반적인 사용 사례가 있다면 레시피 요청을 제출하세요

요약

Nav3을 시작하려면 문서레시피를 확인하세요. 또한 다음을 비롯한 기술 콘텐츠를 한 주 내내 확인하세요.

  • 모듈화, 애니메이션, 적응형 레이아웃을 다루는 API에 관한 심층 분석 동영상
  • Nav3을 빌드한 엔지니어와 함께하는 실시간 AMA (Ask Me Anything)

Nav3 Spotlight Week는 2025년 12월 1일에 시작됩니다. 


항상 문제가 발견되면 여기에서 제출해 주세요

작성자:

계속 읽기