Jetpack Navigation 3 버전 1.0이 안정화되었습니다 🎉. 지금 바로 프로덕션 앱에서 사용해 보세요. JetBrains는 이미 KotlinConf 앱에서 이를 사용하고 있습니다.
Navigation 3은 Jetpack Compose 상태를 수용하기 위해 처음부터 다시 빌드된 새로운 탐색 라이브러리입니다. 백 스택을 완전히 제어할 수 있고, 탐색 상태를 유지하는 데 도움이 되며, 적응형 레이아웃 (예: 목록-세부정보)을 쉽게 만들 수 있습니다. JetBrains의 크로스 플랫폼 버전도 있습니다.
새 라이브러리가 필요한 이유
원래의 Jetpack Navigation 라이브러리 (현재 Nav2)는 7년 전에 설계되었으며, 원래의 목표를 잘 달성하고 반복적으로 개선되었지만, 현재 앱이 빌드되는 방식은 근본적으로 변경되었습니다.
선언형 UI를 사용한 반응형 프로그래밍이 이제 표준이 되었습니다. Nav3는 이 접근 방식을 수용합니다. 예를 들어 NavDisplay (화면을 표시하는 Nav3 UI 구성요소)는 Compose 상태로 지원되는 키 목록 (각 키는 화면을 나타냄)을 관찰하고 목록이 변경되면 UI를 업데이트합니다.
또한 Nav2는 자체 내부 상태를 가지고 있으므로 탐색 상태에 대한 단일 정보 소스를 갖기 어려울 수 있습니다. Nav3에서는 자체 상태를 제공하므로 완벽하게 제어할 수 있습니다.
마지막으로, 더 많은 유연성과 맞춤설정 기능을 요청하셨습니다. Nav3는 단일 모놀리식 API를 사용하는 대신, 결합하여 복잡한 기능을 만들 수 있는 더 작고 분리된 API('구성 요소')를 제공합니다. Nav3 자체는 이러한 구성 요소를 사용하여 잘 정의된 탐색 사용 사례에 적합한 기본값을 제공합니다.
이 접근 방식을 통해 가능한 작업은 다음과 같습니다.
- 전체 및 개별 수준에서 화면 애니메이션 맞춤설정
- 여러 창을 동시에 표시하고 Scenes API를 사용하여 유연한 레이아웃을 만듭니다.
- 맞춤 동작을 원하는 경우 Nav3 구성요소를 자체 구현으로 쉽게 대체
출시 블로그에서 디자인과 기능에 대해 자세히 알아보세요.
Navigation 2에서 이전
이미 Nav2, 특히 Navigation Compose를 사용하고 있다면 Nav3로 이전하는 것이 좋습니다. 이를 지원하기 위해 이전 가이드가 제공됩니다. 주요 단계는 다음과 같습니다.
- 탐색 3 종속 항목을 추가합니다.
- NavKey를 구현하도록 탐색 경로를 업데이트합니다. Nav3를 사용하기 위해 경로에서 이 인터페이스를 구현할 필요는 없지만, 구현하는 경우 Nav3의 rememberNavBackStack 함수를 활용하여 영구 백 스택을 만들 수 있습니다.
- 탐색 상태를 보유하고 수정하는 클래스를 만듭니다. 여기에 백 스택이 보관됩니다.
- NavController를 이러한 클래스로 대체합니다.
- NavHost의 NavGraph에서 entryProvider로 대상을 이동합니다.
- NavHost를 NavDisplay로 바꿉니다.
AI 에이전트 마이그레이션 실험
AI 에이전트를 사용하여 이전 가이드를 읽고 프로젝트에서 단계를 수행하는 실험을 해볼 수 있습니다. Android 스튜디오의 Gemini 에이전트 모드에서 이 작업을 시도하려면 다음 단계를 따르세요.
- 이 가이드의 마크다운 버전을 프로젝트에 저장합니다.
- 에이전트에 'Migrate this project to Navigation 3 using ' 프롬프트를 붙여넣습니다 (Enter 키는 누르지 않음).
- @migration-guide.md를 입력합니다. 그러면 가이드가 에이전트에 컨텍스트로 제공됩니다.
항상 그렇듯이 AI 에이전트가 변경한 사항을 신중하게 검토하세요. 실수가 발생할 수 있습니다.
귀하 또는 상담사의 실적에 관한 의견을 듣고 싶습니다. 여기에서 의견을 보내주세요.
일반적인 시나리오를 위한 맛있는 탐색 레시피
일반적이지만 미묘한 사용 사례의 경우 레시피 저장소가 있습니다. 이는 Nav3 API를 특정 방식으로 결합하는 방법을 보여주며, 특정 요구사항에 맞게 레시피를 선택하거나 수정할 수 있습니다. 레시피가 인기를 끌면 미묘한 차이가 없는 부분을 핵심 Nav3 라이브러리 또는 부가기능 라이브러리로 '승격'하는 것을 고려할 것입니다.
현재 다음을 포함한 19개의 레시피가 있습니다.
- 여러 백 스택
- 모듈화 및 종속 항목 삽입
- ViewModel에 탐색 인수 전달 (Koin 사용 포함)
- 이벤트 및 공유 상태별로 화면에서 결과 반환
현재 딥 링크 레시피와 Koin 통합을 진행 중이며 그 외에도 다양한 계획이 있습니다. JetBrains의 엔지니어가 Compose 멀티플랫폼 버전의 레시피도 게시했습니다.
레시피를 확인하고 싶은 일반적인 사용 사례가 있다면 레시피 요청을 제출하세요.
요약
Nav3를 시작하려면 문서와 레시피를 확인하세요. 또한 일주일 내내 다음과 같은 기술 콘텐츠가 제공되니 놓치지 마세요.
- 모듈화, 애니메이션, 적응형 레이아웃을 다루는 API에 관한 심층 분석 동영상입니다.
- Nav3를 개발한 엔지니어와 함께하는 실시간 무엇이든 물어보세요 (AMA) 세션
Nav3 Spotlight Week는 2025년 12월 1일에 시작됩니다.
문제가 발생하면 언제든지 여기에서 신고해 주세요.
-
제품 소식2025년 Android 생태계는 휴대전화를 넘어 크게 성장했습니다. 현재 개발자는 폴더블, 태블릿, XR, Chromebook, 호환 자동차를 포함한 5억 대 이상의 활성 기기에 도달할 수 있습니다.
Fahd Imtiaz • 읽는 데 2분 소요 -
제품 소식에이전트형 개발이 가속화됨에 따라 Android 엔지니어링은 흥미로운 새로운 영역에 도달하고 있습니다. 즉, 보조 코드 완성에서 개발자의 지시에 따라 엔드 투 엔드로 실행되는 에이전트로 전환되고 있습니다. 사용하는 모델과 에이전트를 완전히 자유롭게 선택하고 유연하게 사용할 수 있습니다.
Jason Buchel • 읽는 데 3분 소요 -
제품 소식오늘 Google은 '단순한 스토어 이상의 가치'라는 비전을 다음 단계로 발전시키는 방법을 공유했습니다. 월간 활성 사용자 수가 2억 5천만 명이 넘는 개인 홈 베이스인 내 페이지 탭부터 7억 개 이상의 게이머 프로필을 연결하는 통합 게임 플랫폼에 이르기까지 Google Play는 사용자가 있는 곳이라면 어디에서나 사용자를 만나고 있습니다.
Paul Feng • 읽는 데 3분 소요
Android 개발 관련 최신 정보를 이메일로 받아 보세요.