SwiftUI - TCA Tutorial 한글번역 (2023 ver) (3)
< Section 3 - 앱으로 통합하기 >
* 개요
- 이제 Composable Architecture의 기능을 SwiftUI 뷰에 통합했습니다. 프리뷰에서도 이제 이것을 확인할 수 있게 되었죠.
- 다음은 엔트리 포인트부터 시작해서 완전한 앱의 기능을 작동시키는 방법을 알아보겠습니다.
- 이 방법에 대해 학습한다면 시뮬레이터나 실기기에서도 작동시킬 수 있게 됩니다.
* Step 1
- 보통 앱의 엔트리 포인트는 파일 이름이 ~App.swift 로 끝나는 파일에 존재합니다. 아래와 같은 구조의 코드를 가지고 있어요.
* Step 2
- 앱의 엔트리 포인트를 변경하기 위해 CounterView를 생성하고 store 를 지난 프리뷰 구현에서 했던 것처럼 작성합니다.
* Step 3
- 앱에 힘을 불어 넣어주는 'Store'는 오직 단 한번만(only be created a single time) 생성되어야 한다는 점은 생각보다 꽤 중요합니다.
- 대부분의 앱에선 Root에 해당하는 WindowGroup 안에 바로 'Store'를 생성하기 적절하지만, static 변수로 따로 빼서 아래와 같이 넣어주는 방법도 있을 수 있어요.
* 다음 단계로 넘어가기 전에..
- TCA의 또 다른 강력한 힘은 Reducer가 제공하는 _printChanges(_:) 메서드 입니다. SwiftUI가 제공하는 것과 유사하죠.
- 사용될 때 이 메서드는 Reducer가 처리하는 모든 action을 콘솔에 출력하고, action을 처리한 후에 어떻게 state가 변경되었는지 출력합니다.
* Step 4
- 앱의 엔트리 포인트를 업데이트하기 위해 reducer에 _printChanges(_:) 를 추가합니다.
* Step 5
- 앱을 시뮬레이터에서 실행해서 작동시킨다음, +, -를 탭해보면서 콘솔에 어떻게 찍히는지 확인해보세요!
* Section 3 마무리 + 다음 섹션 예고
- 여러분이 구현한 기능들 내에서 외부 세계와 커뮤니케이션하는 방법과 다시 여러분의 구현한 기능으로 외부 세계로부터 데이터를 피드백 받는 방법에 대해 알아볼게요.