Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

도니의 iOS 프로그래밍 세상

Multitasking life Cycle 본문

HIG(iOS14)

Multitasking life Cycle

Donee 2022. 2. 15. 16:57

1. 외부로 나가는 오디오에 대해서 적절하게 반응해야한다.

때때로 우리앱이 다른 앱이나 시스템 그자체로 나오는 오디오에 의해서 방해를 받을 수 있다. 전화가 오거나 시리가 음악을 재생한다면 앱의 오디오를 방해할수있다. 그러한 상황에서, 앱이 사람들의 기대를 충족시킬만한 대응을 해야한다. 음악, 팟캐스트, 오디오북들을 재생하는 것과 같은 주요 오디오 방해요인들에 대해서, 앱은 무기한으로 오디오를 멈추게 된다. GPS 알림과 같이 더더욱 짧은 알람에서, 우리의 앱은 오디오 볼륨을 일시적으로 낮추거나, 그것의 오디오를 멈추거나 혹은 방해가 끝날때 오디오가 재개됩니다.

2. 백그라운드에서 사용자가 시작한 task를 마무리시켜야한다.

누군가 작업을 시작할 때, 그들은 다른앱으로 전환하더라도 이전 앱의 작업이 끝날것이라고 예상한다. 만약 앱이 추가적인 입력을 요구하지 않는 작업을 실행하고 있다면, "suspending"하기 전 백그라운드에서 완료시켜야 한다.

iOS에서 백그라운드가 아무것도 못하는것처럼 설정되어있다. 우리의 task가 백그라운드에서 마음대로 모든것을 할순없다. 하지만 제한된 애플의 시스템 관리하에 일들을 할수있다. 어떤 task가 실행되면 완료될것이라고 예상을 하고 있기에 추가적으로 사용자의 인풋이 필요하지 않은 task를 작업하고 있는 경우에는 suspending되기 전에 백그라운드에서 마무리된다. suspend는 죽지는 않고 언제다시 불려나갈지 모르는 상태이지. 언제다시 foreground로 올라가지 못하기에 백그라운드에서 가만히 기다리고 있는 상태이다. 하지만 추가적인 사용자 input이 필요없는것은 background running으로 돌아갈수있다. 이곳에서 약 5분정도 5분동안 앱이 돌아갈수 있다. 그시간안에 task를 끝내지 못한다면 iOS가 process를 kill한다. 왜냐하면 5분이상 동작한다는것은 사용자의 의도와는 다른 작업을 할 가능성이 많기 때문에 자동으로 꺼지게 된다. 5분안에 끝나면 suspend되지만 그렇지 못한다면 Kill 해버리고 그렇기 때문에 마지막으로 넘기기 전에 함수하나를 실행할수 있다. (ex. 메일을 쓰는 도중에 중지될 때 임시보관함에 저장하는 작업등이 이것에 속한다) 이렇게 하는 이유는 애플이 사용자에게 좋은 경험을 선사하기 위함이고 안드로이드는 이러한 제약이 존재하지 않는다. 결국 악성코드가 되는것을 막기 위해서! 그런 방향으로 설계되어있는 것이 iOS이다.

3. 알람을 가끔씩 써라.

너의 앱이 suspend되어있거나 백그라운드이거나 아무것도 작동되지 않던 간에, 앱의 알람을 구체적인 시간으로 조정할 수 있다. 알람은 중요한 정보를 전달하는데는 효과적이지만, 너무 많이 보내 사용자를 성가시게 해선 안된다. 예를들어, 앱의 작업이 백그라운드에서 완료될 떄마다 알람을 보여줘선 안된다. 대신, 사람들이 다시 앱으로 돌아가서 작업을 확인하도록 해야한다.

출처

Apple Human Interface Guidelines(https://developer.apple.com/design/human-interface-guidelines/)

​스위프트하이(https://www.youtube.com/watch?v=knqZJTeBzXo)

'HIG(iOS14)' 카테고리의 다른 글

Notification  (0) 2022.02.16
Multiple Window on iPad  (0) 2022.02.15
Multitasking의 세 가지  (0) 2022.02.15
AR(Augmented Reality)  (0) 2022.02.15
Undo and Redo  (0) 2022.02.15
Comments