๊ฐ์ฅ ์ ๋ช ํ๊ฒ, ์ฐ๋ฆฌ๋ค์ด ์๊ฐ์ ๊ธฐ๋กํ๋ค.
ํฌํ ๋ถ์ค๋ฅผ ์ฐพ์๊ฐ ํ์ ์์ด, Apple ๊ธฐ๊ธฐ๋ง ์์ผ๋ฉด ์ด๋์๋ ์์๋๋ ๋๋ง์ ํฌํ ๋ถ์ค
๐ฅ ์ฑ ๋ค์ด๋ก๋
TestFlight๋ก ์ค์น (๊ถ์ฅ) | AppBox๋ก ์ค์น
TestFlight๊ฐ ์ฒ์์ด๋ผ๋ฉด โ ์ค์น ๊ฐ์ด๋
- ๐ ํ๋ก์ ํธ ๊ฐ์
- โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๐ฑ ์ง์ ๊ธฐ๊ธฐ
- ๐ ๏ธ ๊ธฐ์ ์คํ
- ๐ก ํต์ฌ ๊ฒฝํ
- ๐ ์์คํ ์ํคํ ์ฒ
- ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
- ๐ ๊ด๋ จ ๋ฌธ์
- ๐ฅ ํ์ ์๊ฐ
๐ท ์ต์ ์ค๋งํธํฐ์ ํ๋ฉด ์นด๋ฉ๋ผ๋ ์ฑ๋ฅ์ด ์ ๋ง ์ข์ง๋ง, ์ ์นด๋ฅผ ์ฐ์ ๋ ๋ด ๋ชจ์ต์ด ๋ณด์ด์ง ์์ ๊ฒฐ๊ตญ ํ์ง์ด ๋ฎ์ ์ ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ฐ๊ฒ ๋ฉ๋๋ค.
- ๋จ์ด ์ฐ์ด์ค ๋๋ ๋ด๊ฐ ์ด๋ป๊ฒ ๋์ค๋์ง ์ค์๊ฐ์ผ๋ก ๋ณผ ์ ์์ด "์ฐ๊ณ ํ์ธํ๊ณ ๋ค์ ์ฐ๋" ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ด ๋ฐ๋ณต๋ฉ๋๋ค.
- ๊ธฐ์กด Apple Watch ๋ฆฌ๋ชจ์ปจ ๊ธฐ๋ฅ์ ํ๋ฉด์ด ๋๋ฌด ์์ ํ์ ์ด๋ ๊ตฌ๋๋ฅผ ์ก๊ธฐ ๋ถํธํ๊ณ , ์ ํฐ๋ฅผ ๋๋ฅผ ๋ ์์ ์ด ๋ถ์ฐ๋๋ ํ๊ณ๊ฐ ์์์ต๋๋ค.
๋ฏธ๋ฌ๋ง๋ถ์ค๋ ์ด๋ฏธ ๋ณด์ ํ iPhone, iPad, Mac ๋ฑ Apple ๊ธฐ๊ธฐ๋ค์ ํ๋๋ก ์ฐ๊ฒฐํด ์ธ์ ์ด๋์๋ ๋๋ง์ ํฌํ ๋ถ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
๋จ์ํ ์ฌ์ง ์ฑ์ ๋ง๋๋ ๊ฒ์ ๋์ด, ๊ธฐ๊ธฐ ๊ฐ ํ๋ฉด ๊ณต์ ๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ง์ ์คํ๋์ค๊ธ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค ์ ์๋ ์ดฌ์ ํ๊ฒฝ์ ๊ตฌ์ถํฉ๋๋ค.
- ๐ ์ด๋์๋ ๋๋ง์ ์คํ๋์ค : ์ง, ์นดํ, ์ฌํ์ง ๋ฑ Apple ๊ธฐ๊ธฐ๋ง ์์ผ๋ฉด ๋๋ง์ ํฌํ ๋ถ์ค
- ๐ท ํ๋ฉด ์นด๋ฉ๋ผ ํ์ง ์ ์ง : ๊ณ ํ์ง๋ก ์ดฌ์ํ๋ฉด์ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๊ฐ๋ฅ
- ๐ Apple ์ํ๊ณ ํ์ฉ : ๋ณด์ ํ ๊ธฐ๊ธฐ๋ค์ด ์ฐ๋๋์ด ๋์ํ๋ ์ฌ๋ฏธ
๊ฐ์ง๊ณ ์๋ ๊ธฐ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ์ฐ๊ฒฐํ์ธ์.
์ํ๋ ์ดฌ์ ๋ฐฉ์์ ์ ํํ์ธ์.
ํ์ด๋จธ ์ดฌ์: 8์ด ์นด์ดํธ๋ค์ด ํ 8์ด ๊ฐ๊ฒฉ์ผ๋ก 10์ฅ ์๋ ์ดฌ์
๋ฆฌ๋ชจํธ ์ดฌ์: ์ฐ๊ฒฐ๋ ๊ธฐ๊ธฐ์์ ์ง์ ์ดฌ์ ๋ฒํผ์ ๋๋ฌ ์ํ๋ ์๊ฐ ์ดฌ์
iPhone ์นด๋ฉ๋ผ ํ๋ฉด์ iPad, Mac ๋ฑ์์ ์ค์๊ฐ์ผ๋ก ํ์ธํ์ธ์.
ํฌ์ฆ ๊ฐ์ด๋๋ก ๋ค์ํ ํฌ์ฆ๋ฅผ ์ถ์ฒ ๋ฐ์๋ณด์ธ์.
์ดฌ์ํ ์ฌ์ง ์ค ์ํ๋ ์ฌ์ง์ ์ ํํ๊ณ , ๋ค์ํ ์คํ์ผ์ ํ๋ ์์ ํฉ์ฑํ์ธ์.
์์ฑ๋ ์ฌ์ง์ ์ ์ฅํ๊ฑฐ๋ ๊ณต์ ํ์ธ์.
๋ณด์ ํ Apple ๊ธฐ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ์กฐํฉํ์ฌ ์ฌ์ฉํ์ธ์!
| ์ญํ | ๊ธฐ๊ธฐ | ์ต์ ๋ฒ์ |
|---|---|---|
| ์ดฌ์ (์นด๋ฉ๋ผ) | iPhone | |
| ๋ฏธ๋ฌ๋ง (์ค์๊ฐ ํ์ธ) | iPhone, iPad, Mac | |
| ๋ฆฌ๋ชจํธ (์ดฌ์ ๋ฒํผ) | iPhone, iPad, Mac, Apple Watch |
์กฐํฉ ์์
- iPhone(์นด๋ฉ๋ผ) + iPhone(๋ฏธ๋ฌ๋ง)
- iPhone(์นด๋ฉ๋ผ) + iPad(๋ฏธ๋ฌ๋ง)
- iPhone(์นด๋ฉ๋ผ) + Mac(๋ฏธ๋ฌ๋ง) + Watch(๋ฆฌ๋ชจํธ)
์ํํ ๋์์ ์ํด Bluetooth์ Wi-Fi๊ฐ ๋ฐ๋์ ์ผ์ ธ ์์ด์ผ ํฉ๋๋ค.
| ๊ตฌ๋ถ | ์คํ |
|---|---|
| Language | |
| UI | |
| Connectivity | |
| Media | |
| Concurrency | |
| Tools | |
| CI/CD |
์ฃผ์ ์ปดํฌ๋ํธ
- Camera Device: iPhone ํ๋ฉด ์นด๋ฉ๋ผ๋ก ์ดฌ์, H.264 ์ธ์ฝ๋ฉ ํ ์คํธ๋ฆฌ๋ฐ
- Mirroring Device: ์คํธ๋ฆผ ์์ ๋ฐ ๋์ฝ๋ฉํ์ฌ ์ค์๊ฐ ๋ฏธ๋ฌ๋ง ํ๋ฉด ํ์
- Remote Device: ์๊ฒฉ ์ดฌ์ ๋ช ๋ น ์ ์ก
ํต์ ๋ฐฉ์
- MultipeerConnectivity: iPhone โ iPad โ Mac ๊ฐ P2P ํต์ (์์ ์คํธ๋ฆฌ๋ฐ + ์ดฌ์ ๋ช ๋ น)
- WatchConnectivity: iPhone โ Apple Watch ๊ฐ 1:1 ํต์ (์ดฌ์ ๋ช ๋ น ์ ์ฉ)
Apple Watch๋ MultipeerConnectivity๋ฅผ ์ง์ํ์ง ์์ WatchConnectivity๋ก iPhone๊ณผ ์ง์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
mirroringBooth/
โโโ App/ # ์ฑ ์ง์
์ ๋ฐ ๋ฃจํธ ๊ตฌ์ฑ
โ โโโ mirroringBoothApp.swift # @main ์ฑ ์ํธ๋ฆฌ
โ โโโ AppDelegate.swift # ์ฑ ์๋ช
์ฃผ๊ธฐ ๊ด๋ฆฌ
โ โโโ RootView.swift # ๋ฃจํธ ๋ทฐ
โ โโโ RootStore.swift # ๋ฃจํธ ์ํ ๊ด๋ฆฌ
โ
โโโ Core/ # ๊ณตํต ์ธํ๋ผ
โ โโโ StoreProtocol.swift # MVI ์ํคํ
์ฒ ํ๋กํ ์ฝ
โ โโโ Router.swift # ํ๋ฉด ์ ํ ๋ผ์ฐํ
โ โโโ AppLogger.swift # ๋ก๊น
์ ํธ๋ฆฌํฐ
โ โโโ PlistRepository.swift # Plist ๋ฐ์ดํฐ ๊ด๋ฆฌ
โ
โโโ Device/ # ๊ธฐ๊ธฐ๋ณ ๊ธฐ๋ฅ ๋ชจ๋
โ โโโ Camera/ # ์ดฌ์ ๊ธฐ๊ธฐ
โ โโโ Mirroring/ # ๋ฏธ๋ฌ๋ง ๊ธฐ๊ธฐ
โ โโโ Remote/ # ๋ฆฌ๋ชจํธ ๊ธฐ๊ธฐ
โ โโโ Common/ # ๊ณตํต ์ปดํฌ๋ํธ
โ
โโโ Resources/ # ๋ฆฌ์์ค ํ์ผ
๋ ์์ธํ ์ ๋ณด๋ ํ๋ก์ ํธ ์ํค์์ ํ์ธํ ์ ์์ต๋๋ค.
| ๋ฌธ์ | ๋งํฌ |
|---|---|
| ๊ทธ๋ผ์ด๋ ๋ฃฐ | |
| ๊ธฐํ์ | |
| ์ค๊ณ์ | |
| ํ๋ก๋ํธ ๋ฐฑ๋ก๊ทธ |



