IOS/SwiftUI 4

TCA - 네트워크 요청하기

안녕하세요! 미니입니다. 오늘은 TCA에서 네트워크를 처리하는 방법에 대해서 정리해보려고 합니다. TCA를 알아보면서 사이드 이팩트에 대해서 이야기하면서 잠시 이야기 했었습니다. (안보신 분들은 TCA - 기본 에서 보시면 됩니다.) 사이드 이팩트에 대해서 잠깐 이야기 해보고 넘어가보도록 하죠! 사이드 이팩트 TCA에서 사이드 이팩트라는 용어는 어플리케이션 바깥 세상에서 일어나는 일이다. 링크 TCA 공식 문서를 바탕으로 사이드 이팩트에 대한 정의를 추론해보면 저희가 작성하고 있는 어플리케이션 바깥 세상에 대해서 이야기합니다. 즉, 네트워크를 통해서 새로운 데이터를 받아오는 작업도 사이드 이팩트가 됩니다. 직접 코드를 작성하기 전에 어떤 형식의 앱인지 소개드릴게요! 우측 네비게이션 바에 있는 버튼들은 상..

IOS/SwiftUI 2023.10.18

TCA - What is ViewStore

안녕하세요! 미니입니다. 이번에는 TCA로 프로젝트를 진행하면서 학습한 내용을 정리해보려고 합니다. 많은 것을 정리하는 것은 아니고, 개념적인 내용에 대해서 설명하려고 합니다. TCA를 조금 써보면 ViewStore라는 친구를 바로 만나게 되는데 내부적으로 어떤 동작이 일어나는 지 궁금해져서 학습한 내용을 공유해보려고 합니다. 우선 공식 문서 부터 조져보자구욧! ViewStore는 상태의 변화와 액션 발생에 대해서 관찰할 수 있는 객체이다. 일반적으로 SwiftUI의 뷰나 UIView, UIViewController 타입에서 사용할 수 있다. 하지만, 상태를 관찰하고 액션을 전달하는 것이 적합한 곳이면 어디든 사용할 수 있다. 상태를 관찰할 수 있다는 말에서 Combine과 SwiftUI에서 많이 보던 ..

IOS/SwiftUI 2023.10.08

TCA 기본

안녕하세요! 미니입니다. TCA를 학습한 후, 실제 프로젝트에 적용한 경험을 공유하기 위해서 글을 쓰게 됩니다. TCA 아키텍처와 관련된 포스팅을 시리즈로 작성할 예정입니다! 오늘은 TCA가 무엇이고, 왜 핫한지에 대해서 이야기해보려고 합니다. (핫한 이유가 무엇인지..!) TCA란? TCA는 일관되고 이해할 수 있는 방법으로 어플리케이션을 제작하기 위해 탄생한 라이브러리입니다. 이 라이브러리는 다양한 목적과 복잡도를 가진 어플리케이션을 만들기 위해 필요한 핵심 도구를 제공합니다. TCA는 SwiftUI, UIKit을 모두 지원하며, 다양한 플랫폼에서 사용이 가능합니다. Composable Architecture는 Elm이나 Redux 같은 다른 라이브러리들의 아이디어를 차용했다고 합니다. 그렇다면, R..

IOS/SwiftUI 2023.09.26

Data Flow Through SwiftUI

저번 포스트에서 SwiftUI 의 뷰 구성에 대해서 알아보았습니다. 이와 함께 보면 좋을 WWDC 영상이 있어서 보면서 느낀점과 함께 내용을 정리해보려고 합니다. ‼️ WWDC 영상을 보면서 해석을 한 부분이 많기 때문에 틀린 부분이 있을 수 있습니다. SwiftUI의 데이터 SwiftUI 는 데이터를 일급 시민으로 보고 있습니다. 데이터의 일반적인 의미인 컴퓨터가 처리할 수 있는 정보 라는 의미보다는 UI를 그릴 수 있는 모든 정보라는 의미로 이야기를 합니다. 다양한 형태의 값을 가지고 있으며, 이들은 모두 데이터가 될 수 있습니다. 예를 들어서 버튼의 누름의 상태와 같은 것들도 데이터가 될 수 있다고 합니다. SwiftUI의 데이터 원칙 1. 뷰에서 데이터를 읽으면 뷰에 대한 종속성이 발생한다. 저희..

IOS/SwiftUI 2023.09.07