어떠한 프로젝트를 만들면 항상 App파일과 ContentView가 만들어진다. 그리고 WindowGroup안에는 ContentView가 들어있다. 이것은 어떻게 작동하는 방식일까?
@main은 Type 기반 프로그램 엔트리포인트로 아 너가 앱이 최초 시작점이자 진입점이구나를 알수 있다.
보면 이 구조체는 App프로토콜을 채택하고 있다
이 프로토콜은 시스템이 앱을 실행하기 위해 호출하는 main() 메서드의 기본 구현을 제공합니다. 모든 앱 파일 중 정확히 하나의 진입점을 가질 수 있습니다.
또 다른게 body를 보면 Scene 프로토콜이 있다. 씬은 뷰계층구조의 루트뷰를 포함하고 있고 시스템에 의해 관리되는 라이프사이클을 가지고 잇다. setting과 같은 구체화된 Scene type을 줄 수 도 있다. (Settiongs는 ios에서는 안된단다.
WindowGroup은 뭘까?
- Window라는 개념은 뷰들의 컨테이너 역할을 하면서 동시에 터치 이벤트와 같은 이벤트를 가장먼저 수신하여 서브뷰들에게 이벤트 전달하는 responder chain기능(유저 인터페이스를 관리하는 Scene)
- 맥OS, iPadOS보면 여러개의 윈도우를 띄울 수 있는 형태일때 WindowGroup을 여러개 정의하여 사용
App은 우리가 앱아이콘을 누르면 켜지는 그 자체의 앱
Scene은 App bodf프로퍼티안에 들어갈 수 있는 View보다는 더 큰 개념. View hierarchy의 root view를 담고 있다.
'SWIFTUI' 카테고리의 다른 글
TCA(2)-Store, ViewStore& Binding (4) | 2024.07.16 |
---|---|
TCA(1)- (mvvm...-> NEXT?) (0) | 2024.07.04 |
some(Opaque Type)&any Keyword (1) | 2024.02.29 |
근본으로 돌아가자(4)-@State,@StateObject,@ObservedObject (2) | 2024.02.27 |
@ViewBuilder & @resultBuilder (1) | 2024.02.26 |