본문 바로가기

iOS

App LifeCycle에 대해 알아보자.

안녕하세요. ☁️ On the Swift의 윤태중입니다.


iOS App의 LifeCycle을 아는 것은 App 개발의 기본이라 생각하기 때문에


한번 정리하는 시간을 가지려고 합니다 :)


# App LifeCycle에 대해 알아보자.


세상 모든 것은 만들어 진다면 사라지기 마련이죠.

탄생이 있으면 죽음이 있고, 만남이 있다면 헤어짐이 있듯이

App도 마찬가지로 한 LifeCycle이 존재하고

이에 따라 상태가 각기 달라집니다.

일단, 큰 그림부터 한 번 보겠습니다.


[State changes in an iOS app]



일단 크게보면


App이 화면에 보이는 상태인 'Foreground'화면에서 보이지 않는 상태인 'Background'가 있고


그 안에는


'Not Running', 'Inactive', 'Active', 'Background', 'Suspended' 총 5가지의 상태가 있습니다.


그러면 각각의 상태에 대해서 알아보도록 하겠습니다.


1) Not Running : App이 아직 실행되지 않았거나 System에 의해 종료된 상태.


2) Inactive : App이 Foreground상태에 있지만 아직 Event를 받지 않은 상태.

일반적으로 다른 상태로 전환될 때 잠시 동안만 이 상태를 유지한다.


3) Active : App이 Foreground상태에 있고 Event를 받은 상태. 


4) Background : App이 Background상태에 있지만 Code가 있는 상태.


5) Suspended : App이 Background상태에 있고 동작하는 Code가 없는 상태.

System은 App을 자동으로 이 상태로 만들고 Memory에는 유지. 하지만 Memory 부족 상태가 나타나면 Memory에서 제거.



App의 LifeCycle은 크게 어렵지 않은 것 같습니다...


운영체제 수업때 배웠던 Process의 LifeCycle과 비슷하군요 :)


그렇다면 각 상태들이 어떤 상황인지 알았으니 이를 코드에 적용시켜 볼까요?


다행히 이 LifeCycle에 해당되는 함수들은 AppDelegate.swift 파일에 존재합니다!!!!!






함수들 이름은 이렇게 되어있고 함수가 의미하는 바는 이름에 잘 나와 있답니다 ㅎㅎ


(네이밍이 정말 좋은 것 같아요 👍👍)


각 함수가 의미하는 바는 각 함수명 아래에 적어보았습니다 ㅎㅎ 따로 빼서 적는것 보다 저게 더 깔끔해 보이더군요 ㅎㅎㅎ...


그리고 처음 AppDelegate.swift 파일에 어느정도 정보가 쓰여있기 때문에 


각 상태관리를 해야할 때 주석을 잘 보시는 것을 추천드립니다!



App의 LifeCycle를 이해하는 것은 기본이라 생각하고


다음에는 View의 LifeCycle를 공부해보도록 하겠습니다 :)


Reference


iOS App Life Cycle




아직 모르는 것이 많고 알아가는 과정입니다.

잘못된 것이 있다면 댓글로 남겨주신다면 감사하겠습니다! 😊




'iOS' 카테고리의 다른 글

UIView의 ContentMode정리  (0) 2019.03.24
Mapkit이 Blank Screen 되었다.  (0) 2019.03.07
CocoaPods를 사용해보자.  (0) 2018.11.08
View Controller에 대해 알아보자.  (0) 2018.10.27
App LifeCycle에 대해 알아보자.  (0) 2018.10.25
CocoaTouch Framework란 무엇일까?  (0) 2018.10.23