Swift 5

TCA - Binding

개요 SwiftUI의 바인딩 타입은 애플리케이션의 서로 다른 부분 간의 통신을 용이하게 합니다. 따라서 SwiftUI에서 가장 중요한 유형 중 하나입니다. 이를 통해서 애플리케이션 중 일부의 변경사항을 즉시 다른 부분에 반역할 수 있고, @ObservedObject, @State 프로퍼티 래퍼 또는 environment 값을 사용하여 궁극적으로 바인딩 하도록 돕습니다. SwiftUI에서의 바인딩은 프로퍼티 래퍼로 양방향 바인딩을 사용하여 상태를 처리합니다. TCA의 가장 큰 특징은 단방향 데이터 흐름을 채택하는 것인데, TCA의 Store는 SwiftUI의 UI 컨트롤과 양방향 바인딩을 이루어야고, Store에 있는 State와 Action은 단방향 데이터 흐름을 갖도록하는 해야합니다. 이러한 것을 가능..

Swift 2023.08.17

TCA - Environment는 어디갔나?

Environment는 어디갔나? TCA는 State, Action, Reducer, Environment, View, Store를 기본 구성으로 갖는다. 이전 포스트에 위와 같은 말을 한 적이 있다. 근데, 예제를 설명하면서 State, Action, Reducer, View, Store 객체에 대한 설명은 했지만 Environment 객체는 찾아볼 수 없었다. (의존성이 객체 형식으로 Reducer에 주입된 것이 아니라 코드로 이어붙이기했다.) 이는 TCA가 최신 버전으로 Release 되면서 TCA 아키텍처를 코드로 정의할 때 아키텍처의 일부 구성이 변경되었기 때문이다. 지난 게시글의 예제 화면에 숫자와 이 숫자를 증가할 수 있는 + 버튼, 감소할 수 있는 - 버튼, 더 다양한 행동을 위해 탭 하면..

Swift 2023.07.10

TCA(The Composable Architecture)란?

최근에 TCA에 관련되어 자료조사할 일이 생겨서 TCA 공식 문서와 공식 업데이트, 개발 방향에 대해 공부한 것을 정리해보려고 한다. TCA pointfree에서 Brandon Williams와 Stephen Ceils가 만들어낸 아키텍처 TCA는 The Composable Architecture의 약자로서, 구성, 테스트 및 인체 공학적으로 개발자가 일관적으로 이해하여 애플리케이션을 구축할 수 있도록 도와주는 라이브러리이다. SwiftUI, UIKit 등 모든 Apple 플랫폼(iOS, macOS, tvOS 및 watchOS)에서 사용할 수 있다. The Composable Architecture can be used to power applications built in many frameworks,..

Swift 2023.07.06

Swift 네트워크 추상화 - URL 처리방법

RESTful API를 사용하는 네트워킹 통신을 공부하다보니, 네트워크 추상화 단계에 URL을 별도로 처리하는 코드가 있어 궁금증이 들었다. 1. 왜 URL을 별도로 처리해야하는가? 2. URLComponents, URLQueryItem 타입들은 각각 무슨 용도이며, 어떻게 사용되는가? 무조건 공식문서부터 확인했지만 잘 이해가 되지 않았다. 따라서 위 궁금증에 답을 하기 위해서 먼저 기초를 다시 확인할 필요가 있었다. 1. URL 먼저, URL의 개념을 알기 전 URI를 확인하고 넘어가야했다. URI는 우리말로 통합 자원 식별자를 칭한다. 즉, URI는 인터넷 상의 리소스 '자원 자체'를 의미한다고 할 수 있다. URL은 인터넷 상의 리소스가 존재하는 '위치'를 나타내기 위한 규약이다. 즉, URL은 '..

Swift 2023.05.09

객체지향 생활체조

객체지향 생활체조 한 메서드에 오직 한 단계의 들여쓰기만 합니다. else 표현을 사용하지 않습니다. 모든 원시 값과 문자열을 포장합니다. 한 줄에 점을 하나만 사용합니다. 이름을 줄여쓰지 않습니다. (축약금지) 모든 엔티티를 작게 유지합니다. 3개 이상의 스위프트 기본 데이터타입(Int, String, Double 등) 프로퍼티를 가진 타입을 구현하지 않습니다. 일급 콜렉션을 사용합니다. getter / setter 를 구현하지 않습니다. 1. 한 메서드에 오직 한 단계의 들여쓰기만 합니다. 함수 한 개에 여러 들여쓰기 블록 구문을 사용하지 않는다. 여러 개의 블록 구문을 사용하게 되면 해당 함수의 사용 목적에 모호성이 발생함 조건문 안에 조건문이 있고, 그 조건문 안에는 반복문이 있고, … 이런 구조..

Swift 2023.05.05