์๋ ํ์ธ์ Foma ์ ๋๋ค!
์ค๋ ์์๋ณผ ๋ณผ ๊ฑด ๋ฐ๋ก ์ฑ ์๋ช ์ฃผ๊ธฐ์ ๋๋ค.
๋ชจ๋ iOS ์ ํ๋ฆฌ์ผ์ด์ ์ 5๊ฐ์ง ์ํ์ ์์ต๋๋ค.
States
1. Not running
์ฑ์ด ์คํ๋์ง ์์๊ฑฐ๋ ์์ ํ ์ข ๋ฃ๋์์ ๋ ์ํ์ ๋๋ค.
2.In-active(๋นํ์ฑํ)
์ฑ์ด ์คํ๋๋ฉด์ ํฌ์ด๊ทธ๋ผ์ด๋์ ์ง์ ํ์ง๋ง ์ด๋ ํ ์ด๋ฒคํธ๋ ๋ฐ์ง ์๋ ์ํ์ ๋๋ค.
3.Active(ํ์ฑํ)
์ฑ์ด ์คํ ์ค์ด๋ฉฐ ํฌ์ด๊ทธ๋ผ์ด๋์ ์๊ณ ์ด๋ฒคํธ๋ฅผ ๋ฐ๊ณ ์๋ ์ํ์ ๋๋ค.
4.Background
์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ ์์ผ๋ฉฐ ๋ค๋ฅธ ์ฑ์ผ๋ก ์ ํ๋์๊ฑฐ๋ ํ๋ฒํผ์ ๋๋ฌ ๋ฐ์ผ๋ก ๋๊ฐ์ ๋์ ์ํ์ ๋๋ค.
5.Suspended
๋ฐฑ๊ทธ๋ผ์ด๋์์ ํน๋ณํ ์์ ์ด ์์ ๊ฒฝ์ฐ ์ ํ๋๋ ์ํ์ ๋๋ค.
์ฑ์ ์๋ช ์ฃผ๊ธฐ ์ํ์ ๋ฐ๋ผ์ AppDelegate์ SceneDelegate์์ ํน์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ๋๋๋ฐ์.
Method
Not Running
application(_:willFinishLaunchingWithOptions:)
์ฑ ์คํ์ ์ค๋นํ๋ ๋ฉ์๋์ ๋๋ค.
ํ์ํ ์ฃผ์ ๊ฐ์ฒด๋ค์ ์์ฑํ๊ณ ์ฑ ์คํ ์ค๋น๊ฐ ๋๋๊ธฐ ์ง์ ์ ํธ์ถ๋ฉ๋๋ค.
applicationDidFinishLaunching(_:)
์ฑ ์คํ์ ์ํ ๋ชจ๋ ์ค๋น๊ฐ ๋๋ ํ ํ๋ฉด์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๊ธฐ ์ง์ ์ ํธ์ถ๋ฉ๋๋ค.
์ฃผ๋ก ์ด๊ธฐํ ์ฝ๋๋ฅผ ์ด๊ณณ์๋ค ์์ฑํฉ๋๋ค.
์ฑ์ด ์ข ๋ฃ๋๊ธฐ ์ง์ ์ ํธ์ถ๋๋ค.
(ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ ํ๋ณด๋ฅผ ์ํด suspended ์ํ์ ์๋ ์ฑ์ด ์ข ๋ฃ๋ ๋๋ background ์ํ์์ ์ฌ์ฉ์์ ์ํด ์ข ๋ฃ๋ ๋๋
์ค๋ฅ๋ก ์ธํด ์ฑ์ด ์ข ๋ฃ๋ ๋๋ ํธ์ถ๋์ง ์๋๋ค.)
In-Active
์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ ๋ซ๋ฌ๋์์ ํฌ์ด๊ทธ๋ผ์ด๋๋ก ๋ค์ด๊ฐ๊ธฐ ์ง์ ์ ํธ์ถ๋ฉ๋๋ค.
๋นํ์ฑํ ์ํ๋ฅผ ๊ฑฐ์ณ ํ์ฑํ ์ํ๊ฐ ๋ฉ๋๋ค.
Active
์ฑ์ด ๋นํ์ฑ์ํ์์ ํ์ฑ์ํ๋ก ์ง์ ํ๊ณ ๋ ์งํ ํธ์ถ๋ฉ๋๋ค.
์ฑ์ด ์ค์ ๋ก ์ฌ์ฉ๋๊ธฐ ์ ์ ๋ง์ง๋ง์ผ๋ก ์ค๋นํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
Background
์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ๋ก ๋ค์ด๊ฐ์ ๋ ํธ์ถ๋๋ค.
suspended ์ํ๊ฐ ๋๊ธฐ ์ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฑ ์ข ๋ฃํ๊ธฐ ์ ์ ํ์ํ ์์ ์ ํ๋ค.
Suspended
๋ฐ๋ก ํธ์ถ๋๋ ๋ฉ์๋๋ ์์ผ๋ฉฐ background์ํ์์ ํน๋ณํ ์์ ์ด ์์ ๋ ์ด ์ํ๊ฐ ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ๋ฉ์๋๋ง๋ค ํธ์ถ๋๋ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด
Example Image & Video
Interview Question
Q. ์ฑ์ด In-Active ์ํ๊ฐ ๋๋ ์๋๋ฆฌ์ค๋ฅผ ์ค๋ช ํ์์ค.
์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์ํ์์ ๋ค์ ํฌ์ด๊ทธ๋ผ์ด๋๋ก ์ง์ ํ ๋ ์ธ์กํฐ๋ธ์ํ๋ฅผ ๊ฑฐ์ณ ์กํฐ๋ธ ์ํ๊ฐ ๋๊ณ
๋ํ ์ฑ์ด ์คํ๋ ๋ ํฌ์ด๊ทธ๋ผ์ด๋์ ์ง์ ํ๋ฉด์ ๋ซ๋ฌ๋์ํ์์ ์ธ์ก์ดํธ์ํ๋ฅผ ๊ฑฐ์ณ ์กํฐ๋ธ ์ํ๊ฐ ๋ฉ๋๋ค.
๋ฉ์๋ ์์๋ก ๋ง์๋๋ฆฌ๋ฉด not running ์ํ์์ ์ฑ ์คํํ๊ณ ํฌ์ด๊ทธ๋ผ์ด๋ ์ง์ ์ applicationDidFinishLaunching(_:) ์ด ํธ์ถ๋๊ณ
์ด์ ํฌ์ด๊ทธ๋ผ์ด๋์ ์ง์ ํ ๋ sceneWillEnterForeground(_:) ๊ฐ ํธ์ถ๋๋ฉด์ ์ธ์กํฐ๋ธ ์ํ๊ฐ ๋ฉ๋๋ค.
๋ํ ์ ์ ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์ ์ง์ ํ์๋ sceneDidEnterBackground(_:) ๊ฐ ํธ์ถ๋๊ณ
๋ค์ ํฌ์ด๊ทธ๋ผ์ด๋์ ๋ค์ด๊ฐ๊ฒ ๋ ๋ sceneDidBecomeActive(_:) ์ด ํธ์ถ๋๋๋ฐ ์ฌ๊ธฐ์ ์ธ์กํฐ๋ธ ์ํ๋ฅผ ๊ฑฐ์ณ๊ฐ๊ฒ ๋ฉ๋๋ค.
Github
์ ์ฒด์์ค์ฝ๋
'๐ iOS > iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS ๋ฉด์ ์ง๋ฌธ]@escaping์ด๋? (1) - ๊ฐ๋ (0) | 2020.11.01 |
---|---|
์ฑ ์๋ช ์ฃผ๊ธฐ(AppLifeCycle)(2) - ํ์ฉ(feat.Youtube Premium) (0) | 2020.10.20 |
[iOS] Notification์ผ๋ก ๋ฐ์ดํฐ ๋ณด๋ด๊ธฐ(Pass data using Notification) (0) | 2020.09.14 |
[iOS] Carthage๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌํ๊ธฐ (0) | 2020.04.15 |
[iOS] ๊ฑธ๋ฆฐ ์๊ฐ ๊ตฌํ๊ธฐ (0) | 2020.02.16 |
๋๊ธ