본문 바로가기
Updates.

Navigation Compose 2.8.8 -> 2.8.9 변경 사항 및 적용 방법

by h4r3 2025. 3. 25.
반응형

 

1. Navigation Compose 2.8.9 업데이트 개요

Android Jetpack의 Navigation Compose 2.8.9 버전이 2025년 3월 12일에 출시되었습니다.

이번 업데이트에서는 몇 가지 중요한 버그 수정이 이루어졌으며, 특히 딥 링크(Deep Link) 관련 동작이 개선되었습니다.

이번 글에서는 2.8.8에서 2.8.9로 업데이트하면서 변경된 내용과 코드 적용 방법을 자세히 알아보겠습니다.

 


 

2. Navigation Compose 2.8.9 주요 변경 사항

🔹 1) 딥 링크 일치 로직 개선

이전 버전에서는 일부 딥 링크 조건이 충족되지 않아도 일치하는 것으로 간주되는 문제가 있었습니다. 하지만 2.8.9에서는 NavDeepLink의 URI, Action, MIME 유형이 정확히 일치해야만 탐색이 가능하도록 변경되었습니다.

✅ 변경 전 (2.8.8 이하)

val deepLink = navController.createDeepLink()
    .setDestination(R.id.profile_dest)
    .setAction(Intent.ACTION_VIEW) // 액션이 다르면 일치하지 않아야 하지만 일부 경우 일치로 간주됨
    .setMimeType("image/*") // MIME 타입이 다를 경우에도 동작할 가능성이 있음
    .createPendingIntent()

위 코드에서 setAction(Intent.ACTION_VIEW)과 setMimeType("image/*")가 정확히 일치하지 않아도 일부 조건만 충족하면 탐색이 가능했던 문제가 있었습니다.

✅ 변경 후 (2.8.9)

val deepLink = navController.createDeepLink()
    .setDestination(R.id.profile_dest)
    .setAction(Intent.ACTION_VIEW) // 정확한 일치 필요
    .setMimeType("image/*") // 정확한 일치 필요
    .createPendingIntent()

이제 모든 조건이 완전히 일치해야만 탐색이 동작합니다. 따라서, 기존 코드에서 예상치 못한 네비게이션 실패가 발생할 가능성이 있으므로, 반드시 확인 후 업데이트해야 합니다.

 


🔹 2) navigate("profile/{userId}") 경로에서 매개변수 정확한 일치 필요

2.8.9 버전에서는 navigate("profile/{userId}")와 같은 경로에서 userId 매개변수의 값이 정확히 일치해야만 탐색이 성공적으로 이루어집니다. 이전 버전에서는 값이 일치하지 않아도 탐색이 성공하는 경우가 있었으나, 2.8.9에서는 정확한 매개변수 값이 필요합니다.

✅ 변경 전 (2.8.8 이하)

navController.navigate("profile/{userId}") // userId 값이 정확히 일치하지 않아도 탐색이 가능

✅ 변경 후 (2.8.9)

navController.navigate("profile/{userId}") // userId 값이 정확히 일치해야만 탐색이 가능

이 변경 사항은 기존 코드에서 매개변수 값이 올바르게 전달되는지 점검해야 함을 의미합니다.

userId 값이 정확히 전달되고 있는지 확인 후 업데이트를 진행해야 합니다.

 


3. Navigation Compose 2.8.9 적용 방법

1️⃣ Gradle 파일에서 종속성 업데이트

build.gradle.kts (Module: app)에서 다음과 같이 Navigation Compose 버전을 2.8.9로 업데이트합니다.

dependencies {
    implementation("androidx.navigation:navigation-compose:2.8.9")
}

2️⃣ 기존 코드 점검 및 수정

딥 링크 관련 코드가 정확한 일치 조건을 충족하는지 점검

  • setAction(), setMimeType()을 설정한 경우 반드시 정확한 값이 사용되었는지 확인
  • navigate("profile/{userId}") 형태의 네비게이션 경로가 정상적으로 작동하는지 점검

실제 앱에서 탐색 동작을 테스트

  • 업데이트 후 실제 디바이스 또는 에뮬레이터에서 딥 링크를 통한 탐색이 정상적으로 작동하는지 확인

 


 

4. 결론

Navigation Compose 2.8.9 업데이트는 딥 링크의 일치 조건을 보다 엄격하게 적용하여, 예기치 않은 탐색 오류를 방지할 수 있도록 개선되었습니다. 이로 인해 일부 기존 코드에서 탐색이 실패할 수도 있으므로, 반드시 업데이트 후 테스트를 진행하는 것이 중요합니다.

 

📌 2.8.9 업데이트 핵심 요약:

✅ NavDeepLink가 URI, Action, MIME 유형이 정확히 일치해야 탐색 가능

✅ 기존 코드에서 탐색이 정상적으로 동작하는지 반드시 확인😊

반응형