Conversation
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.
콘 안녕하세요. @protocorn93
RxSwift와 MVVM-C를 적용한 프로젝트입니다.
RxSwift와 MVVM-C 아키텍쳐를 제대로 사용하고 있는지, 문제점 또는 개선방향에 대해 여쭙고자 리뷰 요청드렸어요.
현업에 계셔서 바쁘실텐데 흔쾌히 응해주셔서 정말 감사합니다. 🙏🙏
대략적인 내용이라도 피드백 주시면 큰 도움이 될 것 같아요.
아래에 프로젝트 구조를 간단히 나타냈습니다.
MVVM-C
ViewController(View)는 화면을 그리는 역할을 담당하고,ViewModel은 데이터 및 비즈니스 로직 관리, 화면 전환 요청 등을 담당하도록 역할을 분리했습니다.ViewModel의 Nested Type으로 Input 및 Output을 추가했습니다.Input을 통해, View로 전달할 데이터는Output을 통해 Binding 했습니다.Coordinator
TabBarViewController를 띄우는
Coordinator및NavigationController(이하 부모 Coordinator 및 Navigation), 그리고 특정 TabBar 내부에서 화면을 이동하는Coordinator및NavigationController(이하 자식 Coordinator 및 Navigation)을 분리했습니다. 또한 부모 Coordinator 및 자식 Coordinator는Delegate Pattern을 활용하여 소통하도록 했습니다.또한 사용자가 게임중일 때 몰입할 수 있도록 Game 화면에서는
부모 Coordinator를 통해 NavigationBar 및 TabBar가 숨겨지도록 했고, 게임 대기/결과 화면에서 다시 보이도록 구현했습니다. 그리고함께/혼밥메뉴확인 탭의자식 Coordinator에는 Game 관련 화면을 관리하는 별도의GameCoordinator를 추가하여 중복 코드를 최소화하고, 코드 재사용성을 개선했습니다.이외 의문점이 있으시면 언제든 연락 부탁드려요!