SwiftUI : 템플릿 파일들 (작성중)

버들비·2020년 7월 22일
0

SwiftUI

목록 보기
3/8
post-custom-banner

Xcode SwiftUI 프로젝트를 만들때 디폴트로 생기는 파일들

다음 그림은 단일 윈도우 앱의 계층구조이다.

다음은 다중 윈도우 앱 계층구조이다. AppDelegate는 단 하나만 있지만 SceneDelegate 는 각 화면마다 갖고 있다.

AppDelegate.swift

모든 iOS 앱은 이벤트 처리와 사용자 인터페이스를 표시하기 위하여 앱에 의해 사용될 서로 다른 UIWindow 객체를 관리하는 UIApplication 클래스의 인스턴스 하나를 갖는다. UIWIndow 인스턴스는 사용자에게 보이지 않지만 사용자 인터페이스를 구성하는 시각적 객체를 담기 위한 컨테이너를 제공한다.
UIApplication 인스턴스는 앱의 생명주기와 관련된 중요한 이벤트(앱 실행, 알림수신, 디바이스 메모리 부족, 앱 종료 보류, 앱 내의 새로운 화면 생성 등)에 대한 메소드 호출을 통하여 알림을 주는 델리게이트와 연결된다.
AppDelegate 프로토콜을 따르는 필수 메소드들만 포함하지만, 다른 종류의 메소드를 추가할 수 있다. 이러한 메소드들은 네트워크 연결을 구추갛거나 데이터베이스 접근 설정과 같이 앱 초기에 해야 할 초기화 작업을 구현하는데 유용하다. didFinishLaunchingWithOptions 메소드는 초기화 코드를 추가하는 데 특히 유용하다. 왜냐하면 앱이 실행된 후에 첫번째로 호출되는 메소드이기 때문이다.

SceneDelegate.swift

앱의 사용자 인터페이스 전부는 UIWindow 의 자식인 UIWindowScene 객체의 형태인 화면(scene)으로 표시된다. 앱 사용자 인터페이스 내에 단일 화면만 나타내는 UIKit tㅡ토리보드 화면과 혼동하지 않는것이 중요하다.
디폴트로, 앱은 단 하나의 화면만 갖겠지만 iOS13부터 다중 윈도우가 지원된다. 아이폰에서 사용자는 앱 스위처를 이용하여 사용자 인터페이스 복사본들 간의 전환을 하며, 아이패드에서도 사용자 인터페이스의 복사본이 나란히 표시된다.
여러 화면 모두는 동일한 UIApplication 객체를 공유하지만, 다중 윈도우 구성에서의 각 UIWindowScene 인스턴스는 자신만의 화면 델리게이트 인스턴스를 갖는다.
SceneDelegate 클래스 파일은 UIWindowSceneDelegate 프로토콜을 구현하며, 현재 세션과 연결되는 새로운 화면 객체, 백그라운드와 포그라운드 간의 화면 전환, 또는 앱에서 연결이 끊긴 화면과 같은 이벤트를 처리하는 메소드를 포함한다.
SceneDelegate의 모든 메소드는 앱의 생명주기동안 초기화와 초기화 해제 작업을 수행하는데 유용하다. 하지만 이 파일에서 가장 중요한 델리게이트 메소드는 새로운 화면 객체가 앱에 추가될 때마다 호출되는 willConnectTo 메소스다.
디폴트로, Xcode 에 의해 구현되는 willConnenctTo 델리게이트 메소드는 ContentView.swift 파일에 선언된 ContentView 뷰의 인스턴스를 생성하고 사용자에게 보이도록 한다. 이 메소드 내에서 UIKit 아키텍처와 SwiftUI 간의 간격이 해소된다.
UIKit 프로젝트 내에 SwiftUI 뷰가 포함되기 위해서 SwiftUI 뷰는 UIHostingController 인스턴스에 포함된다. 이 작업을 하기 위하여 willConnectTo 델리게이트 메소드는 다음과 같은 작업을 수행한다.
1. ContentView 인스턴스 생성
2. 새로운 UIWindow 객체 생성
3. UIHostingController 인스턴스에 ContentView 객체 포함
4. UIHostingController 를 새롭게 생성된 UIWindow 객체의 최상위 뷰 컨트롤러로 할당
5. 화면의 현재 UIWindow 인스턴스를 새로운 인스턴스로 치환
6. 사용자에게 윈도우 표시

ContentView.swift

SwiftUI View 파일로 앱이 시작할때 나타나는 첫 화면의 내용을 담는다.

Assets.xcassets

해당 폴더는 이미지, 아이콘, 색상 등 앱에서 사용되는 리소스를 저장하기 위하여 사용된다.

Info.plist

정보 프로퍼티 리스트 파일로, 앱을 구성하는데 사용되는 키-값 쌍으로 된 XML 파일이다. 다중 윈도우 지원을 활성화하기 위한 설정 등이 이 파일에 포함된다.

LaunchScreeen.storyboard

앱이 실행될때 사용자에게 표시되는 인터페이스 레이아웃을 담는 스토리보드 파일. UIKit Storyboard 화면으로, SwiftUI 가 아닌 인터페이스 빌더를 이용하여 설계된다.

post-custom-banner

0개의 댓글