iOS 개발 기록

Coordinator Pattern 본문

Architecture, Design Pattern

Coordinator Pattern

택꽁이 2023. 2. 6. 13:27
728x90

Coordinator Pattern

Date: 2022년 12월 5일
Tags: 화면전환

📄 목차

Coordinator란?

  • 하나 이상의 ViewController에 지시를 내리는 객체.
  • ViewController간에 서로 이동할 때에 push, present 등 화면 전환을 Coordinator 클래스로 분리해 관리.
  • ViewController들이 서로 분리되어 쉽게 재사용할 수 있음.

특징

  • Coordinator 별로 하나 이상의 ViewController을 보유한다.
  • 각 Coordinator은 일반적으로 start라고 불리는 메서드로 ViewController을 표시한다.
  • 각 ViewController에는 Coordinator에 대한 delegate가 있다.
  • 각 Coordinator에는 child coordinator 배열을 가지고 있다.
  • 각 Coordinator에는 parent coordinator에 대한 delegate reference가 있다.

단점

  • 뷰를 만들때 마다 Coordinator 매커니즘을 작성해야 한다.
  • Delegate 패턴 때문에 아주 많은 양의 보일러 플레이트 코드가 존재.

sample project

StudyiOS

참고

Coordinator

간단한 예제로 살펴보는 iOS Design/Architecture Pattern: Coordinator - Basic

실무예제

화면 전환을 해결해 준 Coordinator 패턴

Coordinator + Combine framework

Coordinator Pattern using Apple Combine Framework

Implement Coordinator Design Pattern Using Combine

관련 라이브러리

https://github.com/QuickBirdEng/XCoordinator

https://github.com/RxSwiftCommunity/RxFlow

'Architecture, Design Pattern' 카테고리의 다른 글

Clean Architecture  (0) 2022.07.14
Clean Architecture - SOLID 원칙  (0) 2022.07.14
MVC, MVVM  (0) 2022.05.31