WWDC

[WWDC20] App essentials in SwiftUI

Phililip
728x90

안녕하세요.

 

이번엔 WWDC20 'App essentials in SwiftUI' 영상을 보고 SwiftUI의 App, Scene, View를 알아가는 시간을 가져볼게요.

 


# Views, scenes, and apps

## Views

앱 화면에 보이는 모든 것은 View에 속해있습니다.

 

## Scenes

특정 플랫폼에선 전체 화면을 서로 다른 영역으로 쪼개서 앱을 표시합니다.

 

SwiftUI에선 서로 다른 영역을 Scene이라고 부릅니다.

 

Window는 Scene의 콘텐츠를 화면에 표시합니다.

 

iPadOS의 경우 아래처럼 여러 window를 나란히 표시할 수 있어요.

 

macOS의 경우 아래처럼 다른 Scene의 콘텐츠를 여러 window로 표시할 수 있고, 

 

탭 형식으로 된 하나의 window로도 모을 수 있어요.

(하나로 모은 window는 또 하나의 컨테이너 Scene이 됩니다.)

 

 

## Apps

모든 Scene들이 App의 콘텐츠가 됩니다.

 

즉, 앱은 아래와 같은 구조를 가집니다.

 

1) View들이 모여서 복잡한 View를 이루고,
2) 이런 View는 Scene의 콘텐츠를 형성하고
3) Scene들이 모여서 복잡한 Scene을 이루고
4) 이런 Scene들이 App의 콘텐츠를 형성합니다.

 

# Understanding scenes

코드에선 App-Scene-View 구조를 아래처럼 선언합니다.

 

[참고] WindowGroup은 플랫폼에서 새로운 창을 생성하거나 창 내에서 새 탭을 생성하는 등 Window를 관리하는 역할을 합니다.

 

 

각 Scene의 View 상태값은 서로 독립적입니다.

 

navigationTitle 수식어를 사용하면 Window Title 바 영역에 표시되며 'Window' 메뉴에도 표시됩니다.

 

 

Scene의 lifecycle은 각 플랫폼이 관리합니다.

 

앱에 대한 Window를 생성해야 할 때 WindowGroup이 새로운 Scene을 생성합니다. multi-window를 지원하는 플랫폼에선 WindowGroup이 여러 개의 자식 Scene을 생성할 수 있고 각 Scene은 독립적인 View State를 가져요.

 

 

# Customizing apps

Settings Scene을 사용하면 환경설정 창을 만들 수 있어요.

 

아래는 예시입니다ㅎㅎ

 

 

 

커스텀 메뉴를 넣고 싶을 땐 command 수식어를 사용합니다.

 

 

# 참고

https://developer.apple.com/videos/play/wwdc2020/10037

 

App essentials in SwiftUI - WWDC20 - Videos - Apple Developer

Thanks to the new App protocol, SwiftUI now supports building entire apps! See how Apps, Scenes, and Views fit together. Learn how easy...

developer.apple.com

 


이번 글은 여기서 마무리.

 

 

 

반응형