Skip to content

refactor(platform): 앱 루트를 Navigation 3 NavDisplay로 전환 #1702

Closed
4 of 4 issues completed
Closed

Description

@1hyok

작업 유형

refactor — 동작 변경 없는 구조·책임·경계 개선

주 담당 모듈

platform — Android 앱·CI·빌드·릴리스·저장소 운영

개요

#1698에 함께 있던 피처·플랫폼 소관 로컬 그래프 이관과 앱 전체 루트 교체를 분리한다. 이 이슈는 각 소관 그래프가 Navigation 3 계약으로 준비된 뒤 앱 루트의 Navigation 2 런타임을 제거하고 NavDisplay로 전환하는 최종 통합만 소유한다.

작업 범위:

완료 조건:

  1. refactor(platform): 소관 그래프를 Navigation 3 로컬 스택으로 이관 #1698, refactor(setting): 설정 흐름을 Navigation 3 로컬 스택으로 이관 #1695, refactor(timeletter): 타임레터 흐름을 Navigation 3 로컬 스택으로 이관 #1696, #1697이 모두 닫혀 있고 완료 결과가 최신 통합 head에 반영되어 있다.
  2. 앱의 단일 루트 소유자가 Navigation 3 NavDisplay이며 Navigation 2와 이중 소유하지 않는다.
  3. 주요 진입·탭 복귀·인증·로그아웃·process recreation·predictive back 회귀가 통과한다.
  4. entry 제거 시 해당 범위 ViewModel과 리소스가 정리된다.
  5. Navigation 2 루트와 불필요한 의존성이 제거된다.
  6. 관련 단위·스크린샷·계측 테스트와 전체 CI가 통과한다.

의존 관계:

자식 이슈

참고

2026-10-04 분리

완료 조건 5 중 지금의 Nav2 코드도 쓰지 않는 hilt-navigation-compose 직접 의존 4줄과 적용 모듈 0개인 AndroidFeatureConventionPlugin 은 루트 전환과 무관해 #2247 로 뗐다. 루트 Nav2 런타임과 android-navigation-compose 제거는 여기 남는다.

Activity

  1. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    area:platformCI·빌드·릴리스·저장소 운영 영역
    on Sep 1, 2026
  2. 1hyok commented on Sep 26, 2026

    @1hyok
    CollaboratorAuthor

    루트를 NavDisplay 로 바꿀 때 App Link 매칭도 함께 판정한다.

    Navigation 3 가 2026-09-23 정식판 1.2.0 에서 공식 딥링크 API 를 냈다. androidx.navigation3.runtime.deeplink 의 DeepLinkRequest, DeepLinkUri, DeepLinkMatcher 이고, 내장 매처로 경로 패턴용 UriDeepLinkMatcher 와 합성 백스택용 BackStackMatcher 가 있다(딥링크 가이드, 1.2.0 릴리스 노트). 이 저장소는 아직 1.1.6 이다.

    #2093 의 AfternoteAppLinkParser 는 이 API 가 없던 때 엔진에 묶이지 않으려고 직접 쓴 경로 매칭이다. 전환할 때 볼 것은 둘이다.

    • 경로를 목적지로 옮기는 매칭과 착지 백스택을 UriDeepLinkMatcher, BackStackMatcher 로 옮길 수 있는지.
    • 옮겨도 앱이 따로 지켜야 하는 것. 계약 밖 링크의 거절(query, userinfo, 끝 슬래시 등)과 거절 사유 리포팅, 로그인 관문 뒤 재개다. 공식 매처가 이 거절을 표현하지 못하면 파서의 거절 단계만 매처 앞에 남긴다.
  3. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 14, 2026
  4. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:platformCI·빌드·릴리스·저장소 운영 영역refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions