[iOS/SwiftUI] 상태 관리 (@State, @Binding, @Observable, @Environment)

·
iOS/SwiftUI
iOS 17 이상, Xcode 26 / Swift 6.2 환경에서 정리한 글입니다.예제는 직접 만든 포켓몬 도감 앱 Pokedex-iOS의 코드를 사용했습니다.SwiftUI에서 화면은 상태(state)를 그린 결과입니다. 상태가 바뀌면 SwiftUI가 그 상태를 읽는 View의 body를 다시 실행해서 화면을 새로 그립니다. 그래서 SwiftUI를 쓸 때 가장 많이 고민하는 것은 "상태를 어디에 두고, 어떻게 넘길까"입니다.이 글에서는 상태를 다루는 네 가지 도구를 정리하고, 각각이 실제로 어떻게 동작하는지 테스트로 확인한 결과를 함께 살펴봅니다.도구한 줄 요약@StateView가 직접 소유하는 상태@Binding다른 View가 가진 상태를 읽고 쓰는 통로@Observable클래스의 프로퍼티를 Swift..