SwiftUI + MVVM Input/Output 패턴을 사용해서 학습하다가 Apple 이 자체적으로 뷰에게 View + ViewModel 의 기능을 할 수 있도록 만들어주었기에 코드를 작성하면 작성할수록 뷰모델의 목적에 맞지 않는 점점 이상한 코드들이 쌓이기 시작해서 TCA 를 학습하고자 합니다.
우선 모든 것이 처음이니 저만의 단위대로 구조를 잘라서 작성해보겠습니다.
1. Feature
Reducer Protocol 을 채택하는 Feature 라는 하나의 단위로
State, Action, body 를 묶어서 사용하고 있습니다.
2. View
Feature 라는 단위를 제네릭으로 갖는 store 를 프로퍼티로 가집니다.
store 에 접근하여 send 로 액션을 방출할 수 있습니다.
프리뷰를 사용하여 View 에 존재하는 store 를 초기화해서 넣어줍니다.
추가로, Text 를 ExtractView 를 사용하여 아래로 내리고,
count 프로퍼티는 store.count 를 받아서 뷰에 보여지게끔 해보기도 했습니다.
3. APP
타입 프로퍼티를 통해 store 를 생성합니다.
_printChanges 메서드를 통해 액션을 감지하고, 콘솔에서 확인할 수 있습니다.
생성한 store 타입 프로퍼티를 뷰에 넣어주는 형식으로 진행했습니다.
최종적으로 카운팅 + - 를 진행하며, 콘솔에 액션이 찍히는 모습을 확인할 수 있네요.
'iOS' 카테고리의 다른 글
SwiftUI + TCA 튜토리얼 3 - Timer + Cancellable (0) | 2024.05.17 |
---|---|
SwiftUI + TCA 튜토리얼 2 - Network (0) | 2024.05.16 |
단락평가(short-Circuit Evaluation) (0) | 2024.05.07 |
복잡한 ViewController 에서의 VIewDidLoad or init 순서 (0) | 2024.05.01 |
서버에서 주는 에러메세지도 디코딩으로 받아보기 (0) | 2024.04.24 |