NR-122 타이머와 힌트 화면이 viewModel을 공유해서 사용하도록 리팩토링한다.#126
NR-122 타이머와 힌트 화면이 viewModel을 공유해서 사용하도록 리팩토링한다.#126juhwankim-dev wants to merge 2 commits intodevelopfrom
Conversation
왜? 힌트 화면에서 진행률만 확인하고 힌트 차감없이 되돌아가는 기능이 새로 개발될 예정임 기존에는 힌트를 차감하고 다음 화면으로 넘어가는 방식이였으나 앞으로는 힌트 화면에서 데이터의 변경을 담당하게 될거임. 근데 이걸 setFragmentResult로 하면 다소 코드가 너저분해지고 나중에 기능이 확장될 것을 생각하면 이 방식은 누가 누구에게 무엇을 넘겼는지 파악하기 어려워짐 어떻게? argument를 넘기는 방식에서 graph viewModel을 사용해 관리하는 방법으로 변경
… into feature/NR-122
🤖 AI Code Review (Gemini)안녕하세요, NextRoom PR에 대한 코드 리뷰를 시작하겠습니다. PR 제목: NR-122 타이머와 힌트 화면이 viewModel을 공유해서 사용하도록 리팩토링한다. 이번 PR은 전반적으로 변경 사항은 잘 구현되었으며, 제시된 목표를 달성합니다. 💡 Suggestion (제안)File: presentation/src/main/java/com/nextroom/nextroom/presentation/ui/main/GameViewModel.kt @HiltViewModel
class GameSharedViewModel @Inject constructor(
savedStateHandle: SavedStateHandle
) : ViewModel() {
// ...
}
다만, 💡 Suggestion (제안)File: presentation/src/main/java/com/nextroom/nextroom/presentation/ui/main/GameViewModel.kt /**
* Clear hint when returning to timer screen
*/
fun clearCurrentHint() {
_currentHint.value = null
}
향후 💡 Suggestion (제안)File: presentation/src/main/java/com/nextroom/nextroom/presentation/ui/hint/HintFragment.kt // Shared ViewModel에서 hint 수집
viewLifecycleOwner.repeatOnStarted {
gameSharedViewModel.currentHint.collect { hint ->
hint?.let { viewModel.setHint(it) }
}
}
// Shared ViewModel에서 subscribeStatus 수집
viewLifecycleOwner.repeatOnStarted {
gameSharedViewModel.subscribeStatus.collect { subscribeStatus ->
viewModel.setSubscribeStatus(subscribeStatus)
}
}
다만, 만약 이 초기 상태가 중요하거나 UI 깜빡임이 우려된다면, 긍정적인 측면 (Positive Aspects)
최종 의견이번 PR은 수고하셨습니다! This review was automatically generated using Gemini AI. Please use your judgment when addressing the feedback. |
AI Review 워크플로우를 테스트하기 위한 PR입니다.
as-is) 타이머 화면에서 힌트 화면으로 넘어갈 때 argument를 넘겨준다.
to-be) 하나의 viewModel을 같이 공유해서 사용하도록 한다. (graph viewModel)
왜?
힌트 화면에서 진행률만 확인하고 힌트 차감없이 되돌아가는 기능이 새로 개발될 예정임
기존에는 힌트를 차감하고 다음 화면으로 넘어가는 방식이였으나
앞으로는 힌트 화면에서 데이터의 변경을 담당하게 될거임.
근데 이걸 setFragmentResult로 하면 다소 코드가 너저분해지고
나중에 기능이 확장될 것을 생각하면 이 방식은 누가 누구에게 무엇을 넘겼는지 파악하기 어려워짐