App Life Cycle์ ์ฑ์ ์ฌ์ฉ ๊ณผ์ ์ค ์ฑ์ด ๊ฐ์ง ์ ์๋ ์ํ๋ฅผ ๋งํ๋ฉฐ,
App-Based Life Cycle์ธ iOS 13 ์ด์ ์๋ Not running, Inactive, Active, Background, Suspended ๋ฑ์ ์ํ๊ฐ์ด ์๊ณ
Scene-Based Life Cycle์ธ iOS 13 ์ดํ๋ถํฐ๋ Unattached, Foreground Inactive, Foreground Active, Background, Suspended ์ํ๊ฐ์ด ์์ต๋๋ค.
Unattached ์ํ๋ scene์ด ์ฐ๊ฒฐ๋์ง ์์ ์ํ์ด๋ฉฐ
Foreground Inactive๋ scene์ด foreground์์ ์คํ ์ค์ด์ง๋ง, ์๋ฌด๋ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ์์ง ์์ ์ํ์
๋๋ค.
Foreground Active๋ scene์ด foreground์์ ์คํ ์ค์ด๊ณ , ํ์ฌ ์ด๋ฒคํธ๋ค์ ๋ฐ๊ณ ์๋ ์ํ์
๋๋ค.
Background๋ scene์ด ํํ๋ฉด์ด๋ ๋ค๋ฅธ ์ฑ์ผ๋ก ์ ํ๋ ์ํ์ด๋ฉฐ, ํ๋ฉด์๋ ๋ณด์ด์ง ์์ง๋ง ์คํ๋๋ ์ฝ๋๊ฐ ์์ต๋๋ค. ๋ฎค์ง ์ฑ๊ณผ ๊ฐ์ด ์ฌ์ฉ์๊ฐ ์ง์ ์ฑ์ ์ฌ์ฉํ์ง ์์๋ ์คํ๋์ด์ผ ํ๋ ์์
์ด ์๋ค๋ฉด ์ด ๊ณผ์ ์์ ์งํํ๊ฒ ๋ฉ๋๋ค.
Suspended๋ scene์ด background ์ํ์์ ์๋ฌด๋ฐ ์์
๋ ํ์ง ์๊ณ ์์ ๋ ์ง์
ํ๋ ์ํ์
๋๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ์ํฉ์ด ์ค๋ฉด ์์คํ
์ foreground์ ์๋ ์ฑ์ ์ฌ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ํ๋ณด๋ฅผ ์ํด ์ด ์ํ์ ์๋ ์ฑ๋ค์ ์ ๋ฆฌํ ์๋ ์์ต๋๋ค.
์ดํ์ด ์คํ๋๊ณ Foreground Active์ํ๋ก ์ง์ ํ๊ธฐ ์ , ๋ฉํฐํ์คํน ์๋์ฐ๋ก ์ง์ , ์๋ฆผ ๋ฑ์ผ๋ก ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์ง์ ํ๊ธฐ ์ ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ์ํ๋ก ์ง์ ํ๊ธฐ ์ ์ Foreground Inactive์ํ๋ฅผ ๊ฑฐ์ณ์ ์ง์ ํ๊ฒ ๋ฉ๋๋ค.
iOS 12๊น์ง๋ ํ๋์ ์ฑ์ด ๋๋ถ๋ถ ํ๋์ window๋ฅผ ๊ฐ์ก์ง๋ง, iOS 13๋ถํฐ๋ window์ ๊ฐ๋ ์ด scene์ผ๋ก ๋์ฒด๋๊ณ , ํ๋์ ์ฑ์์ ์ฌ๋ฌ ๊ฐ์ scene์ ๊ฐ์ง ์ ์๊ฒ ๋์์ต๋๋ค.
์ฑ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด, UIKit์ ์ ์ ํ delegate ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ ์ ์๊ฒ ์๋ฆฌ๋๋ฐ์,
iOS 12์ด์ ๋ฒ์ ์์๋ scene์ ์ง์ํ์ง ์์๊ธฐ ๋๋ฌธ์ UIApplicationDelegate ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ช
์ฃผ๊ธฐ ์ด๋ฒคํธ์ ์๋ตํ๊ณ ,
iOS 13 ์ด์์์๋ UISceneDelegate ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ Scene ๊ธฐ๋ฐ ์ฑ์ ์๋ช
์ฃผ๊ธฐ ์ด๋ฒคํธ์ ์๋ตํฉ๋๋ค.
Scene์ ์ฑ์ UI์ ์ธ์คํด์ค๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋๋ค. UIKit์ ์ ์ ๋ ์ฑ์ด ์์ฒญํ๋ ์ฑ UI์ ์ธ์คํด์ค๋ง๋ค scene ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
Scene์ ๋ฉํฐ ์๋์ฐ๋ฅผ ์ง์ํ๊ธฐ ์ํด iOS 13๋ถํฐ ๋์
๋ ๊ฐ๋
์
๋๋ค.
Scene์ ํ๋์ UI ์ธ์คํด์ค๋ฅผ ํํํ๊ธฐ ์ํ windows์ view controllers ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
Scene๋ค์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ ํ๋ก์ธ์ค ๊ณต๊ฐ์ ๊ณต์ ํ๋ฉฐ ๋์์ ์คํ๋๊ธฐ ๋๋ฌธ์
ํ๋์ ์ฑ์์ ์ฌ๋ฌ ๊ฐ์ scene์ ๊ฐ์ง ์ ์๊ณ , scene delegate ๊ฐ์ฒด๋ค์ ๋์์ ์๋ํ๊ธฐ ๋๋ฌธ์ ๋ฉํฐ ์๋์ฐ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
์ฐธ๊ณ ์๋ฃ