728x90
안녕하세요.
올해 3월쯤, iOS 앱 개발 미션이 들어왔어요.
SwiftUI로 개발하기로 결정했고, 어떤 모듈을 사용할까 고민하던 중 The Composable Architecture (일명 TCA) 라는 것을 알게 되었습니다.
짧은 고민 끝에, TCA를 채용하기로 결정했고 현재 앱 개발이 완료된 상태입니다.
그래서 한동안은 실제 앱 개발을 통해 얻은 TCA 관련 지식과 활용 방법에 대해서 시리즈로 정리해 볼까 해요.
이번 글은 TCA 개요 정도에서 글을 마무리하고, 다음 TCA 시리즈부턴 실제 코드를 보면서 글을 써보겠습니다.
## Overview
공식 명칭은 The Composable Architecture 이고, 줄여서 TCA라고 말합니다.
TCA는 SwiftUI 뿐만 아니라 UIKit에서도 사용할 수 있고, Apple 플랫폼 모두를 지원합니다.
TCA가 말하는 핵심은 총 5가지가 있어요.
- State management : 상태를 공유하는 방법. 이를 통해 특정 화면에서의 상태 변화를 다른 화면에서도 알 수 있게 한다.
- Composition : 큰 기능을 작은 기능으로 나눈다.
- Side effects : 테스트하기 쉽고 이해하기 쉽도록 구현한다.
- Testing : 작은 기능으로 나눈 파트들을 통합 테스트하는 방법
- Ergonomics : 간단한 API 제공
뭐.. 이건 나중에 직접 써보면서 느껴보면 될 것 같네요ㅎㅎ
## TCA 구성
크게 4가지로 나눌 수 있습니다.
- State : UI를 그리거나 내부 비즈니스 로직을 수행할 때 필요한 데이터들을 모아놓은 곳
- Action : 사용자 interaction, notification 등 현재 기능(feature)에서 생길 수 있는 모든 액션
- Reducer : 어떤 Action으로 인해 State를 변경시키는 함수
- Store : 실제 기능이 동작하는 곳. Action을 Store로 전송해서 Reducer를 실행하고, Store에선 State를 관찰하여 UI를 업데이트한다.
## 설치 방법
현재는 SPM만 지원하고 있습니다.
(SPM 사용하는 방법은 따로 설명 안 하겠습니다..ㅎ)
## 최소지원버전
내부적으로 Combine을 사용하기 때문에 iOS 13 이상부터만 사용할 수 있습니다.
## Documentation
설명도 친절하게 되어 있어서 자주 살펴보면 좋습니다.
(실제로 TCA로 개발해 보시면.. 자주 보게 될 겁니다..;;)
# 참고
- https://github.com/pointfreeco/swift-composable-architecture
이번 글은 여기서 마무리.
반응형
'SwiftUI' 카테고리의 다른 글
TCA(2) : TaskResult, run (0) | 2023.06.20 |
---|---|
TCA(1) : ReducerProtocol, StoreOf, WithViewStore (0) | 2023.06.13 |
SwiftUI View Lifecycle에 대해 알아보자. (0) | 2023.05.28 |
overlay + matchedGeometryEffect로 Hero Anmiation 비슷하게 만들기 (0) | 2023.05.24 |
커스텀 LabelStyle (0) | 2023.03.28 |