TCA | The Composable Architecture

torinunna·2023년 7월 31일

Swift

목록 보기
2/2

일관적이고 이해하기 쉽게 어플리케이션을 만들기 위해 탄생한 라이브러리 by Point-Free

✅ Core Tools

  • State Management
    간단한 값 타입들로 어플리케이션의 상태를 관리
    화면에서 일어나는 변화를 다른 화면에서 즉시 관찰하기 위한 화면 간 상태 공유

  • Composition
    큰 기능을 여러 개의 독립된 작은 모듈로 분리
    쪼개진 모듈을 쉽게 재결합해 기능 구성

  • Side Effects
    앱의 특정 부분이 테스트 가능하며 이해하기 쉽게 외부와 소통

  • Testing
    아키텍처 내부 기능 테스트 뿐만 아니라 통합 테스트 가능
    사이드 이펙트가 앱에 어떤 영향을 끼치는 지, 비즈니스 로직이 기대대로 잘 작동하는지 보장할 수 있는 end-to-end 테스트 가능

  • Ergonomics
    위의 특징을 간단한 API로 실현

🔖 기본 구성

  • State: 로직을 수행하고 UI를 그리기 위해 필요한 데이터 타입

  • Action: 사용자 행동, 알림 등 앱에서 발생할 수 있는 모든 타입

  • Reducer: 주어진 Action으로 State를 업데이트 하기 위해 구현된 함수
    API 요청과 같은 실행해야 하는 모든 결과를 반환

  • Store: 기능을 실제로 실행하는 공간
    Reducer와 Effect를 실행하기 위해 모든 사용자 행동은 store로 전송
    State변화를 관찰하여 UI 업데이트

🎯 개발 타겟

Combine 프레임워크를 dependency로 갖고 있기 때문에 최소 iOS 13, macOS 10.15, Mac Catalyst 13, tvOS 13 그리고 watchOS 6 이상 필요
만약 더 이전 OS를 지원해야 하는 경우는 ReactiveSwift 버전이나 RxSwift 사용

▼ 출처
https://github.com/pointfreeco/swift-composable-architecture
https://medium.com/@Jager-yoo/swiftui-the-composable-architecture-tca-%EC%9E%85%EB%AC%B8-95b69b8c6c16

profile
ios가 궁금해!

0개의 댓글