App LifeCycle에 대해 알아보자.
안녕하세요. ☁️ On the Swift의 윤태중입니다.
iOS App의 LifeCycle을 아는 것은 App 개발의 기본이라 생각하기 때문에
한번 정리하는 시간을 가지려고 합니다 :)
# 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
아직 모르는 것이 많고 알아가는 과정입니다.
잘못된 것이 있다면 댓글로 남겨주신다면 감사하겠습니다! 😊