article thumbnail image
Published 2020. 8. 14. 19:06
728x90
반응형

기존에 있던 스토리보드와 달리 SwiftUI에서는 어떤 구조로 이루어져 있는지 알아보았다.
잘 알지는 못하지만 스토리보드가 사라지고나서 ContentView.swift 란 파일이 생성되었고
preview를 resume 하면 옆에서 실시간으로 확인할 수 있다는 점?
실시간으로 동작이나 변경되는 부분을 볼 수 있어 그 점은 편리하게 느껴졌다.
아직 자세히 알지는 못하지만 조금씩 알아가야겠다.
공부를 시작하는 단계이기 때문에 완벽히 이해하는 건 불가능하다.
내가 이해한 만큼 설명할 수 있을 텐데 그렇지 않기 때문에 서툰 부분이 있지 않을까?한다. (사실 봐도 잘 모르겠다....ㅎㅎ)
공부하면서 이해하거나 추가로 알게 된 부분이 있다면 추가하는 방향으로 가야지 !

달라진 부분은 프로젝트를 생성하고 확인해볼 수 있다.

 

AppDelegate.swift

AppDelegate class를 정의한다.
AppDelegate 클래스에 인스턴스인 app delegate가 window를 만든다.
앱에 대한 진입점과 앱에 입력 이벤트를 전달하는 실행 루프를 만든다.
UIApplicationMain에 의해 수행된다.
UIApplicationMain 속성을 사용하는 것은 UIApplicationMain 함수를 호출하고 AppDelegate 클래스의 이름을 델리게이트 클래스의 이름으로 전달하는 것과 같다.
이런 응답을 통해 시스템은 응용 프로그램 개체를 만든다.
시스템은 AppDelegate 클래스의 인스턴스를 생성하고 애플리케이션 객체에 할당하고 마지막으로 앱을 시작한다.

apple developer 사이트에서 나와있는 내용을 적어보니 이런 내용인데
간단하게 진입점과 입력 이벤트를 전달하는 실행 루프를 생성해준다고 이해할 수 있다.

iOS12 와 iOS13 에서의 역할이 많이 달라졌다고 한다.

SceneDelegate.swift

Multi Window 와 같은 기능을 지원하기 위한 Delegate
동일한 앱을 여러 화면에 띄울 경우 각 화면의 인스턴스 단위로 작동시킬 수 있다.

ContentView.swift

맨 처음 생성되는 View
SceneDelegate.swift의 메소드에 선언되어 있다.

// Use a UIHostingController as window root view controller.
        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }

UIHostingController는 contentView를 받아 ViewController를 만들어준다.

Preview Content

Asset 이 들어있는 폴더
Canvas에 사용되는 데이터들을 위한 Assets

 

--- 참고 사이트 ---

medium.com/harrythegreat/swiftui-튜토리얼-1편-기본구조-11e7b589e6de

velog.io/@dev-lena/iOS-AppDelegate와-SceneDelegate

developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/BuildABasicUI.html#//apple_ref/doc/uid/TP40015214-CH5-SW1

zeddios.tistory.com/811

 

 

 

728x90
반응형

'iOS > SwiftUI' 카테고리의 다른 글

[SwiftUI] 2. Stack 사용해보기  (0) 2020.08.14
복사했습니다!