You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
안녕하세요! NextRoom 프로젝트의 PR을 검토하게 되어 기쁩니다.
NR-148 회원가입 및 로그인 화면을 Compose로 마이그레이션하는 작업은 프로젝트의 현대화 전략에 매우 중요한 단계입니다.
제출해주신 코드 변경사항을 면밀히 검토했습니다.
🟢 전반적인 평가
이 PR은 회원가입 및 로그인 화면을 Jetpack Compose로 성공적으로 마이그레이션했습니다. 기존 View Binding 및 Orbit MVI 기반의 구현을 Flow 기반의 Compose UI로 전환하는 과정에서 프로젝트의 Clean Architecture 원칙과 최신 Android 개발 모범 사례를 잘 따르고 있습니다. ViewModel은 Orbit MVI에서 Flow 기반의 상태 관리로 전환되었으며, UI는 Compose 컴포저블로 재작성되었습니다. 몇 가지 사소한 개선 사항이 있지만, 전반적으로 매우 긍정적인 변경입니다.
🟢 긍정적: Orbit MVI의 sideEffect 및 state 인터페이스/데이터 클래스, 그리고 View Binding을 위한 XML 레이아웃 파일들이 제거되었습니다. 이는 Compose 마이그레이션의 핵심적인 부분이며, 프로젝트의 Orbit MVI 단계적 폐지 전략에 완벽하게 부합합니다.
🟢 긍정적: Orbit MVI (BaseViewModel, container, intent, reduce, postSideEffect)에서 Flow 기반 (NewBaseViewModel, MutableStateFlow, MutableSharedFlow)으로 성공적으로 마이그레이션되었습니다. 이는 ViewModel의 상태 관리 현대화에 있어 매우 중요한 변경입니다.
🟢 긍정적: UI 상태는 _uiState (MutableStateFlow)로, 일회성 이벤트는 _uiEvent (MutableSharedFlow)로 명확하게 분리하여 관리하고 있습니다.
🟢 긍정적: 상태 업데이트는 불변성을 유지하며 _uiState.update { it.copy(...) }를 통해 이루어지고 있습니다.
🟢 긍정적: adminRepository.loggedIn Flow를 stateIn으로 수집하여 로그인 상태를 지속적으로 관찰하는 방식이 좋습니다.
🟢 긍정적: checkEmailSaved()가 ViewModel의 init 블록에서 호출되어 초기 상태 설정이 적절하게 이루어집니다.
💡 Suggestion: inputEmail 함수에서 사용자가 이메일을 입력할 때 hasError 상태를 false로 초기화하는 것이 일반적인 사용자 경험입니다. 현재는 inputPassword에서만 hasError = false를 설정하고 있습니다.
Action: inputEmail 함수에도 _uiState.update { it.copy(currentEmailInput = email, hasError = false) }를 추가하여 에러 상태를 초기화하도록 합니다.
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
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.
회원가입 및 로그인 화면을 compose로 마이그레이션한다 !
순차적 마이그레이션 중 😉
특이사항 없음