SwiftUI

TCA(0) : The Composable Architecture 개요

Phililip
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://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture

 

Documentation

 

pointfreeco.github.io

 

 

# 참고

- https://github.com/pointfreeco/swift-composable-architecture

 

GitHub - pointfreeco/swift-composable-architecture: A library for building applications in a consistent and understandable way,

A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind. - GitHub - pointfreeco/swift-composable-architecture: A library for bu...

github.com

 


이번 글은 여기서 마무리.

 

 

 

반응형