일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 알고리즘
- dispatchqueue
- 스위프트
- widgetkit
- 위젯킷
- 멋사
- 영남대
- Protocol
- 멋쟁이사자처럼
- 웹
- TCA
- Swift
- swift concurrency
- 1일1알골
- uikit
- 문법
- 컴퓨터그래픽스
- 백준
- 리액트
- 스유
- widget
- 운영체제
- cs
- spritekit
- 대외활동
- 네트워크
- composable architecture
- c++
- SwiftUI
- 후기
- Today
- Total
목록2024/08 (5)
맛동산이
swift concurrency와 result에 대해서 사용을 하려고 하다보니 Error타입에 대해서 계속해서 등장을하는데 한번도 제대로 공부해본적이 없는것 같아서 정리해보려고 한다.Error스위프트에서 Error는 Error라는 프로토콜을 준수하는 값 타입으로 표현된다.Error는 빈 프로토콜이라서 Error를 던져주기 위해서는 Error를 그냥 쓰면 안되고 enum으로 Error를 정의해서 던져줘야 제대로된 Error를 채택하는 에러를 ㅋㅋ( 말이 웃기네 ㅋㅋㄹㅋㅋ) 던져준다.그냥 간단하게 Error자체로는 못씀.enum으로 Error를 정의해줘야 사용가능Error 타입 정의enum NetworkError: Error { case 종류1 case 종류2 case 종류3 //.....
OptionSet은 Swift에서 바이너리 플래그값을 관리하거나 한개의 플래그 값을 조절할때 사용한다.즉 OptionSet은 어떠한 플래그값을 여러개로 나누어서 관리할때 사용한다는것이다.What is OptionSet? 옵션셋은 비트마스크를 이용해 여러가지 옵션을 다룰때 채택하는 프로토콜이다.옵션셋을 사용하여 다양한 옵션을 구현하려면 다음과 같이 사용하면 된다. struct ActionSheetOptions : OptionSet { let rawValue: Int static let report = ActionSheetOptions([]) static let edit = ActionSheetOptions(rawValue: 1 각 옵션은 shift 연산으로 구분된다.Why Optio..
Dependency란dependency란 네트워크 통신, 파일 엑세스, 타이머, 스레드 등 타입이나, 함수로 이루어진 컨트롤할수 없는, 시스템 외부에서 일어나는 상호작용을 의미한다.이러한 디펜던시를 제대로 컨트롤하지 못하면 예상치 못한 사이드이펙트가 발생할수 있다.TCA는 https://github.com/pointfreeco/swift-dependencies 라는 라이브러리를 사용하고 있으며, 해당 라이브러리의 장점은 다음과 같다.읽기쉽고, 테스트 코드짜기 쉬움swiftui 프리뷰와 동작을 잘하며, simulator를 통해서도 동작을 잘함3rd party 라이브러리, (파이어베이스 같은) 것을 연동할때 컴파일 타임이 적게 든다.TCA 에서 사용할수 있는 dependency Value값은 다음 페이지에서..
기본적인 비동기var body: some ReducerOf { Scope(state: \\.login, action: \\.login) { Login() } Reduce { state, action in switch action { case .test1: return .run { 여기 안에서 비동기를 처리 해준다. } case .fetch(.success): return .none case .fetch(.failure): return .noneTCA에서는 비동기 처리를 해줄..
💡 TCA는 단방향 아키텍쳐로, 상태관리가 용이하고, 데이터 흐름이 명확하게 정의되어 있기 때문에 단방향으로 이해하기 쉽습니다.TCA 의 장점모듈화: TCA는 애플리케이션을 작은 모듈로 나누어 관리할 수 있도록 도와줍니다. 각 모듈은 독립적으로 테스트하고, 유지보수할 수 있어 코드의 가독성과 재사용성이 향상됩니다.예측 가능성: 상태의 변화가 명확하게 정의되어 있어, 애플리케이션의 동작을 예측하기 쉽습니다. 모든 상태 변화는 액션을 통해 이루어지며, 이는 디버깅과 유지보수를 용이하게 만듭니다.테스트 용이성: TCA는 테스트를 쉽게 할 수 있도록 설계되었습니다. 상태, 액션, 리듀서를 독립적으로 테스트할 수 있어, 각 모듈의 동작을 검증하는 데 유리합니다.상태 관리: TCA는 중앙 집중식 상태 관리를 제공..