Preparing Your UI to Run in the Foreground

Panther·2021년 8월 15일
0

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_foreground

"Configure your app to appear onscreen."

화면에 나타날 수 있도록 앱을 설정합니다.

Overview

앱의 UI를 화면에 나타나도록 준비하기 위해 포어그라운드 전환을 사용하시기 바랍니다. 포어그라운드로의 앱 전환은 보통 사용자 액션에 대한 응답입니다. 예를 들어 사용자가 앱의 아이콘을 탭하면 시스템은 앱을 launch 하고, 포어그라운드로 가져옵니다. 사용자 요청을 처리하는 데 필요한 앱의 UI 업데이트, 리소스 가져오기, 서비스 시작을 위해 포어그라운드 전환을 사용하시기 바랍니다.

모든 상태 전환은 UIKit이 적합한 딜리게이트 객체에 노티피케이션을 보내는 결과를 나타나게 합니다.

  • iOS 13 및 이후 버전—UISceneDelegate 객체입니다.
  • iOS 12 및 이전 버전—UIApplicationDelegate 객체입니다.

두 가지 딜리게이트 객체 타입 모두를 지원할 수 있지만, UIKit은 씬 딜리게이트 객체가 사용 가능한 경우 씬 딜리게이트를 사용합니다. UIKit은 포어그라운드에 진입하는 특정 씬과 관련이 있는 씬 딜리게이트에 대해서만 내용을 전달합니다. 씬 지원 설정에 대한 더 많은 정보는 Specifying the Scenes Your App Supports를 살펴보시기 바랍니다.

Specifying the Scenes Your App Supports
https://developer.apple.com/documentation/uikit/app_and_environment/scenes/specifying_the_scenes_your_app_supports

Update Your App’s Data Model when Entering the Foreground

launch 시점에 시스템은 포어그라운드 전환 전에 비활성화 상태에서 앱을 시작합니다. 앱의 launch-time 메소드를 사용해서 해당 시점에 필요한 모든 작업을 수행할 수 있도록 하시기 바랍니다. 백그라운드에 있는 앱의 경우 UIKit은 아래 메소드 중 한 가지를 호출함으로써 앱을 비활성화 상태로 이동시킵니다.

  • 씬을 지원하는 앱입니다.—적합한 씬 딜리게이트 객체의 sceneWillEnterForeground(_:) 메소드입니다.
  • 다른 경우의 모든 앱입니다.—applicationWillEnterForeground(_:) 메소드입니다.

백그라운드로부터 포어그라운드로 전환할 떄, 디스크로부터 리소스를 로드하고 네트워크로부터 데이터를 가져오기 위해 이러한 메소드를 사용하시기 바랍니다.

launch 타임에 앱을 준비하는 방법에 대한 더 많은 정보는 Responding to the Launch of Your App을 살펴보시기 바랍니다.

Responding to the Launch of Your App
https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app
https://velog.io/@panther222128/Responding-to-the-Lauch-of-Your-App

Configure Your User Interface and Initial Tasks at Activation

시스탬은 앱의 UI를 표시하기 전에 앱을 즉시 활성화 상태로 이동시킵니다. 활성화는 앱의 UI 및 런타임 동작을 설정하기에 좋은 시점입니다.

  • 필요한 경우 앱의 윈도우를 보여줍니다.
  • 필요한 경우 현재 시각화된 뷰 컨트롤러를 변경합니다.
  • 데이터 값, 뷰의 상태, 컨트롤을 업데이트 해야 합니다.
  • 일시정지된 게임을 재개하기 위해 컨트롤을 표시합니다. 작업을 실행하기 위해 사용하는 모든 디스패치 큐를 시작하거나 재개합니다.
  • 데이터 소스 객체를 업데이트합니다.
  • 주기적 작업에 대한 타이머를 시작합니다.

아래 메소드 중 하나에 설정 코드를 넣으시기 바랍니다.

  • 씬 기반의 UI의 경우입니다.—적합한 씬 딜리게이트 객체의 sceneDidBecomeActive(_:) 메소드입니다.
  • 다른 모든 경우의 앱입니다.—앱 딜리게이트 객체의 applicationDidBecomeActive(_:) 메소드입니다.

사용자에게 표시하기 전에 활성화는 UI에서의 터치 완료를 넣기에 좋은 시점입니다. 활성화 메소드를 막을 수 있는 코드는 실행하지 않아야 합니다. 대신 미리 필요한 모든 것을 갖고 있음을 확실히 해야 합니다. 예를 들어 앱 외부에서 데이터가 자주 변경되는 경우 앱이 포어그라운드로 돌아오기 전에 네트워크로부터 업데이트를 가져올 수 있도록 백그라운드 작업을 사용하시기 바랍니다. 그렇지 않은 경우라면 변경사항을 비동기로 가져오는 동안 기존 데이터가 표시될 준비를 할 수 있도록 해야 합니다.

Start UI-Specific Tasks when Your View Appears

활성화 메소드가 반환되면, UIKit은 시각화하려고 만들었었던 모든 윈도우를 보여줍니다. 또한, 뷰가 나타날 준비가 되었음을 관련 뷰 컨트롤러에게 알려줍니다. 뷰 컨트롤러의 viewWillAppear(_:)를 사용해서 인터페이스의 모든 마지막 업데이트까지 수행하시기 바랍니다. 예를 들어 아래와 같습니다.

  • 적합한 시점에 UI 애니메이션을 시작합니다.
  • 자동 재생이 활성화된 경우 미디어 파일 재생을 시작합니다.
  • 전체 프레임 비율에서 게임 및 몰입형 컨텐트를 위한 그래픽 표시를 시작합니다.

다른 뷰 컨트롤러를 보여주는 것을 시도하거나 UI에 주요한 변경사항을 만들지 않아야 합니다. 뷰 컨트롤러가 화면에 나타나기까지 인터페이스는 표시될 준비가 되어야 합니다.

Topics


State-Change Notifications

Processing Queued Notifications

일시정지 상태에서 벗어날 때 노티피케이션에 응답합니다.

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_foreground/processing_queued_notifications
https://velog.io/@panther222128/Processing-Queued-Notifications


See Also


Essentials

Preparing Your UI to Run in the Background

앱이 일시정지 상태가 되도록 준비합니다.

https://developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background
https://velog.io/@panther222128/Preparing-Your-UI-to-Run-in-the-Background


0개의 댓글