iOS ์ฑ์ ๊ตฌ์กฐ
iOS์ฑ์ ์ฌ์ฉ์ ์ ์ ์ฝ๋, ์์คํ
ํ๋ ์์ํฌ ๊ฐ์ ์ํธ์์ฉ์ผ๋ก ๋์ํ๋ค.
- ์ฌ์ฉ์ ์ ์ ์ฝ๋ (Custom code) : ์ํ๋ ๊ธฐ๋ฅ๊ณผ UI๋ฅผ ๊ตฌํ ํ ์ ์๋ค.
- ์์คํ
ํ๋ ์์ํฌ (System Framework) : ํธ์งํ ์ ์๋ ๋ถ๋ถ. (iOS๊ธฐ๋ฐ์ ์ฑ์ด ์คํ๋๋ ๋ฐ์ ํ์ํ ๊ธฐ๋ฐํ๊ฒฝ์ ์ ๊ณตํ๋ค.)
iOS ์ฑ์ ์คํ ๊ณผ์ (Object-C ๊ธฐ๋ฐ์ผ๋)
C์ธ์ด์ ๋ฟ๋ฆฌ๋ฅผ ๋ ๋ชจ๋ ์ฑ์ main()
ํจ์๋ก ์์๋๋ค (Entry Point) iOS์ฑ๋ Object-C ๊ธฐ๋ฐ์ด๋ฏ๋ก ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ํ์ง๋ง iOS ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด main()
ํจ์๋ ์๋์ผ๋ก ๋ง๋ค์ด์ง๋ฉฐ, ์ด๋ ๊ฑด๋๋ฆด ํ์๊ฐ ์๋ค.
Main.m
main()ํจ์๋ main.m ํ์ผ์์ ์์ฑ๋๋ค.
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,
NSStringFromClass([AppDelegate class]));
}
}
๋ฉ์ธํจ์์ ๋์
- ์ฑ์ด ์คํ๋๋ฉด์ ๋งจ ์ฒ์
main()
ํจ์๊ฐ ์คํ๋๋ค.
main()
ํจ์๋ UIApplicationMain()
ํจ์๋ฅผ ํธ์ถํ๋ค.
UIApplicationMain()
ํจ์๋ UIApplication
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ด ๊ฐ์ฒด๋ ์ฑ์ ๋ณธ์ฒด์ ํด๋น๋๋ค.
UIApplication
๊ฐ์ฒด๋ info.plist ํ์ผ๋ก๋ถํฐ ์ฑ ๊ตฌ์ฑ์ ํ์ํ ์ ๋ณด๋ค์ ๋ก๋ํ๋ค.
- ์ด๋ฒคํธ ๋ฃจํ ๋ฐ ์ด๊ธฐ์ค์ ์ ์งํํ๋ค.
- ์คํ ์๋ฃ ์ง์ ์ ์ฑ ๋ธ๋ฆฌ๊ฒ์ดํธ์
application(_:didFinishLaunchingWithOptions:)
๋ฉ์๋๊ฐ ํธ์ถ๋๋ค.
UIApplicationMain()
ํจ์๋ iOS์ฑ ๋ถ๋ถ์ ์ํธ๋ฆฌ ํฌ์ธํธ๊ฐ ๋๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค ํธ๋ค๋ง, ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ปค์คํ
์ฝ๋๋ฅผ ํธ์ถ, ์ฑ ์์ฑ ์ด๊ธฐ์ค์ ์ ๊ตฌํํ๋ค.
import UIKit
UIApplicationMain(
CommandLine.argc, CommandLine.unsafeArgv, nil,
NSStringFromClass(AppDelegate.self)
)
- ๋ฐํ๋ ๊ฐ์ฒด์ธ
UIApplication
์ ์ฑ์ ๋ณธ์ฒด๊ฐ ๋๋ค. ์ปค์คํ
์ฝ๋๋ค, ์ด๋ฒคํธ ๋ฃจํ, ํธ์ ๋ฑ... ์ฑ์ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ํฌํจํ ์์๊ฐ์ฒด๊ฐ UIApplication
์ด๋ค. UIApplcation
์ AppDelegate
์๊ฒ ๊ถํ์ ์์ํ์ฌ ์ปค์คํ
์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ค.
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
}
iOS ์ฑ์ ์คํ ๊ณผ์ (Swift ๊ธฐ๋ฐ์ผ๋)
์ค์ํํธ ๊ธฐ๋ฐ ํ๋ก์ ํธ์๋ main.m
ํ์ผ๋ ์๊ณ , ์ํธ๋ฆฌ ํฌ์ธํธ๋ ์๋ค.
AppDelegate.swift ํ์ผ์ ๋ณด๋ฉด @main
์ด๋ผ๋ ์ด๋
ธํ
์ด์
ํ๊ธฐ๊ฐ ์๋๋ฐ, ์ด๋
ธํ
์ด์
์ด ํ์๋ ํด๋์ค๊ฐ ๋ธ๋ฆฌ๊ฒ์ดํธ๋ก ์ง์ ๋๋ค. ์ด ํ๊ธฐ๋ฅผ ํตํ์ฌ ์์์ ๋งํ ๋ฉ์ธํจ์๋์์ 1~5๋ฒ์ ๋์ฒดํ๋ค. ์ดํ์ ๊ณผ์ ์ ๊ฐ๋ค.
์ฆ, ๋ฐ๋ผ์ ์ค์ํํธ ๊ธฐ๋ฐ์ด๋ฉด ๋ค์์ฒ๋ผ ๋์ํ๋ค.
@main
์ด๋
ธํ
์ด์
์ ์ฐพ๊ณ , ํด๋น ํด๋์ค๋ฅผ ์คํํ๋ค.
- ์ปคํธํ
์ฝ๋์์๋
AppDelegate
ํด๋์ค์ application(_:didFinishLaunchingWithOptions:)
๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- (์ฑ์ด ์คํ๋๋ ์์ ์ ์ฒ๋ฆฌํด์ผํ ๋ด์ฉ์ด ์๋ค๋ฉด ์ฌ๊ธฐ ์์ฑํ๋ฉด ๋๋ค.)
- ์ด๋ฒคํธ ๋ฃจํ๊ฐ ์คํ๋๋ฉฐ, ์์ฑํ ์ปค์คํ
์ฝ๋๋ค์ด ์คํ๋๋ค.
- ์ฑ์ด ์ข
๋ฃ๋ ๋, ์ฑ์๋ํ ๋ฉ๋ชจ๋ฆฌ์ ๊ฑฐ๋ฅผ ์ํ์ฌ
applicationWillTerminate(_:)
๋ฉ์๋๋ฅผ ํธ์ถํ๋ค. (์ฑ์ด ์ข
๋ฃ๋๋ ์์ ์ ์ฒ๋ฆฌํด์ํ ๋ด์ฉ์ด ์๋ค๋ฉด ์ฌ๊ธฐ ์์ฑํ๋ฉด ๋๋ค)