์ฑ์ ๊ตฌ์กฐ์ ๋์์๋ฆฌ
์ฑ์ ํฌ๊ฒ ํ๋ฉด(Scene), ๊ธฐ๋ฅ(Logic), ๋ฐ์ดํฐ(Data) ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. 'ํ๋ฉด'์ ๋ง ๊ทธ๋๋ก ์ฌ์ฉ์๊ฐ ์ฑ์ ์ฌ์ฉํ ๋ ๋ณด๊ฒ ๋๋ ํ๋ฉด์ ์๋ฏธํฉ๋๋ค. '๊ธฐ๋ฅ'์ <๋ฐฐ๋ฌ์ ๋ฏผ์กฑ> ์ด๋ผ๋ ์ฑ์์ ์ฌ์ฉ์์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฐ๋ฌ์ด ๊ฐ๋ฅํ ์์์ ์ ํ๋จํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉ์์๊ฒ๋ ๋ณด์ด์ง ์์ง๋ง ์ฑ์ ๋์ํ๊ฒ ํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ํ์ํ ๋ถ๋ถ์ ์๋ฏธํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก '๋ฐ์ดํฐ'๋ ์ฑ์ ์ฌ์ฉํ๋ฉด์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋๋ฐ, ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐฉ์์๋ ํผ์ ์ฌ์ฉํ๋ ์ผ๊ธฐ ์ฑ๊ณผ ๊ฐ์ด ์ฑ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์๊ณผ ์ธ์คํ๊ทธ๋จ๊ณผ ์ ํ๋ธ์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋ฐ๋์ ํ์ํ ๋ฐฉ์์ด ์์ต๋๋ค.
iOS ์ ํน์ง
iOS๋ 4๊ฐ์ง์ ๋ ํนํ๋ฉด์๋ ์ฃผ์ํ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
1. ํ์์ฑ (๋ณด์)
: '๊ฐ์ธ์ ๋ณด๋ณดํธ' ๋ Apple ์ ํต์ฌ ๊ฐ์น ํ๋์ ๋๋ค. ๋ฐ๋ผ์, Safari ์ ์ง๋ฅํ ์ถ์ ๋ฐฉ์ง ๊ธฐ๋ฅ์ด๋ ์ง๋์ฑ์์ ์ง๋ ์์น ๊ธฐ๋ก์ ๋ณด๊ดํ์ง ์๋ ๋ฑ Apple ์ ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฅผ ๊ทธ ์ด๋ค ๊ฐ์น๋ณด๋ค๋ ์ฐ์ ์ํ๊ธฐ ๋๋ฌธ์ iOS๋ ํ์์ ์ธ ํน์ง์ ๊ฐ์ก๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
2. ์ ๋ฐ์ดํธ
: iOS๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํ ์ง์ํ๋ฉฐ, ํ์ฌ(2022/05/31 ๊ธฐ์ค)๋ ์์ดํฐ ์ฌ์ฉ์์ 89%๊ฐ iOS 15 ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ํต๊ณ๊ฐ ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋ค์ํ iOS ๋ฒ์ ์ ์ง์ํ๋ ๊ฒฝ์ฐ, ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํ ์ ์์ผ๋ ์ฌ์ฉ์ ์๊ฐ ์ค์ด๋ค ์ ์๊ณ ๋ฐ๋๋ก ๋ค์ํ iOS ๋ฒ์ ์ ์ง์ํ๋ ๊ฒฝ์ฐ, ๋ง์ ์ฌ์ฉ์ ์ ํ๋ณด๊ฐ ๊ฐ๋ฅํ์ง๋ง ๊ฐ๋ฐ ์๊ฐ์ด ์ฆ๊ฐํ ์ ์๋ค๋ ๋๋ ๋ง์ ๋น ์ง ์ ์์ต๋๋ค.
3. ๋ ์ด์์
- Human Interface Guidelines
: Apple์ Human Interface Guidelines์ ๊ท์ ํ์ฌ ์ฌ์ฉ์ ์ค์ฌ์ ์ผ๋ก ๋ ์ด์์์ ๊ตฌ์ฑํด์ผ ํจ์ ๋ช ํํ ๊ท์ ํ๊ณ ์์ต๋๋ค. ๋ ์ด์์์ด ๋ชจ๋ฒ์ ์ผ๋ก ์ ์ฉ๋ ์ฌ๋ก๋ก๋ ํ๋ฉด ์ปจํธ๋กค์ ์๋ฅผ ์ ํํ๊ณ ์ต์ํ์ ์ํธ ์์ฉ์ผ๋ก ๊ฒ์ ๊ฐ๋ฅํ ๋ณด์กฐ ์ธ๋ถ ์ ๋ณด์ ์์ ์ ๋ง๋ค์ด ์ฌ๋๋ค์ด ๊ธฐ๋ณธ ์์ ๊ณผ ์ฝํ ์ธ ์ ์ง์คํ ์ ์๋๋ก ํ ๊ฒฝ์ฐ์ ์ฅ์น ๋ฐฉํฅ, ๋คํฌ ๋ชจ๋ ๋ฐ ๋์ ์ ํ๊ณผ ๊ฐ์ ๋ชจ์ ๋ณ๊ฒฝ์ด ์ํ ํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ก ๋์์ธํ ๋ ์ด์์์ด ์์ต๋๋ค.
- SF Symbols
: SF Symbols๋ 4,000๊ฐ ์ด์์ ๊ธฐํธ๊ฐ ์๋ SF Symbols๋ Apple ํ๋ซํผ์ฉ ์์คํ ๊ธ๊ผด์ธ San Francisco์ ์ํํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณ๋ ์์ด์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์์ด์ฝ์ด์ง๋ง ํฐํธ์ ์งํฅ์ ์ ๊ฐ์ง๊ณ ์๋ Symbols์ ๋๋ค. ๋ค๋ง SF Symbols ๋ iOS 13 ์ด์๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ ๋์์ด ์ค์ํ ์ ์ ๊ผญ ๋ช ์ฌํด์ผ ํฉ๋๋ค. ๊ทธ ์ดํ ๋ฒ์ ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์์ด์ฝ ์ธ์์ด ๋ถ๊ฐ๋ฅํ์ฌ ๋น์ด์๋ ์ด๋ฏธ์ง๊ฐ ๋จ๊ฒ ๋ฉ๋๋ค.
4. ํ๋์จ์ด
: ํ๋์จ์ด๋ iOS์์ ์ฌ์ฉํ๋ GPS, ์นด๋ฉ๋ผ, ์กฐ๋ ์ผ์ ๋ฑ์ ์๋ฏธํฉ๋๋ค.
Xcode ์ฃผ์ ๊ธฐ๋ฅ
์ฐ์ Xcode์ ๋ํด์ ์์๋ณด๊ธฐ ์ ์, compile ๊ณผ build ์ ๋ํ ๊ฐ๋ ์ ๊ฐ๋จํ ์์๋ณด๊ณ ๊ฐ๊ฒ ์ต๋๋ค.
- compile : ์ฑ์ ์์ค ์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ฝ๋๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
- build : ์์ค์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด๋ก ๋ฒ์ญํ๋ ๊ณผ์ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ธ ์ฑ ์์ฒด๋ฅผ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ ๊ฐ์ง ์ค์์๋ compile ๊ณผ์ ์ด ๋ ์ค์ํฉ๋๋ค.
- Create a new Xcode project
Xcode ์์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด, Organization Identifier ๊ณผ Bundle Identifier ์ด๋ผ๋ ์๋ก์ด ๊ฐ๋ ์ ๋ง๋ฅ๋๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ฐ์ Organization Identifier ๋ Bundle Identifier์ ์กฐํฉ๋๋ ์๋ณ์๋ก com.nickname ๊ณผ ๊ฐ์ด ์น์ ๋๋ฉ์ธ์ ๊ฑฐ๊พธ๋ก ์ ๋ ํํ๋ฅผ ๋๋๋ค. Bundle Identifier๋ ์ฑ์ ๊ณ ์ ํ ์ฃผ์๋ก ๋ค๋ฅธ ์ฑ๊ณผ ์ค๋ณต๋๋ ์๋ณ์๋ฅผ ์ง์ ํ ์ ์๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ถ์ ํ์ ์ด๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ง๋ง, ์๋ณ์๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ ์์ ๋ค๋ฅธ ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ ์ด ์ ์ ๊ผญ ์ ์ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ Bundle Identifier๋ ์ฃผ๋ฏผ๋ฒํธ์ ๊ฐ์ด ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์๋ณ์๋ก ๊ธฐ์ตํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ํ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋, ์ง์ ๊ฐ๋ฅํ ์ต์ ๋ฒ์ ๊ณผ ์ง์ ๊ฐ๋ฅํ ๊ธฐ๊ธฐ๋ฅผ ์ ํํ ์ ์๋ Deployment Info ๋ถ๋ถ์ ๊ผญ ์ฒดํฌํ๊ณ ๋์ด๊ฐ์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, iphone ๊ณผ ipad ์ ๋ชจ๋ ์ ํฉํ ๋ ์ด์์์ ๊ฐ์ถ ์ฑ์ ๋์ค์ iphone์ฉ์ด๋ ipad์ฉ์ผ๋ก ์ฑ์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ์ ์ ๊ผญ ์ฒดํฌํด์ผ ํฉ๋๋ค.
- UIKit & Interface Builder
UIKit ๋ ํ๋ ์์ํฌ๋ก iOS ์ tvOS์ ๋ค์ด๊ฐ๋ ์ฑ์ ๋น๋ํ๋ ๋ฐ์ ํ์ํ core objects ๋ฅผ ์ง์ํฉ๋๋ค. ๋ฐ๋ผ์ UIKit ๋ object๋ค์ ์ํธ์์ฉ์ด๋ ์ฝํ ์ธ ์์๋ฅผ ์ ๊ณตํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
Interface Builder๋ฅผ ์ฌ์ฉํ ๋, ์ค์ํ๊ฒ ์๊ฐํด์ผ ํ๋ ์ ์ ํ๋ก๊ทธ๋จ์ ์์์ ์์ ์๋ฆฌ๋ Entry Point ๋ผ๋ ํ์ดํ์ ๋๋ค. Entry Point ์ค์ ์ด ๋์ด ์์ง ์๋ค๋ฉด, view controller๋ฅผ ์ถ๊ฐํด๋ ์๋ฎฌ๋ ์ดํฐ์๋ ํ๋ฉด์ด ๋ํ๋์ง ์์ต๋๋ค. ๋ง์ฝ Entry Point ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด, View Controller ์ ์๋ Is Initial View Controller ๋ฅผ ์ฒดํฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
Xcode ๋ฅผ ํตํด ์ฑ์ ๊ฐ๋ฐํ๊ฒ ๋๋ฉด, ์ฃผ๋ก main๊ณผ launch screen์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ ์ฌ๊ธฐ์ launch screen ์ด๋ ์ฑ์ด ์คํ๋๊ธฐ 1~2์ด ์ ์ ๋จ๋ ํ๋ฉด์ ์๋ฏธํ๋ฉฐ ์ด ์คํฌ๋ฆฐ์๋ ์ธํฐ๋ ์ ์ด ์๋ ๊ธฐ๋ฅ์ ๋ฃ์ ์ ์์ต๋๋ค. main ์์๋ launch screen์ ์ ์ธํ ๋ถ๋ถ์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค.
โป ๊ฐ์ ์ฑ์ด๋ผ๋ ๊ธฐ๊ธฐ๋ณ๋ก ์ฑ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ด์
์ฑ์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋๋ฐ์ด์ค ๋ณ๋ก ์ฑ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฆ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ ์ฑ ์๋(App Thinning) ์ด๋ผ๋ ๊ธฐ์ ๋๋ฌธ์ ๋๋ค. ์ด๋ ์ฑ์ด ๋๋ฐ์ด์ค์ ์ค์น๋ ๋, ์ฑ์คํ ์ด์ ์ด์์ฒด์ ๊ฐ ๋๋ฐ์ด์ค์ ํน์ฑ์ ๋ง๊ฒ ์ค์น๋๋๋ก ํ๋ ๊ฒ์ผ๋ก ์๋ฅผ ๋ค์ด ๋๋ฐ์ด์ค์ ํด์๋ ๋ณ๋ก ์๋ก ๋ค๋ฅธ ์์ด์ฝ์ ์ ํํ ๋์ ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋๋ค.
'iOS > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.07.18 - 19 ใ ฃ Enum CaseIterable & Table View (0) | 2022.07.19 |
---|---|
22.07.13 ใ ฃ Class & Struct (0) | 2022.07.14 |
22.07.12 ใ ฃ์ด๊ฑฐํ & ํจ์์ ๋ฐํ๊ฐ & Raw String (0) | 2022.07.12 |
22.07.06 ใ ฃ์ฑ์ ์๋ช ์ฃผ๊ธฐ & AppDelegate vs SceneDelegate & ๋คํฌ ๋ชจ๋ & UIWindow (0) | 2022.07.06 |
22.07.05 ใ ฃ UIKit Framework (0) | 2022.07.05 |