어떠한 프로젝트를 만들면 항상 App파일과 ContentView가 만들어진다. 그리고 WindowGroup안에는 ContentView가 들어있다. 이것은 어떻게 작동하는 방식일까? @main은 Type 기반 프로그램 엔트리포인트로 아 너가 앱이 최초 시작점이자 진입점이구나를 알수 있다. 보면 이 구조체는 App프로토콜을 채택하고 있다 이 프로토콜은 시스템이 앱을 실행하기 위해 호출하는 main() 메서드의 기본 구현을 제공합니다. 모든 앱 파일 중 정확히 하나의 진입점을 가질 수 있습니다. 또 다른게 body를 보면 Scene 프로토콜이 있다. 씬은 뷰계층구조의 루트뷰를 포함하고 있고 시스템에 의해 관리되는 라이프사이클을 가지고 잇다. setting과 같은 구체화된 Scene type을 줄 수 도 있다...
UIkit에서는 주로 뷰를 class로 만들었는데 swiftUI에서 보면 뷰를 구조체로 만드는 것을 발견했을 것이다. 왜 근데 유킷과 달리 구조체로 만들까? 1. 뷰 자체가 가벼워진다. 그 전에 Struct와 Class차이를 알아야 한다. 클래스는 상속이 가능하지만 구조체는 상속이 불가능하다. 클래스는 참조타입, 구조체는 값타입 -> 구조체는 메모리영역에서 Stack, 클래스는 Heap영역에 있다. 스택은 메모리 올라갔다가 사용이 종료되면 바로 삭제되지만, 힙에 올라간 코드는 가비지컬렉터에 의해 정리 - UIKIt에서는 수많은 속성과 메서드가 있는 클래스의 서브클래스다. 간단한 뷰를 만들더라도 사용하던 안하던 이미 속성이 많이 가지고 있다. 하지만 구조체로 뷰를 생성하다보니까 상속된 크기없이 그 구조체만..