강의

멘토링

커뮤니티

Inflearn Community Q&A

ah20755939's profile image
ah20755939

asked

Part 1: Learning iOS for Real Beginners (SwiftUI, SwiftData, 2024)

ToDo 앱 @Observable 기능(?) 질문입니다

Written on

·

198

0

안녕하세요 강사님 좋은 강의 잘 수강하고 있습니다!

강의에서 @Observable 사용시 큰 설명 없이 넘어가셔서 개인적으로 알아보는 중입니다

[SwiftUI] Observable macro를 통해 모델 데이터를 만들고 관리하는 방법 (tistory.com)

[SwiftUI] iOS17 이후의 상태 관리 (velog.io)

[SwiftUI] @Observable 매크로 (1) (tistory.com)

Discover Observation in SwiftUI (feat. WWDC 2023) :: iOYES (tistory.com)

등 위의 링크들을 살펴보았지만 초보자인 제가 이해하기엔 어려운 내용들이었습니다

그래서 강사님 강의 중 SwiftUI의 Property Wrapper(@State, @Binding...)를 구입해봤지만 아쉽게도

@Observable이 아닌 구 버전의 프로퍼티 래퍼인 @ObservableObject를 설명해주시더라구요(이 부분은 아쉬웠지만 나머지 래퍼들을 공부하는 데에는 정말 좋은 강의라고 생각합니다!)

일단 강의의 흐름을 보면 @State와 묶어서 설명하시길래 @State는 변수의 변화를 감지하기 위한 래퍼이고 @Observable은 class나 구조체 내 멤버 프로퍼티 값들이 변경되는 걸 감지하기 위한 래퍼라고 이해했는데 맞게 이해한 걸까요..?

 

답변 주시면 감사하겠습니다!!

좋은 하루 보내세요!

iosswiftswiftuiswift5.5

Answer 2

0

daynightcoding님의 프로필 이미지
daynightcoding
Instructor

안녕하세요

제 프로퍼티 강의 섹션 3에 Observable 매크로 부분에서 해당 부분을 설명해드립니다.

간단히 설명드리면 기존 SwiftUI ObservableObject를

Observable 매크로를 이용해, 좀더 쉽고 효율성있게 사용하게 만들어줍니다.

ah20755939님의 프로필 이미지
ah20755939
Questioner

답변 주셔서 감사합니다! 한 번 확인해 보겠습니다!

0

안녕하세요, 인프런 AI 인턴입니다. (알 수 없음)님.

SwiftUI에서의 상태 관리는 중요한 주제이며, 이를 이해하는 것은 효과적인 앱 개발에 필수적입니다. 질문하신 @Observable과 관련된 전반적인 내용을 간단히 설명드리겠습니다.

SwiftUI의 @Observable

  • @Observable의 역할: iOS 17에서 도입된 @Observable은 주로 클래스나 구조체 내 멤버 프로퍼티의 변화를 감지하고 화면에 적용하는 기능을 합니다. 이를 통해 SwiftUI는 데이터의 변화를 자동으로 UI에 반영시킬 수 있습니다.

  • @State와의 차이점:

    • @State는 뷰의 단일 인스턴스에서 간단한 값 조작을 관리하기 위한 래퍼입니다. 이는 개별 뷰 내부에서만 사용되며, 값이 변경될 때마다 자동으로 뷰를 새로고침합니다.
    • @Observable은 상태가 복잡한 클래스를 관리하는 데 사용되며, 외부에서도 해당 프로퍼티의 변경 사항을 감지합니다. 이는 보통 뷰모델에서 사용되어 UI와 로직 사이의 데이터를 다룹니다.

참고할 만한 질문 및 답변

  1. “@Bindable VS @Environment + @Bindable”
    이 질문에서는 SwiftUI의 프로퍼티 래퍼 사용에 대한 자세한 설명을 제공하고 있습니다. @Bindable과 @Environment의 조합이 어떻게 작동하는지 설명하므로, 상태 관리와 관련된 이해를 높일 수 있습니다.

  2. “39강 ProfileViewModel 연결할때 궁금합니다.(초보)”
    클래스 연결 시 @Bindable에 대한 이해를 돕는 설명이 있습니다. 이는 @Observable과 연관되어, 클래스를 다른 뷰에 전달할 때의 메커니즘을 잘 이해할 수 있도록 도와줍니다.

질문하신 것에 대한 이해가 맞음에도 불구하고, 추가적으로 SwiftUI 공식 문서나 Swift 관련 서적을 참조하시면 더욱 신뢰할 수 있는 자료로 이해를 넓히실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ah20755939's profile image
ah20755939

asked

Ask a question