Si Jong Tech Blog
close
프로필 배경
프로필 로고

Si Jong Tech Blog

  • 분류 전체보기 (239)
    • ◽️ Programming (239)
      • T I L (90)
      • Swift 문법 (22)
      • UIKit (18)
      • SwiftUI (12)
      • TCA (6)
      • RxSwift (7)
      • iOS (35)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
TCA - Effect & Test 에 대해서 조금 더 알아보기

TCA - Effect & Test 에 대해서 조금 더 알아보기

앞서 1주차 스터디에서 앱의 상태를 나타내는 State와 이를 변경하는 Action, 이 Action의 기능을 구현하고 상태를 변경하는 Reducer를 알아봤다. 이번에는 Effect에 대해서 알아볼 예정인데. Action이 반환하는 타입이자, Action을 거친 모든 결과물을 칭한다. 그 중 외부에서 어떤 처리가 일어나 예상하지 못한 결과물을 얻는 Side Effect에 대해서 까지 알아볼 예정이다. 이에 더해 이러한 비동기 작업이나 외부 작용에서 발생하는 Side Effect를 우리 앱의 로직에 통합하는 역할인 Store까지 알아보자! Effect의 구현과 활용Action에 따른 결과가 바로 EffectEffect는 Reducer의 액션이 반환하는 타입으로 액션을 거친 모든 결과물이라고 말할 수 있다..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2025. 4. 9.
  • textsms
SwiftUI TCA - Dependency, Reducer, Effect에 대해서 알아보자!!

SwiftUI TCA - Dependency, Reducer, Effect에 대해서 알아보자!!

Dependency (의존성)우리가 통상 개발하는 앱은 카운터 앱에 자동 카운트 기능을 넣고 싶을수도 있고, 이보다 더 복잡하고 많은 네트워크 코드가 들어가는 상황이 생긴다. 그럴때 Reducer 안에서 이러한 의존성을 가리키는 Dependency가 생기는 경우는 어떻게 처리해야할 지 알아보자. 예를 들어 카운터 앱에 자동 카운트 기능을 넣기 위해 Timer가 필요하게 된다. 이럴 땐 TCA에서 기본적으로 지원하는 Timer의 Dependency를 사용할 수 있다.@Dependency(\.continuousClock) var clock또한, API를 포함해 네트워크 코드들은 통신하는 Client와 의존성이 생기게 된다. 이때 Timer보다 더 복잡한 과정이 필요하지만 이 내용은 추후에 제대로 다시 설명해..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 11. 21.
  • textsms
Share Run TCA 로직 구현

Share Run TCA 로직 구현

ShareRun을 만들면서 TCA를 활용해 구현하는 방식 중 State를 변경하는 로직과 Action이 발생할 때 상태 변화 및 이팩트를 처리하는 메서드를 정의한다.@Reducerstruct RunningFeature { @ObservableState struct RunningState: Equatable { var record: RunningRecord? // 러닝 기록을 저장할 상태 var isRunning: Bool = false // 러닝 중인지 여부 var currentLocation: CLLocationCoordinate2D? // 현재 위치 var mapRegion: MKCoordinateRegion? // 지도에 표시할 영..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 9. 30.
  • textsms
SwiftUI TCA (3) - Binding

SwiftUI TCA (3) - Binding

SwiftUI는 @State , @ObservedObject 등 프로퍼티 래퍼를 통해 양방향 바인딩을 구현하고, State 관리를 간편하게 할 수 있는 기능을 제공한다. 추가적으로 Binding은 @State 프로퍼티 래퍼와 함께 View간 상호 작용을 위해 사용되고 이는 양방향 통신을 가능하게 한다. Binding을 사용하므로써 State 변화를 UI에 즉시 반영하면서 코드 작성이 간결하다는 장점이 있지만 State 관리가 복잡해질수록 변화에 따른 Side Effects를 관리하는데 어려움이 있다. 이런 이유로 전체 비즈니스 로직을 담당하고 내부 State 변화를 관리하는 TCA에서는 SwiftUI의 기본 @Binding 래퍼로 State를 관리하기에 적합하지 않을 수 있다. 이러한 문제를 해결하기 위..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 9. 23.
  • textsms
SwiftUI TCA (2) - Effect

SwiftUI TCA (2) - Effect

Effect의 구현과 활용 - Action에 따른 결과 : EffectEffect는 Reducer의 액션이 반환하는 타입으로, 액션을 거친 모든 결과들을 칭한다. 그 중 외부에서 어떠한 처리가 일어나서 얻게된 예상과 다른 결과물들을 Side Effect라고 한다. Effect는 외부 시스템과 상호작용하는 작업을 나타내는데, 이를 통해 앱의 State가 변경된다. State를 직접 변경할 때의 Action과 달리, Effect는 비동기적인 작업을 수행하고 그 결과를 Action으로 반환하여 State에 반영하기 위해 사용 된다. 즉, Effect는 특정 Action을 실행한 후 그 결과에 따라 새로운 Action을 생성하고 이를 통해 State를 업데이트하는 역할을 담당한다. 네트워크 호출, 데이터 로딩,..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 9. 15.
  • textsms
SwiftUI TCA (1)

SwiftUI TCA (1)

TCA의 기본 개념TCA는 현재 상태가 어떤지 파악하고 이를 관리하기 쉽게 하기 위해 고안된 단방향 아키텍처이다. 여기서 단방향 아키텍처라는 부분에 집중해보자. 먼저 MVVM패턴에 대해서 알아보면 MVVM 또한 단반향 아키텍처로서 View가 ViewModel의 상태를 관찰하고 해당 상태에 따라 업데이트 된다. View는 자기 자신을 렌더링하고 유지하기 위해 ViewModel에게 자신의 상태와 로직을 전달한다. 따라서 View는 그 상태와 로직이 어떤 방식으로 변형되는지 알지 못해야 한다. 그러나 SwiftUI와 같은 양방향 데이터 바인딩을 지원하는 프레임워크를 사용하면 View가 ViewModel에서의 요청을 받아와서 추가적인 작업을 해야하는 경우가 발생한다. 이를 방지하기 위해 @Published 속성..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 9. 9.
  • textsms
  • navigate_before
  • 1
  • navigate_next
프로필 로고

Si Jong Tech Blog

전체 카테고리
  • 분류 전체보기 (239)
    • ◽️ Programming (239)
      • T I L (90)
      • Swift 문법 (22)
      • UIKit (18)
      • SwiftUI (12)
      • TCA (6)
      • RxSwift (7)
      • iOS (35)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
최근 글
인기 글
최근 댓글
태그
  • #uikit
  • #오블완
  • #티스토리챌린지
  • #tableView
  • #TIL
  • #MVC
  • #알고리즘
  • #project
  • #IOS
  • #swift
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바