iOS์์ ์คํ๋๋ ์ฑ๋ค์ ์ง์ค๋ ์ ์ด ๋ฐ ์กฐ์ ์ง์
@MainActor
class UIApplication : UIResponder
iOS
์ฑ์ ์ ํํ ํ๋์ UIApplication
์ธ์คํด์ค(๋๋ ๋งค์ฐ ๋๋ฌผ๊ฒ UIApplication
์ ํ์ ํด๋์ค)๋ฅผ ๊ฐ์ง UIApplicationMain(_:_:_:_:)
ํจ์๋ฅผ ํธ์ถํจUIApplication
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉฐ, ์ด ๊ฐ์ฒด๋ shared
๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ ์ ์์๋ผ์ฐํ
- ์ ๋ณด๋ ๋ฐ์ดํฐ๋ฅผ ํน์ ํ ๊ฒฝ๋ก๋ ๋ฐฉํฅ์ผ๋ก ์ด๋์ํค๋ ๊ณผ์
UIControl
ํด๋์ค์ ์ธ์คํด์ค)์ ์ํด ์ ๋ฌ๋ ์์
๋ฉ์์ง๋ฅผ ์ ์ ํ ๋์ ๊ฐ์ฒด๋ก ๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉ๋จUIControl
์ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ , ํด๋น ์ด๋ฒคํธ์ ๋ํ ์ก์
๋ฉ์์ง๋ฅผ UIApplication
์๊ฒ ์ ๋ฌํจUIApplication
์ ์ด๋ฌํ ์ก์
๋ฉ์์ง๋ฅผ ์ ์ ํ ๋์ ๊ฐ์ฒด๋ก ๋ณด๋ด์ด ์ด๋ฒคํธ์ ๋ํ ์ค์ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํจUIWindow
๊ฐ์ฒด๋ค์ด ํฌํจ๋์ด ์์UIView
๊ฐ์ฒด ์ค ์ด๋ ๊ฒ์ด๋ ํ์ํ ๋ ์ฐพ์ ์ ์์UIApplication
์ ์ฑ ๋ด์์ UIView
๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๊ณ ์ฐฝ(Window)์ ํตํด ์ด๋ฌํ UIView
๊ฐ์ฒด์ ์ก์ธ์คํ ์ ์์UIView
๊ฐ์ฒด๋ ์ฑ์ ํ๋ฉด ์์๋ฅผ ๋ํ๋ด๋ฉฐ, ์ด๋ฅผ ํตํด ํ๋ฉด์ ํ์๋๋ ๋ด์ฉ์ ์กฐ์ํ๊ณ ์ ์ดํ ์ ์์UIApplication
์ ํน์ ์ด๋ฒคํธ์ ๋ํ ์๋ต์ผ๋ก ํน์ ์ฐฝ(Window)์ ์๋ณํ๊ณ , ๊ทธ ์ฐฝ์ ํฌํจ๋ UIView
๊ฐ์ฒด๋ฅผ ์ฐพ์ ํด๋น ์ด๋ฒคํธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ํํ ์ ์์UIApplication
ํด๋์ค๋ UIApplicationDelegate
ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ฅผ ์ ์ํ๋ฉฐ, ํ๋กํ ์ฝ์ ์ผ๋ถ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํจopen(_:options:completionHandler:)
๋ฉ์๋๋ฅผ ํตํด ์ด๋ฉ์ผ์ด๋ ์ด๋ฏธ์ง ํ์ผ๊ณผ ๊ฐ์ ์์์ ํ๋ ฅ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์URL
๊ณผ ํจ๊ป ํธ์ถํ๋ ์ฑ์ Mail
์ฑ์ ์คํํ๊ณ ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์์์ด ํด๋์ค์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๊ธฐ๋ณ ๋์์ ๊ด๋ฆฌํ ์ ์๊ณ , ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ๊ธฐ ์ํด UIApplication ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจ
UIApplication
์ ์๋ธํด๋์คํํ๊ณ sendEvent(_:)
, ๊ทธ๋ฆฌ๊ณ /๋๋ sendAction(_:to:from:for:)
๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ์ธ์. ๊ฐ๋ก์ฑ ๊ฐ ์ด๋ฒคํธ์ ๋ํด ์ฒ๋ฆฌ๋ฅผ ์๋ฃํ ํ ์์คํ
์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ค์ ๋ณด๋ด๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ํธ์ถํด์ผํจsuper.sendEvent(event)