Search
Duplicate

AppDelegate VS SceneDelegate

Created
2023/10/12 13:36
Tags
iOS
ํƒœ๊ทธ

AppDelegate VS SceneDelegate

ย AppDelegate

๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ

1.
func application(_:didFinishLaunchingWithOptions:) โ†’ Bool
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์•ฑ์ด ์‹œ์ž‘๋˜๊ณ  ์•ฑ์˜ ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ํ˜ธ์ถœ๋œ๋‹ค.
โ€ข
iOS 13 ์ด์ „ ๋ฒ„์ „์˜ ์•ฑ์—์„œ๋Š” UIWindow ๊ฐ์ฒด ๊ตฌ์„ฑ๊ณผ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ UIWindow ๊ฐ์ฒด์— ํ• ๋‹นํ•˜์—ฌ ํ™”๋ฉด์— ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
โ€ข
iOS 13 ๋ฒ„์ „ ๋ถ€ํ„ฐ๋Š” ์•ฑ์— scene์ด ์žˆ๋Š” ๊ฒฝ์šฐ, app delegate๋Š” ์ด๋Ÿฌํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ฑ…์ž„์ด ์—†๊ณ  scene delegate์—๊ฒŒ ์ฑ…์ž„์ด ์žˆ๋‹ค.
2.
func application(_:configurationForConnecting:options:) โ†’ UISceneConfiguration
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์•ฑ์— ํ‘œ์‹œํ•  ์ƒˆ๋กœ์šด scene์ด๋‚˜ window๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ˜ธ์ถœ๋œ๋‹ค.
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์•ฑ ์‹œ์ž‘์‹œ ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด scene์ด๋‚˜ ์ƒˆ๋กœ์šด window๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ˜ธ์ถœ๋œ๋‹ค.
3.
func application(_:didDiscardSceneSessions:)
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” scene์„ ์‚ญ์ œํ•  ๋•Œ ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์‚ญ์ œ๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ scene์„ ์‚ญ์ œํ•  ๋•Œ ์•ฑ์ด ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ didFinishLaunchingWithOptions:) ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ ์งํ›„ ๋ชจ๋“  ์‚ญ์ œ๋œ scene์— ๋Œ€ํ•ด ํ˜ธ์ถœ๋œ๋‹ค.

ย SceneDelegate

โ€ข
iOS 13 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” SceneDelegate๊ฐ€ AppDelegate๋กœ๋ถ€ํ„ฐ UIWindow์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•œ๋‹ค.
โ€ข
์•ฑ์—๋Š” ๋‘˜ ์ด์ƒ์˜ scene์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด์ œ scene์€ ์•ฑ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์ปจํ…์ธ ์˜ ๋ฐฐ๊ฒฝ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
โ€ข
๋”ฐ๋ผ์„œ SceneDelegate๋Š” UI ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์„ ๋‹ด๋‹นํ•œ๋‹ค.
โ€ข
SceneDelegate๋Š” UISceneSession์˜ scene ์ƒ์„ฑ, ํŒŒ๊ดด ๋ฐ ์ƒํƒœ ๋ณต์›๊ณผ ๊ฐ™์€ scene ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด๋ฒคํŠธ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.

๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ

1.
scene(_:willConnectTo:options:)
โ€ข
UISceneSession์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์—์„œ ํ˜ธ์ถœ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋ฉ”์„œ๋“œ์ด๋ฉฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” scene์ด ์•ฑ์— ์ถ”๊ฐ€๋  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
2.
sceneDidDisconnect(_:)
โ€ข
scene์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ƒํƒœ๋กœ ์ „ํ™˜๋  ๋•Œ, iOS๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšŒ์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด scene์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
โ€ข
์ด ๋ง์€ ์•ฑ์ด ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, scene๋งŒ session์—์„œ ์—ฐ๊ฒฐ ํ•ด์ œ๋˜๊ณ  ๋น„ํ™œ์„ฑํ™”๋˜๋Š” ๊ฒƒ์ด๋‹ค.
3.
sceneDidBecomeActive(_:)
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” sceneWillEnterForeground ๋ฉ”์„œ๋“œ ๋ฐ”๋กœ ๋‹ค์Œ์— ํ˜ธ์ถœ๋˜๋ฉฐ, scene์ด ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋„๋ก ์ค€๋น„ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
4.
sceneWillEnterForeground
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์•ฑ์ด ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ๋‚˜ Background ์ƒํƒœ์—์„œ Foreground ์ƒํƒœ๋กœ ์ „ํ™˜๋  ๋•Œ์ฒ˜๋Ÿผ scene์ด ์‹œ์ž‘๋˜๋ ค๊ณ  ํ•  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
5.
sceneWillResignActive(_:)
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ scene๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ค‘์ง€ํ•  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.
6.
sceneDidEnterBackground(_:)
โ€ข
์ด ๋ฉ”์„œ๋“œ๋Š” scene์ด ํ™”๋ฉด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ , ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ง„์ž…ํ•  ๋•Œ ํ˜ธ์ถœ๋œ๋‹ค.