ํฐ์คํ ๋ฆฌ ๋ทฐ
์๋ ํ์ธ์?
๋๊ตฌ๋ฆฌ์ ๋๋ค.
์ค๋์ ์ฑ์ ๋ผ์ดํ ์ฌ์ดํด์ ๋ํด ์์๋ณด๋ คํฉ๋๋ค.
App Life Cycle์ด๋?
life cycle์ด๋ ์ฌ์ ์ ์๋ก ์๋ช ์ฃผ๊ธฐ ์ ๋๋ค.
์ฌ๋์ผ๋ก ์น๋ฉด ํ์ด๋์ ์ฃฝ๊ธฐ๊น์ง์ ๊ณผ์ ์ธ๊ฑฐ์ฃ
๊ทธ๋ผ App Life Cycle์ ์ฑ์ ์๋ช ์ฃผ๊ธฐ ์ ๋๋ค.
์ฑ์ ํด๋ฆญํด์ ์ฑ์ด ์คํ ๋๊ณ ์์ ํ ์ข ๋ฃ๋๊ธฐ ๊น์ง์ ๊ณผ์ ์ ๋๋ค.
App Based vs Scene Based
life cycle ์ค๋ช ํ๋ค ๋ง๊ณ ๊ฐ์๊ธฐ ๋ฌด์จ ์ฃผ์ ๋?
๋ผ๊ณ ๋งํ ์ ์๋๋ฐ
์์ ์ํ์ ๋ฐ๋ผ์ ์๋ช ์ฃผ๊ธฐ์ ์ผ๋ถ ๊ณผ์ ๊ณผ ํธ์ถ๋๋ ๋ฉ์๋์ ๊ฐ์ฒด๊ฐ ๋ฌ๋ผ์ง๋๋ค.
์ ์ ์์๋ณด๊ณ ๊ฐ๊ฒ์!
iOS13์ ๊ธฐ์ ์ผ๋ก iOS ์ฑ์ ๋ณํ๊ฐ ์ฐพ์์ต๋๋ค.(ํญ์ ๋ณํ๊ฐ ์ฐพ์์ต๋๋ค๋ง..ใ )
iPadOS์ macOS๋ฅผ ํฌํจํ์ฌ iOS13 ์ดํ๋ก ๋ฉํฐ ์๋์ฐ๊ฐ ์ง์๋๊ธฐ ์์ํ๋๋ฐ์.
๋ด๋ถ์ ์ผ๋ก ๋ญ๊ฐ ๋ฌ๋ผ์ก๋์ง ๊ทธ๋ฆผ์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
iOS 12 ์ด์
iOS 12 ์ด์ ๊น์ง๋ AppDelegate์์ Process Lifecycle๊ณผ UI Lifecycle์ ํฌํจํ์ฌ
์ฑ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๋ชจ๋ ๋ค๋ฃจ์์ต๋๋ค.
์ด๊ฒ์ ๊ณต์๋ฌธ์์์๋ App Based Lifecycle ์ด๋ผ๊ณ ํฉ๋๋ค.
iOS 13 ์ดํ
์์์ ๋ง์๋๋ฆฐ๋๋ก iOS 13์ดํ ๋ฉํฐ ์๋์ฐ๊ฐ ์ง์๋๊ธฐ ์์ํ๊ณ
์ด ํ๋ฉด(Scene)์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด
UI Lifecycle์ App Delegate์์ ๋ถ๋ฆฌํ ํ Scene Delegate๋ฅผ ์๋ก ๋ง๋ค์ด UI Lifecycle์ ๊ด๋ฆฌํ๋๋ก ๋ง๋ค์๊ณ ,
Scene Delegate์ session์ ๊ด๋ฆฌํ๋ Session Lifecycle์ App Delegate์ ์ถ๊ฐํ์ต๋๋ค.
์ด ๊ณผ์ ์ Scene Base Lifecycle์ด๋ผ๊ณ ํฉ๋๋ค.
Scene์ ๊ธฐ๊ธฐ์์ ๋ํ๋๋ App ํ๋ฉด์ ๋จ์์ด๋ฉฐ Scene์ ์ง์ํ ๊ฒฝ์ฐ ๊ฐ ํ๋ฉด๋ง๋ค lifecycle์ ์ง์ํฉ๋๋ค.
Scene๊ตฌํ์ ์ ํ์ฌํญ์ผ๋ก info.plist์์ ์ค์ ํ ์ ์์ต๋๋ค.
ํ๋ฒ ์ ๋ฆฌ๋ฅผ ํ๋ฉด
- iOS13 ๋ฐฐํฌ ํ ๋ฉํฐ ์๋์ฐ ์ง์์ผ๋ก lifecycle์ ํจ์จ์ ์ธ ๊ด๋ฆฌ๊ฐ ํ์
- App Delegate(process + UI) -> App Delegate(process + session) + Scene Delegate(UI)๋ก ์ฒด์ ๋ณ๊ฒฝ
Scene Base App Lifecycle
๋ณด์ฌ๋๋ฆด ๊ทธ๋ฆผ์ Scene Delegate์
๋จผ์ ๊ทธ๋ฆผ์ ๋ณด๊ณ ์ค๋ช ๋๋ฆด๊ฒ์
Unattached
UIKit์ด scene์ ์์ง session์ ์ฐ๊ฒฐ์ํค์ง ์์ ์ํ์ ๋๋ค. ์์ง UI๊ฐ ํ๋ฉด์ ๋ณด์ด์ง ์์ต๋๋ค.
Foreground
UI๊ฐ ํ๋ฉด์ ๋ณด์ด๋ ์ํ์ ๋๋ค. ์ํ๋ active, inactive ๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
active ์ํ์์๋ ์ฌ์ฉ์์์ ์ธํฐ๋ ์ , UI ์ ๋ฐ์ดํธ, ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์งํํ ์ ์์ต๋๋ค.
inactive ์ํ์์๋ ํ๋ฉด์ ๋ณด์ด์ง๋ง ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ , ์ฌ์ฉ์์์ ์ธํฐ๋ ์ ์ ํ ์ ์์ต๋๋ค.
์์ ์ฌ์ง์์ ๋ณด๋ฉด 2๊ฐ์ง์ ์ํ๋ณํ ๊ณผ์ ์ ๋ณผ ์ ์์ต๋๋ค.
Unattatched -> Foreground-Inactive -> Foreground-Active
์ด ๊ณผ์ ์์๋ Scene์ด session์ ์ฐ๊ฒฐ๋๊ณ , ์ฌ์ฉ์์ ์ธํฐ๋์ ์ ์ํด
UI๊ฐ ์ด๊ธฐํ ๋๊ณ , task ์ํ์ ์ํด ๊ธฐ๋ณธ ์์ ์ด ์ํ๋ ํ
ํ๋ฉด์ด ๊ธฐ๊ธฐ์ ๋ํ๋๊ฒ ๋ฉ๋๋ค.
Foreground-Active -> Foreground-Inactive -> Bacground
์ด ๊ณผ์ ์ ์ฌ๋ฌ ์ผ์ด์ค๊ฐ ์์ต๋๋ค.
๊ฐ์๊ธฐ ์ ํ๊ฐ ์ค๊ฑฐ๋ ์๋์ด ์ธ๋ฆฌ๋์ง, ์ฌ์ฉ์๊ฐ ๋ฐฐ๊ฒฝํ๋ฉด์ผ๋ก ๊ฐ๋ค๋์ง
์ด๋๋ ์ฌ์ฉ์์ ์ธํฐ๋ ์ ์ด๋ ์์ ์ ๋ฐ์ง ์์ต๋๋ค.
Background
์ฑ์ด ํ๋ฉด์ ๋ณด์ด์ง ์๋ ์ํ์ ๋๋ค.
ํด๋น ์ํ์์๋ ์ฑ์ด ์คํ๋ ์ ์์ง๋ง ์ต์ํ์ ์์ ๋ง ํ์ฉ๋ฉ๋๋ค.
ํด๋น ๊ณผ์ ์์๋ ์ฑ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ต๋ํ ์ ๋ฆฌํ๊ณ ์ค๋ ์ท์ ๊ตฌ์ฑํฉ๋๋ค.
Suspended
Scene์ด session์ ์ฐ๊ฒฐ๋์ด ์์ง ์์ ์ํ์ ๋๋ค.
background์ ์์ ๋ ๋ชจ๋ ์ข ๋ฃ๋์ด ์๋ฌด ์์ ๋ ํ์ง ์์ ์ํ์ด๋ฉฐ
๊ธฐ๊ธฐ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ํ์ ๋๋ค.
Background vs Suspended
๋๊ฐ์ ๊ฐ๋ ์ด ๋น์ทํด ๋ณด์ผ ์ ์์ง๋ง ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค.
Background์ํ์์ ์ต์ ์์ ์ด ๋๋๊ฑฐ๋,
์๋ฌด ์์ ๋ ํ์ง ์์ ๊ฒฝ์ฐ Suspended ์ํ๋ก ์ด๋ํฉ๋๋ค.
๊ธฐ๊ธฐ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ
Suspended ์ํ์ ์๋ ์ฑ๋ค์ ์ฐ์ ์ ์ผ๋ก
๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ์ํต๋๋ค.
App Base App Lifecycle
App Base ์์๋ ๋์จ ์ํ๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค.
๋ค๋ง ๋ชจ๋ ์๋ช ์ฃผ๊ธฐ ๊ณผ์ ์ AppDelegate์์ ์ฒ๋ฆฌํ๊ณ ์๊ธฐ ๋๋ฌธ์
Not Running ์ํ๊ฐ ์์ด ์ฑ ์คํ์ ๊ด๋ จ๋ ์์ ์ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
๊ธ์ ๋ํ ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋คใ ใ
๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ฐธ๊ณ ์๋ฃ
https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle
- Total
- Today
- Yesterday
- test
- ์ค์ํํธ
- autolayout
- Unit Test
- observable
- Protocol
- RX
- ํ ์คํธ
- ๊ณต๋ถ
- ํ๋กํ ์ฝ
- swift
- Property
- swift urlsession
- network
- XCTest
- ์ค์ํํธ ๊ณต๋ถ
- swift ํ๋กํ ์ฝ
- ์ค์ํํธ ํ๋กํ ์ฝ
- swift ๊ณต๋ถ
- func
- RxSwift
- Clean
- ์คํ ๋ ์ด์์
- ํ๋กํผํฐ
- set
- ios
- Swift Network
- URLSession
- ์ค์ํํธ map
- Subscribe
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |