MVI 패턴에 익숙하진 않지만, 공부를 목적으로 MVI 패턴에 대해 정리해봤다.
우선, MVI의 핵심은 단방향 아키텍처다.
자세한 개념 설명은 다른 좋은 블로그들이 많으니 생략하고, 이 글에선 내가 MVI 패턴을 SwiftUI와 함께 어떻게 구성했는지를 중점적으로 다뤄보려 한다. 특히 ObservableObject
와 Swift 5.9의 @Observable
매크로와의 관계를 중심으로.
다음은 내가 MVI 패턴을 Swift의 @Observable
매크로를 활용해 구성한 방식이다.
예시로 View의 이름을 MyView
라고 하면, 구성은 아래와 같다:
MyViewIntentProtocol
: View → Intent로 전달할 함수들을 정의한 프로토콜MyViewStateDataProtocol
: View가 의존하는 데이터들을 정의한 프로토콜MyViewStateProtocol
: Intent → State로 전달할 함수들을 정의한 프로토콜MyViewIntentProtocol
과 MyViewStateDataProtocol
을 소유MyViewStateProtocol
을 weak
으로 소유@Observable
로 상태 변경 감지)