Skip to content
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

[IDLE-000] Refactor, 라우터 및 Splash모듈 개발 #80

Merged
merged 16 commits into from
Oct 2, 2024

Conversation

J0onYEong
Copy link
Contributor

@J0onYEong J0onYEong commented Oct 2, 2024

변경된 점

  • Router도입

Router도입

스크린 네비게이션 역할을 코디네이터로 부터 분리하기 위해 Router프로토콜 및 구현체를 구현하였습니다.
라우터는 앱내 네비게이션 조율에 관한 책임을 가집니다.

Router생성으로 인해 발생한 이점

코디네이터 역할 명확화

코디네이터는 화면에 필요한 요소들을 생성하고 필요에 따라 라우터를 호출하는 역할을 수행합니다.
Router와 화면(View, ViewModel)사이를 조율하는 역할만을 수행합니다.

재사용가능한 UI관리

기존의 구현사항의 경우 재사용가능한 기능에 대해 모든 ViewController가 특정 ViewController를 상속하는 구현법을 채택했습니다.
해당 방법이 가지는 문제는 아래와 같습니다.

  • ViewController가 네비게이션에 일부관여해야한다는 점에서 책임의 경계가 불명확 해집니다.
  • 상속을 통해 화면을 구현해야 함으로 부모 객체에 의존성이 생깁니다.

Router로 네비게이션 역할을 분리함으로써, 위 문제들을 해결할 수 있습니다.

@J0onYEong J0onYEong merged commit 21a18cb into develop Oct 2, 2024
1 check passed
@J0onYEong J0onYEong deleted the feature/Router branch October 2, 2024 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant