SWIFT개발

go back to basic - @main 플젝만들면 항상생기는 파일 이건 몰까?

2료일 2024. 3. 1. 23:32

어떠한 프로젝트를 만들면 항상 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를 담고 있다.