About : iOS Multitasking

2013. 1. 21. 19:45제2외국어/iOS

iOS쪽을 하다보면 생각보다 제약사항이 많습니다.

1. 내부 DB를 건들 수 없다.
2. 다른 앱은 건들 수 없다.
3. Multitasking이 제한적이다.
etc..

내부DB와 다른 앱은 아마 탈옥을 하지 않는 이상 건들 수 없고, 갑작스럽게 가능하는 방향으로 바뀌지는 않을 것 같습니다.
그래서 먼저 Multitasking 쪽을 한번 살펴보기로 하겠습니다.

App State Changes

: 먼저 App State에 대해서 알아야 됩니다. 상태의 종류와 그 종류에 해당하는 부분을 확인하려면 꼭 필요합니다.

 State

 Description 

 Not running

 
 앱이 실행되지 않았거나, 시스템에 의해 종료된 상태입니다.

 Inactive


 앱이 foreground에서
 실행되었지만, 이벤트는 수신하지 않는 상태입니다. 
 이 상태에서도 어느 정도의 코드는 실행이 가능하지만 일정 시간이 되면 실행되지 않습니다.
 ( iOS 앱이 상태 변환을 할 때 머무는 단계입니다. )

 Active


 앱이 실행되고 있는 상태입니다. 가장 일반적인 상태입니다.

 Background


 앱 실행 중에 홈 버튼을 눌렀을 때로 Active에서 Suspended를 변하기 전에 머무는 상태입니다.

 이 잠깐(10분인가??)은 사용자에 의한 이벤트는 받지 못 하지만 소스코드는 수행이 가능합니다. 
 물론 추가적인 수행이 필요한 경우 시간을 늘어날 수 있습니다.
 ( Background가  Multitasking 을 위해 건드려야 할 부분입니다.  )

 Suspended


 앱이 중단된 상태입니다. 메모리는 있지만 코드는 수행되지 않는 상태입니다.

 메모리 부족이 발생할 때 시스템은 이 상태의 앱을 죽일 수 있습니다.


:  App State의 변화를 확인할 수 있는 곳은 AppDelegate( .h, .m) 입니다. 

Monitoring App State Changes




가장 중요한 부분입니다. Multitasking, 즉 Background에서 사용할 수 있도록 Apple에서 허용한 부분입니다.

1. Audio
: 가장 잘 알고있는 기능입니다. 기본 기능이기도 하죠. 오디오나 비디오 플레이어(소리에 한해) Background 에서도 돌아갑니다.

2. Location
: 언제부터 가능했는지 몰라도, 최근에 추가된 옵션인것 같습니다. 저희나라에는 아직 없지만 TomTom 이라는 업체에서 해외 중요 도시의 네비게이션을 팔고 있습니다.



어플리케이션

3. Voip
: 대표적인 어플로 Skype가 있습니다. Skype를 사용하신분들은 아실겁니다. 통화중에 홈버튼을 통해 나가더라도 아래 이미지와 같이 기본 어플과는 색깔(빨강)만 다른 상태로 표시되는 걸 확인하실 수 있습니다.


4. Newsstand-content
: 신문이나 가판대 앱을 정기적으로 다운받습니다.



5. External-accessory
External Accessory framework를 통해 External-accessory(외부 악세사리)와 정기적으로 작동합니다

6. Bluetooth-central
Core Bluetooth framework 를 통해 Bluetooth Accessory에 정기적인 일정에 따라 작동합니다. 

7. Bluetooth-peripheral
Core Bluetooth framework 를 통해 주변 모드에서 Bluetooth Accessory와 통신합니다.



PS.

1번의 경우 너무 흔해서 이미지도 구하지 않았고, 5,6,7 번 항목은 Apple를 통해서 iPhone 관련 물품을 판매하는 경우 모두 포함됩니다. Bluetooth 이어폰, 측정기 등이 있습니다.


솔직히 모든 항목을 다루어 보고 싶지만 1,2번을 제외한 나머지 부분은 원하는 분야도 아니거니와 솔직히 하기도 어렵습니다. 



참고 사이트

Misconceptions About iOS Multitasking
App States and Multitasking

파헤치기 #5. iOS App Programming Guide (5) App States and Multitasking <1>