[TCA] 05. TCA Dependency
·
iOS/TCA
Dependency?Dependency.. 의존성.. iOS 개발을 하면서 수없이 들어봤을 것이다. 간략하게 이야기 해보자면, 의존성이란 어떤 객체가 자신의 역할을 수행하기 위해 다른 객체에 의존하는 관계를 이야기한다. TCA에서 Dependency를 어떻게 관리하는지 이야기 하기 위해서는 의존성에 대한 기초 개념을 알고 있어야하니 간단하게 알아보자. class UserViewModel { let network = NetworkManager()}예를 들어, 위 코드와 같이 네트워크를 요청하는 ViewModel은 NetworkManager 없이는 동작할 수 없다. 이 경우 UserViewModel은 NetworkManager에 의존하고 있다. iOS 개발에서 오랫동안 의존성은 보통 아래와 같은 방식으로..
[iOS] Lottie를 커스텀 해보자
·
iOS/iOS
Lottie는 JSON 기반의 애니메션을 다양한 플랫폼에서 손쉽게 사용할 수 있게 해주는 라이브러리이다. 탭탭 프로젝트를 진행하면서 Lottie를 사용하게 되었는데, 디자인 요구사항을 구현하기에는 기본 제공되는 Lottie API만으로는 한계가 있었다. 이 글에서는 SwiftUI 환경에서 Lottie를 어떻게 래핑하고, 커스텀하는지를 작성해보려고 한다.SwiftUI 환경에서 Lottie를 래핑하는 방법Lottie는 기본적으로 UIKit 기반으로 동작하는 라이브러리이다. LottieAnimationView 역시 UIView를 상속받고 있기 때문에, SwiftUI 환경에서는 그대로 사용할 수 없고 래핑이 필요하다. SwiftUI에서는 UIKit View를 사용하기 위해 UIViewRepresentable ..
[TCA] 04. TCA의 네비게이션 방식에 대해 알아보자.
·
iOS/TCA
TCA 공식 문서에 스택 기반 네비게이션 가이드가 있으니 참고하면 좋을 것 같다. Documentation pointfreeco.github.io StackState?StackState는 TCA에서 네비게이션 스택을 표현하기 위한 상태 타입이다. SwiftUI의 NavigationStack과 함께 사용되어 상태 기반 네비게이션을 구현한다. 쉽게 설명하자면, SwiftUI의 NavigationStack을 상태로 옮겨놓은 것이라고 생각하면 된다. 1. 배열과 유사한 구조var path: StackState = .init()state.path.append(.detail(.init())) // pushstate.path.removeLast() // popstate.path..