본문 바로가기

iOS

[iOS] (3) 앱이 foreground와 background에 있을때의 제약사항

안녕하세요!

세번째 질문의 답변을 하고자 하는데,,,

바로 생각나는것은...저전력모드일때는 네트워킹을 포함한 임의의 백그라운드 작업을 모두 중지시키는 것밖에 기억이 안 남습니다..
>> https://developer.apple.com/library/archive/documentation/Performance/Conceptual/EnergyGuide-iOS/LowPowerMode.html#//apple_ref/doc/uid/TP40015243-CH31-SW1 << 

 

Energy Efficiency Guide for iOS Apps: React to Low Power Mode on iPhones

Energy Efficiency Guide for iOS Apps

developer.apple.com

이건 포스팅 곧 할 QoS에 담겨있는 내용이였습니다. 한번 보겠습니다!

developer.apple.com/documentation/uikit/app_and_environment/scenes/preparing_your_ui_to_run_in_the_background

 

Apple Developer Documentation

 

developer.apple.com

를 참조했습니다.

 

리소스 측면

백그라운드

 

iOS에서는 백그라운드모드로 진입할 때는 몇가지의 제약사항을 권고하는데, 

가능한 가장 작은 메모리공간을 사용하도록 해야하며 (시스템 리소스 해제, 메모리에서 해제 후 데이터를 디스크에 작성)

priority에 의해 백그라운드 태스크는 포그라운드 태스크보다 더 낮은 자원할당을 받을수 밖에 없습니다. 포 그라운드는 메모리 및 기타 시스템 리소스보다 우선 순위를 가지며 시스템은 이러한 리소스를 사용할 수 있도록 필요에 따라 백그라운드 앱을 종료합니다.

 

UIKit은 다음과 같은 기능을 가지는 앱에 추가 시간을 부여합니다. 

  • Audio communication using AirPlay, or Picture in Picture video.
    Airplay와 PiP video를 사용하는 경우 

  • Location-sensitive services for users.
    Location Serviece를 이용하는 경우

  • Voice over IP.
    VoiceOver

  • Communication with an external accessory.
    외부 악세서리와 통신하는 경우 (MFi, Made for iPhone, iPods, iPads~) - applewatch, homepods, 등

  • Communication with Bluetooth LE accessories, or conversion of the device into a Bluetooth LE accessory.
    블루투스를 이용한 악세사리를 사용하는 경우.

  • Regular updates from a server.
    앱 업데이트를 진행하는 경우

  • Support for Apple Push Notification service (APNs).
    푸시알림의 경우

foreground의 제약사항은 우선순위(priority)의 내용 - 곧 블로그 포스팅 예정