
iOS의 상태관리 기반 단방향 아키텍쳐인 TCA(The Composable Architecture)는 View에서 이벤트가 발생할때 ObservableObject 프로토콜을 준수하는 ViewStore에서 특정 이벤트에 대한 Action을 send 하고 이를 Reducer에서 처리하게 됩니다. Reducer에서는 이후 이벤트 처리를 위해 Effect를 반환하는데요. 이 Effect는 Combine framework의 Publisher로 되어있습니다. 다양한 Combine Opeartor를 사용할 수도 있는데요. Publisher를 구독하고 메모리 해제하는 코드는 어디에 있는지, 어떤식으로 돌아가고 있을지 보겠습니다. 먼저, iOS TCA가 이벤트 발생을 할때 어떤식으로 동작하는지 간단하게 알고 싶으싣다면,..

TCA는 Point-free에서 제안한 아키텍쳐로 The Composable Architecture라고 하며, Store의 State 변화에 따라 View를 업데이트해주는 상태 기반의 단방향 아키텍쳐입니다. 저는 개인적으로 개발한 앱에 TCA를 도입하여 사용하고 있습니다. 또한 화면 전환 이벤트를 편리하게 관리하기 위해 TCACoordinator를 함께 사용하여 개발하고 있습니다. 오늘은 제가 개발한 코드 일부를 보면서 TCA의 간략한 동작 방식을 돌아보고자 합니다. 최상위 뷰부터 해서 순차적으로 그림을 그려보는 것보다는 하위 뷰의 단편적인 이벤트 발생을 기점으로 TCA의 동작방식을 돌아보려고 합니다. 언제든 포스팅 내용에 대한 피드백 부탁드립니다. TCA에서 각각의 View는 Store를 갖는다. TC..

The Composable Architecture를 만든 poinitfree github repo, WithViewStore 설명 링크 ▼ ComposableArchitecture - WithViewStore A structure that transforms a store into an observable view store in order to compute views from store state. pointfreeco.github.io 오늘은 ComposableArchitecture의 WithViewStore에 대해서 알아보겠습니다. 모든 내용은 위 문서를 참고하여 공부하고 기록하였습니다. 곧바로 포스팅 시작하겠습니다. The Composable Architecture WithViewStore 개요..

The Composable Architecture, Reducer Summary 요약 Composable Architecture의 구성 요소 중 하나인 Reducer의 Quick Help(내부 코드의 주석을 통해 볼 수도 있습니다.)를 통해 볼 수 있는 Reducer의 개요내용을 보겠습니다. Reducer는 현재 어플리케이션의 상태를 다음 상태(State)와 액션(Action)에 맞게 어떻게 진화시킬지를 묘사합니다. 또한 Store에서 이후 어떤 Effect를 실행해야하는지를 정의합니다. Reducer는 각 Action에 맞게 Effect를 반환하는데, 반환되는 Effect에 따라 그 다음의 Action을 수행하게됩니다. Declaration Reducer 선언방식 Reducer는 3개의 제네릭 인자를 ..
- Total
- Today
- Yesterday
- 부스트코스
- Protocol
- swift
- swift string
- swift 문자열
- 프로그래머스
- swift 기초
- publisher
- swift reduce
- ios
- SwiftUI
- Collection
- 개발자문서
- swift알고리즘
- 백준swift
- 김프매매
- 백준알고리즘
- CoreML
- 알고리즘문제
- createML
- swift문제
- 자연어처리
- 컬렉션
- 프로그래머스swift
- uikit
- swift언어
- 스위프트
- Swift 알고리즘
- 알고리즘
- 프로토콜
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |