Coordinator란
사전정의: 진행 담당자
예) 배우의 코디네이터(옷을 만들고 고친다)
- 하나 이상의 ViewController 에게 지시를 내리는 객체
- ViewController 에서 하던 화면이동에 대한 역할을 분리하여 Coordinator 가 관리
ViewController 내에서 화면이동을 직접하면,
- 이동해야 하는 ViewController 에 대한 의존성이 생긴다
- 화면이동을 연쇄적으로 해야할때 불편
- ViewController 가 Massive 해지는데 일조
Coordinator 특징
- coordinator 는 하나이상의 ViewController 를 보유
- ViewController 는 coordinator 에 대한 delegate reference 가 있다
- delegate 를 통해 coordinator 에게 화면 이동해 달라고 이벤트를 전달하고, coordinator 는 이벤트를 받아 화면 이동을 한다
- coordinator 는 child coordinators 배열을 가지고 있다
- child coordinator 는 parent coordinator 에 대한 delegate reference 가 있다
- ⁉️ delegate reference 가 왜 있는 걸까…? 공부 더 필요
Coordinators Redux
https://khanlou.com/2015/10/coordinators-redux/
- AppDelegate 에서 MainCoordinator을 가지고 있고 시작한다
- MainCoordinator 는 앱의 rootViewController 를 설정한다 :
Application Controller 패턴
- MainCoordinator 는 ViewController 를 생성하고 구성한다
- 하위 작업을 하기위해 새로운 하위 coordinator 를 생성할 수 있다