[SwiftUI] App

RudinP·3일 전
0

Study

목록 보기
281/292
//  HelloSwiftUIAppApp.swift
import SwiftUI

class Model: ObservableObject {  
	...
}

@main
struct HelloSwiftUIAppApp: App {
    //모든 뷰가 이 모델을 공유
    @StateObject private var model = Model()
    //AppDelegate 연결, 적절한 시점에 호출됨
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        DocumentGroup(newDocument: HelloSwiftUIAppDocument()) { file in
            ContentView(document: file.$document)
                .environmentObject(model) //직접 전달
        }
    }
}
class AppDelegate: NSObject, UIApplicationDelegate {    
	...
}

main 함수

  • 이 특성이 추가되어 있으면 컴파일러가 메인함수를 자동으로 합성
  • 메인함수는 앱을 실행할 때 OS가 가장 먼저 실행
  • 초기화 과정을 담당(플랫폼에 적합한 방식으로)

App 프로토콜

  • 메인 함수의 기본 구현 제공

body 속성

  • App 프로토콜이 요구하는 속성
  • Scene 프로토콜 채용한 scene 리턴

Scene

  • 뷰 계층을 담고있는 컨테이너
  • 플랫폼과 현재 앱의 상태에 따라 뷰 계층 표시 시점, 표시하는 방식을 자동으로 결정해서 처리

Document Group

  • 기본적으로 제공되는 씬 중 하나
  • 안에 하나의 뷰가 있고, 여기에 적혀있는 뷰가 첫번째로 표시

Application layer 레벨의 작업

  • 시작 화면 리턴
  • 모든 뷰가 공유하는 모델을 선언
    • Application 레벨에서 인스턴스를 하나 만들고 공유 가능
  • AppDelegate 구현
    • PushNotification 구현 시 반드시 연결해야 함
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글