-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/#16 runtime navcontroller navigate #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
핵심 기능인 백스택 생성 로직이 깔끔하게 잘 구현된 것 같네요!!
더 보완할 부분은 없는 것 같습니다ㅎㅎ 간단한 질문 하나만 남겨뒀는데 확인하시고 바로 머지해도 좋을 것 같습니다!
고생하셨습니다. 🚀🚀🚀
| * Wisp의 기본 인스턴스를 제공하고 초기화하는 역할을 담당합니다. | ||
| */ | ||
| companion object { | ||
| private var instance: Wisp? = null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 경쟁 상태가 일어날.. 가능성은 없겠죠? 멀티 스레드 관련해서 잘 아는 편이 아니라서 여쭤봅니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
일단 추후에 고민 해보겠습니다...지금대로면 크게 가능성은 없다고 생각해요!
… streamline route handling
…to simplify route pattern handling
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환경에서 검증하기 어렵다는 기술적 한계를 확인했습니다.