[IDLE-000] Refactor, 라우터 및 Splash모듈 개발 #80
Merged
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.
변경된 점
Router도입
스크린 네비게이션 역할을 코디네이터로 부터 분리하기 위해 Router프로토콜 및 구현체를 구현하였습니다.
라우터는 앱내 네비게이션 조율에 관한 책임을 가집니다.
Router생성으로 인해 발생한 이점
코디네이터 역할 명확화
코디네이터는 화면에 필요한 요소들을 생성하고 필요에 따라 라우터를 호출하는 역할을 수행합니다.
Router와 화면(View, ViewModel)사이를 조율하는 역할만을 수행합니다.
재사용가능한 UI관리
기존의 구현사항의 경우 재사용가능한 기능에 대해 모든 ViewController가 특정 ViewController를 상속하는 구현법을 채택했습니다.
해당 방법이 가지는 문제는 아래와 같습니다.
Router로 네비게이션 역할을 분리함으로써, 위 문제들을 해결할 수 있습니다.