해당 포스팅은 작성자의 학습을 위해 작성된 글 입니다.
Opaque Type이란?
Opaque Type(불투명한 타입)은 함수로 역제네릭 함수라고 할 수 있습니다.
함수나 메서드의 반환 타입이 특정 프로토콜을 준수하지만, 구체적인 타입은 숨겨짐을 의미합니다.
Swift에서는 some 키워드에 Opaque Type을 담아냅니다.
더 쉽게 이해해보겠습니다.
SwiftUI의 View 프로토콜은 모든 뷰가 가지고 있어야 할 가장 기본적인 기능을 정의하고 있습니다.
View 프로토콜에서 기본 규칙은 var body: some View { get } 프로퍼티를 생성하는 것입니다.
이 body 프로퍼티는 뷰의 내용을 구성하고, 화면에 어떻게 표시될지를 결정하는 역할을 합니다.
예를 들어, ContentView 구조체에서는 View 프로토콜을 채택하고, 이를 통해 View 프로토콜의 규칙이 요구하는 body 프로퍼티를 구현해야 합니다. 이 프로퍼티는 some View를 반환 타입으로 갖는데, 이는 body가 어떤 구체적인 View 타입을 반환하지만 그 타입이 무엇인지는 중요하지 않다는 의미입니다. 즉, body 내에서 Text, Button, VStack 등 어떤 타입을 사용하여도 이들 모두는 View 프로토콜을 준수하기 때문에 some View로 반환될 수 있습니다.
이런 방식으로 SwiftUI는 뷰의 구체적인 타입을 숨길 수 있으며, 개발자들이 각각의 요소들에 대해서 타입을 일일이 규정할 필요없이 뷰를 구성할 수 있게됐습니다.
정리하자면, ContentView 같은 구조체가 View 프로토콜을 준수한다는 것은, 그것이 SwiftUI의 뷰로서 필요한 모든 기본적인 요건을 갖추고 있음을 의미합니다.
'iOS > SwiftUI' 카테고리의 다른 글
[SwiftUI] 왜 body에서 변수를 수정하지 못할까? (0) | 2024.04.17 |
---|---|
[SwiftUI] SwiftUI를 소개합니다. (0) | 2024.04.15 |
[SwiftUI] Custom Font 추가와 Font Extension하기 (0) | 2023.11.25 |
[Udemy : SwiftUI+SwiftData Masterclass] Section 10. AFRICA (0) | 2023.11.08 |
[Day 9] 클로저(Closure), passing functions into functions (0) | 2023.08.11 |