티스토리 뷰

반응형

 

 


App

SwiftUI에서 앱의 구조, 행위를 표현하는 타입

 

 


Declaration
선언

 

 

 


Overview

개요

App 프로토콜을 채택, 준수하는 구조체를 생성할 수 있습니다.

그 후, App 컨텐츠를 정의하기 위해 해당 구조체의 컨텐츠부에 계산프로퍼티 body를 구현해줍니다. 그 구현예시는 아래와 같습니다. 

 

 


SwiftUI로 앱을 구현할 때, 해당 앱의 진입점을 제공하는 앱 프로토콜 준수자를 위 코드와 같이 정의할 수 있습니다.

이때 정의된 MyApp 구조체 위에 @main 주석(annotation)을 명시해야 합니다.

App 프로토콜은 해당 앱이 런칭 될 때 호출되는 main() 메서드의 기본 구성을 지원합니다. 하나의 앱 파일 중에는 반드시 단 하나의 진입점만 존재하도록 구성해야 합니다. 

이후, Scene 프로토콜을 준수하는 인스턴스로 부터 앱의 body를 구성합니다. 각각의 씬(Scene)들은 뷰계층의 루트 뷰를 포함하며, 시스템에 의해 관리되는 생애주기를 갖습니다.

SwiftUI는 구체적인 Scene 타입을 제공하며 이는 문서, 세팅 등을 표현하기 위한 공통의 시나리오들을 처리합니다. 아래와 같이 App 프로토콜을 준수하는 구조체 내부에 커스텀 Scene를 을 생성할 수 있습니다. 

 

 

 

 

모든 각 Scene 들 간의 공유를 위해 앱 내에 상태(State)를 선언할 수도 있습니다.

그 예로, 당신은 데이터 모델 초기화를 위한 StateObject 속성을 사용할 수 있습니다.

그리고 이때 뷰 입력에 해당 모델을 ObservedObject나 EnvironmentObject로서 앱 내의 Scene으로 제공할 수 있습니다.

앱 내에 ObservedObject, EnvironmentObject 등으로 모델을 전달하는 방법은 아래와 같습니다. 

 

 

 


위의 코드에서 StateObject인 MailModel 인스턴스, model이 WindowGroup 블럭 내에서는 environmentObject로서, Setting 블럭 내에서는 ObservedObject로서 전달되어지는 모습을 볼 수 있습니다. 

 

 

 
반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함