화면에 표시되도록 앱을 설정한다.
Overview
foreground transitions을 사용하여 앱의 UI가 화면에 표시되도록 준비한다. 앱이 포어그라운드로 전환되는 것은 일반적으로 유저 액션에 대한 응답이다. 예를 들어 사용자가 앱 아이콘을 탭하면 시스템이 앱을 실행하고 포어그라운드로 가져온다. 포어그라운드 전환을 사용하여 앱의 UI를 업데이트하고, 리소스를 획득하고, 유저 리퀘스트를 처리하는 데 필요한 서비스를 시작하시오.
모든 상태가 전환되면 UIKit가 적절한 delegate object에 notifications을 보낸다.
- iOS 13 이상 - UISceneDelegate object
- iOS 12 이하 - UIApplicationDelegate object
두 가지 유형의 delegate object를 모두 지원할 수 있지만 UIKit은 사용 가능한 경우 항상 scene delegate object를 사용한다. UIKit은 포어그라운드에 들어가는 특정 Scene과 관련된 Scene Delegate에게만 알린다. Scene 지원을 설정하는 방법에 대한 자세한 내용은 Specifying the Scenes Your App Supports을 참조하시오.
Update Your App’s Data Model when Entering the Foreground
실행 시, 시스템은 앱을 포어그라운드로 전환하기 전에 비활성 상태에서 앱을 시작한다. 앱의 launch-time 메서드를 사용하여 해당 시점에 필요한 작업을 수행한다. 백그라운드에 있는 앱의 경우 UIKit은 다음 메서드 중 하나를 호출하여 앱을 비활성 상태로 이동한다.
- Scene을 지원하는 앱의 경우, 해당 Scene Delegate Object의 sceneWillEnterForeground(_:) 메서드이다.
- 다른 모든 앱의 경우, applicationWillEnterForeground(_:) 메서드이다.
백그라운드에서 포어그라운드로 전환 할 때 이러한 메서드를 사용하여 디스크에서 리소스를 로드하고 네트워크에서 데이터를 가져온다.
실행 시, 앱을 준비하는 방법에 대한 자세한 내용은 Responding to the Launch of Your App을 참조하시오.
Configure Your User Interface and Initial Tasks at Activation
시스템은 앱의 UI를 표시하기 직전에 앱을 활성 상태로 이동한다. 활성화는 앱의 UI 및 런타임 동작을 구성하기에 특별히 좋은 시기이다.
- 필요한 경우 앱의 창을 표시한다.
- 필요한 경우 현재 보이는 뷰 컨트롤러를 변경한다.
- 뷰 및 컨트롤의 데이터 값과 상태를 업데이트한다.
- 일시 중지 된 게임을 다시 시작하는 컨트롤을 표시한다.
- 태스크를 실행하는 데 사용하는 dispatch queue를 시작하거나 재시작한다.
- data source objects를 업데이트한다.
- 주기적인 태스크를 위해 타이머를 시작한다.
다음 메서드 중 하나에 설정 코드를 넣으시오.
- scene-based UI의 경우, 적절한 Scene delegate object의 sceneDidBecomeActive(_:) 메서드이다.
- 다른 모든 앱의 경우, App delegate object의 applicationDidBecomeActive(_:) 메서드이다.
활성화는 UI를 사용자에게 표시하기 전에 UI를 마무리하는 시간이기도 하다. 활성화 메서드를 차단할 수 있는 코드를 실행하지 마시오. 대신 필요한 모든 것이 미리 준비되어 있는지 확인하시오. 예를 들어 데이터가 앱 외부에서 자주 변경되는 경우 앱이 포어그라운드로 돌아 가기 전에 백그라운드 태스크를 사용하여 네트워크에서 업데이트를 가져온다. 그렇지 않으면 비동기적으로 변경 사항을 가져오는 동안 기존 데이터를 표시할 준비를 하시오.
Start UI-Specific Tasks when Your View Appears
활성화 메서드가 반환되면 UIKit은 사용자가 표시한 모든 창을 표시한다. 또한 관련 뷰 컨트롤러에 해당 뷰가 곧 나타날 것임을 알린다. 뷰 컨트롤러의 viewWillAppear(_:) 메서드를 사용하여 인터페이스에 대한 최종 업데이트를 수행한다.
예를 들면
- 적절하게 사용자 인터페이스 애니메이션을 시작한다.
- 자동 재생이 활성화 된 경우 미디어 파일 재생을 시작한다.
- 전체 프레임 속도로 게임 및 몰입형 콘텐츠 용 그래픽 표시를 시작한다.
다른 뷰 컨트롤러를 표시하거나 사용자 인터페이스를 크게 변경하지 말아라. 뷰 컨트롤러가 화면에 나타날 때까지 인터페이스를 표시 할 준비가 되어 있어야한다.
[원문]
Apple Developer Documentation
developer.apple.com
'프로그래밍 > iOS' 카테고리의 다른 글
Background Tasks (0) | 2020.12.31 |
---|---|
Preparing Your UI to Run in the Background (0) | 2020.12.31 |
Specifying the Scenes Your App Supports (0) | 2020.12.31 |
Managing Your App's Life Cycle (0) | 2020.12.31 |
Concurrency Programming Guide (6) - Migrating Away from Threads (0) | 2020.12.27 |