Feat/#16 runtime navcontroller navigate#17
Merged
Conversation
…dd argument bundle creation for NavDestination
…tePattern methods for route handling
… URI with error handling
…dle building in Wisp.kt
…rn matching logic
jm991014
reviewed
Nov 24, 2025
Collaborator
jm991014
left a comment
There was a problem hiding this comment.
핵심 기능인 백스택 생성 로직이 깔끔하게 잘 구현된 것 같네요!!
더 보완할 부분은 없는 것 같습니다ㅎㅎ 간단한 질문 하나만 남겨뒀는데 확인하시고 바로 머지해도 좋을 것 같습니다!
고생하셨습니다. 🚀🚀🚀
| * Wisp의 기본 인스턴스를 제공하고 초기화하는 역할을 담당합니다. | ||
| */ | ||
| companion object { | ||
| private var instance: Wisp? = null |
Collaborator
There was a problem hiding this comment.
여기서 경쟁 상태가 일어날.. 가능성은 없겠죠? 멀티 스레드 관련해서 잘 아는 편이 아니라서 여쭤봅니다!
Owner
Author
There was a problem hiding this comment.
일단 추후에 고민 해보겠습니다...지금대로면 크게 가능성은 없다고 생각해요!
jm991014
approved these changes
Nov 24, 2025
… streamline route handling
…to simplify route pattern handling
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
wisp-runtime모듈에NavDeepLinkBuilder를 사용하여 화면 깜빡임 없이 동적으로 백스택을 생성하고 탐색하는 핵심 API를 구현했습니다.Related Issue
Closes #6
ScreenShot(Option)
N/A
Details
NavDeepLinkBuilder기반 탐색 로직 구현:wisp-runtime의Wisp클래스 내부에NavDeepLinkBuilder를 사용하여List<Any>형태의 라우트 객체로부터 백스택을 원자적으로 생성하고 즉시 탐색하는navigateTo메소드를 구현했습니다.리플렉션 제거를 위한 아키텍처 리팩토링:
WispRegistrySpec인터페이스에getRoutePattern(route: Any): String?메소드를 추가했습니다. KSP가 생성하는WispRegistry는 이 메소드를 통해,@Serializable객체에 해당하는 라우트 패턴(클래스의 FQCN)을 리플렉션 없이 반환합니다.Wisp클래스의navigateTo메소드는 이getRoutePattern을 호출하여NavGraph에서NavDestination을 찾도록 수정되었습니다.API 단순성 유지:
Wisp.initialize()호출 후, 기존 계획대로navController.navigateTo(uri)확장 함수를 그대로 사용하여 라이브러리를 이용할 수 있습니다.Routable객체 변환,NavDeepLinkBuilder실행)은 라이브러리 내부에 캡슐화됩니다.테스트 전략 변경:
PendingIntent.send()를 사용하는 로직은TestNavHostController환경에서 검증하기 어렵다는 기술적 한계를 확인했습니다.