일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- raywenderlich
- RxSwift
- TCA
- 프로그래머스
- 패스트캠퍼스
- realm
- Lv2
- swift
- node.js
- arkit
- SwiftUI
- XCTest
- 백준
- combine
- rxcocoa
- visionOS
- UIKit
- designpattern
- BOJ
- reactorkit
- CollectionView
- ios
- WWDC24
- Swfit
- Xcode
- Flutter
- Kuring
- tableView
- SnapKit
- MVVM
- Today
- Total
목록apple/TCA (15)
lgvv98
[TCA] HigherOrderReducers (ReusableFavoriting) 목차 - 개념설명 - 예제코드 # 개념설명 이번에는 재사용 가능한 하나의 컴포넌트를 도메인, 로직, 뷰에 이르기까지 어떻게 처리하는지를 소개. 이번 기능은 "좋아요" 기능을 가지고 있으며, 버튼 액션을 통해 자신의 상태도 변경 가능하다. 해당 버튼을 누르면 UI에 즉시 반영되고 DB를 변경하거나, API 요청을 하는 등 필요한 작업을 수행하기 위한 효과가 발생. 실행에 1초가 걸리고 25% 확률로 실패하도록 예제를 만들었으며, 실패할 경우 상태가 롤백되고 경고 알럿이 나타남. # 예제코드 // MARK: - Reusable favorite component // 🟠 1. 재사용 가능한 FavoriteState를 선언 st..
[TCA] HigherOrderReducers #1 (Recursion) 목차 - 이번 주제에 대한 간략 설명 - 예제 코드 # 이번 주제에 대한 간략 설명 이번에는 재귀를 통해 View를 관리 하는 방법을 알아볼 예정 # 예제 코드 주요하게 살펴볼 부분 1. State를 rows로 다시 들고 있음으로써 Nested 형태를 구성 2. Action에는 간접 참조를 위해 indirect enum으로 선언 3. Reducer에 forEach(...) { Self() } 형태로 참조 struct Nested: Reducer { struct State: Equatable, Identifiable { let id: UUID var name: String = "" var rows: IdentifiedArrayOf =..
[TCA] Navigation TCA의 Navigation에 대해서 공부하고 정리해보자. 서비스 개발에서 사용하는 화면전환 방식으로는 몇 가지가 있는데, 우선적으로 자주 사용하는 것들을 정리하고, 추가적으로 필요한 것들이 있을 때마다 포스팅을 업데이트 해보자! 이번에 알아볼 목차! - 일반적인 sheet 화면전환 - navigationDestination, popover, sheet 사용 - NavigationStack (feat. Path & destination) - 여러개의 뷰를 한번에 이동시켜야 할 경우 - struct Path: Reducer { ... } - NavigationStack의 View 단에서 처리 - StackElementID - ScreenA - 스스로 dismiss - Scre..
[TCA] Effect #6 (WebSocket) 목차 - 이번에 할 실습에 대한 설명 - 웹소켓 개념에 대해서 설명은 생략 - 나의 이전 작업에서의 웹소켓과 연관지어 생각해보기 - TCA WebScoket 예제 # 이번에 할 실습에 대한 설명 URLsession의 웹소켓용 API를 위한 간단한 Wrapper를 만들어 소켓 서버에 접속하여 테스트한 후 메시지를 전송 후 소켓 서버는 즉시 메시지를 클라이언트에게 회신. - 나의 이전 작업에서의 웹소켓과 연관지어 생각해보기 내가 개발을 처음 공부할 당시에는 웹소켓을 이렇게 많이 다루리라고 생각하지 못했는데, 메인으로 사용하고 있음. 처음 이론이 아닌 웹소켓을 접하게 된 것은 Kuring프로젝트에서 검색파트를 구현하면서 처음 알게 되었는데, 당시에는 StarS..
[TCA] Effect #5 (Timers) 목차 - Timers 주제에 대해서 간단히 알아보기 - Timers와 관련한 예제 # Timers 주제에 대해서 간단히 알아보기 @Dependency(\.continuousClock) var clock 위의 디펜던시 예제처럼 사용할 수 있음 Swift Clocks 라이브러리에서 제공하는 Helper인 클럭에 .timer 메서드를 사용 비동기 코드로 시간을 처리하기 위한 `AsyncSequence` 친화적인 API를 제공 # Timers와 관련한 예제 // MARK: - Feature domain struct Timers: Reducer { struct State: Equatable { var isTimerActive = false var secondsElaps..
[TCA] Effect #4 (Refreshable) 목차 - Refreshable에 대한 - Refreshable을 사용하는 예제 # Refreshable에 대한 이번에는 List를 리프레시 하는 방법에 대해서 알아보자 이번에는 버튼을 클릭해서 API 콜하는게 아니라 리프레시를 통해 API를 콜 할 예정이다. 특이점으로는 viewStore.send(..., animation: ) 으로 animation을 건네주어 볼 예정! # Refreshable을 사용하는 예제 // MARK: - Feature domain struct Refreshable: Reducer { struct State: Equatable { var count = 0 var fact: String? } enum Action: Equata..