Apple Developer Academy @ POSTECH Mini Challenge #3 Project์ ๋๋ค. "Community Impact" ๋ฅผ ์ฃผ์ ๋ก ๋ค์ํ ์ฌํ์ ์ปค๋ฎค๋ํฐ๋ค์ด ์ง๋ฉดํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ Impact๋ฅผ ๋ง๋ค์ด ๋ณด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ์ต๋๋ค.
Multipeer Connectivity๋ฅผ ํตํด ๋์ผํ ์์ดํ์ด ํ๊ฒฝ, ๋๋ Peer-to-Peer ์์ดํ์ด, ๋ธ๋ฃจํฌ์ค๋ฅผ ํตํด ์ฒญ์ค๋ค์ ๋ฐํ์์ ๊ธฐ๊ธฐ ๋๋ ์์ดํจ๋์ ์ฐ๊ฒฐํฉ๋๋ค. ๋ฐํ์๋ AirPlay๋ฑ์ ์ฌ์ฉํด ํฐ ํ๋ฉด์ ๊ธฐ๊ธฐ๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ํน์ ๋ณธ์ธ์ ๊ธฐ๊ธฐ๋ฅผ ํตํด ์ฒญ์ค๋ค์ ๋ค์ํ ํผ๋๋ฐฑ๊ณผ ์ง๋ฌธ ๋ฑ์ ๋ฐ์ ์์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ 4๊ฐ์ง Option์ ํฌํ๋ฅผ ์งํํ ์์์ต๋๋ค.
- Apple Developer Academy @ POSTECH์ ๋ฉํ ๋ค์ ์ด๋ ค์์ ์๊ณ ๋์์ฃผ์.
- Multipeer Connectivity๋ฅผ ์ฌ์ฉํด ์๋์ด ๋ฌ๋์ ์ฃผ๋์ด ๋ฌ๋์ ํผ๋๋ฐฑ์ ๋์์ฃผ์.
- ๋คํธ์ํน : API optional, No backend
- Unity์ ๊ฐ์ ๊ฒ์ ์์ง (X)
- ๋ง๋ ์ ์๋ ์ฌ์ฉ์๋ฅผ ์ํ ์๋น์ค (X)
- ์ ํ์ด ์ง์/๋ณด์ฆํ๋ ์์(1st Party) ์ฐ์ ์ฌ์ฉ
- For What
Situation
- ์ ํ ์์นด๋ฐ๋ฏธ์ ๋ค์ํ Presentation ์ํฉ
- ์ ํ ์์นด๋ฐ๋ฏธ์ ๋ค์ํ ํ์ฌ
- ์ฒญ์ค๊ณผ์ ๋ค์ํ Interactiveํ ๋ฐํ๊ฐ ํ์ํ ๊ฐ๋จ
Who
it's for
- ์ ํ ์์นด๋ฐ๋ฏธ์ TOD(Tip of the Day)์ ๋ฐํ์
- ์ ํ ์์นด๋ฐ๋ฏธ ํ ๋ง์์์ ์ค๋นํ๋ ์๋์ด ๋ฌ๋
- ์ ํ ์์นด๋ฐ๋ฏธ์ ๋ค์ํ ํ์ฌ์ ๋ฐฃํ์(ex: ์์ผ๋ ์ต์คํ๋ ์ค, asyncSwift ํ์ฌ)
- ์ฒญ์ค๊ณผ ์ํตํ๋ฉฐ ๋ฐํ๋ฅผ ์งํํ๊ณ ์ ํ๋ ๋ฐํ์
- Emoji Reaction : ๋ฐํ์์ ๊ธฐ๊ธฐ์ ์ด๋ชจ์ง๋ก ๋ค์ํ Reaction์ ๋ณด๋ด๋ ๊ธฐ๋ฅ
- Emoji Vote : Emoji๋ฅผ ํตํด 4๊ฐ์ง Option์ Vote๋ฅผ ํ ์์๋ ๊ธฐ๋ฅ
- PeedBack : Chat์ ํตํด ๋ฐํ์์๊ฒ ์ง๋ฌธ์ ๋ณด๋ด๋ ๊ธฐ๋ฅ
- Emoji Reaction View : ๋ฐํ์๊ฐ ์ฒญ์ค๋ค์ Emoji Reaction์ ํ์ธํ๋ ๊ธฐ๋ฅ
- Emoji Vote View : ๋ฐํ์๊ฐ ์ฒญ์ค๋ค์ 4๊ฐ์ง Option์ Vote๋ฅผ ๋ฐ๊ณ ํ์ธํ ์์๋ ๊ธฐ๋ฅ
- PeedBack View : ๋ฐํ์๊ฐ ์ฒญ์ค๋ค์ ๋ค์ํ ์ง๋ฌธ๋ค์ ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ
โญ๏ธ PikiPick โญ๏ธ์ ํ๋ธ ์์๋ฐ๋ชจ
โญ๏ธ ์ฌ์ฉ๋ฐฉ๋ฒ โญ๏ธ์ฌ์ฉ๋ฐฉ๋ฒ ์์ฐ ์์
HomeView | RemoteView | QuestionView |
---|---|---|
PresentationView |
---|
PeedBackView |
---|
VoteView |
---|
- ์ด์๊ด๋ฆฌ : Miro
- ํ์๊ด๋ฆฌ : Github
- ์ปค๋ฎค๋์ผ์ด์
: Ryver, Notion, Zoom
- ๊ฐ๋ฐํ๊ฒฝ
- OS : iOS 15.5
- IDE : Xcode 13.4.1
- ์์ธ์ฌ์ฉ
- Application : UIKit, SwiftUI
- Design : Sketch, Figma, Illustrator
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ
import CoreHpatics
import MultipeerConnectivity
import Network
import OS
import SwiftUI
import UIKit
-
๊ธฐ๋ณธ์ ์ธ ์์ ํ๋ก์ธ์ค
- Issue ์์ฑ: Assignees ํ ๋น, Label ํ ๋น
- Kanban ์์ฑ: Issue์ TODO๋ฅผ ๋ฐํ์ผ๋ก ์นธ๋ฐ ์์ฑํ๊ธฐ
- Branch ์์ฑ: Branch์ ์ข ๋ฅ์ ๋ง๋ ํํ๋ก ์ด๋ฆ ์ง์
- Work: Issue์์ ์์ฑํ๋ ๋ด์ฉ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋, ๋์์ธ etc ๊ตฌํ
- Pull Request: Issue์ TODO์์ ์ ์๋์๋ ๋ชจ๋ ์์ ์ ๋ง์น ํ PR ์ ์ฒญ
- ์์ Branch์ Mergeํ๊ธฐ ์ , ์์ Branch์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฌ ์์ ํ๋ Branch๋ก ๋ค๊ณ ์, ์ต๋ํ Conflict๊ฐ ์๊ฒ ๋ง๋ค๊ธฐ
- ์ต์ 2๋ช ์ด์์ Reviewer์ Approve ํ Merge ๊ฐ๋ฅ
-
Phase: Issue
- Issue ์์ฑ ๊ท์น
- ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ด์ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์์ฑ
- ๊ตฌํํด์ผํ๋ ์์๋ค: ํด๊ฒฐํด์ผํ๋ ๋ฌธ์ ์ ๋ํด ๊ฐ๋ต ์์
- ๊ตฌํ ๋ฐฉ์: ์์ ์์๋ค์ ์ค์ ๊ตฌํ ์์ ์ธ๋ถ ์ฌํญ ๋ฐ ๋ฐฉ๋ฒ์ ์์ฑํ๋ค
- ์ ๋ชฉ
- 50์ ์ด๋ด
- ๋จ์ด ํํ๋ก ์ข ๊ฒฐ
ex) [FEAT] Add Notification Permission Error
ex) [FEAT] Notification ์ ๊ทผ ๊ถํ ์ถ๊ฐ
- ๋ณธ๋ฌธ
- 80์ ์ด๋ด
- ๋จ์ด ํํ๋ก ์ข ๊ฒฐ
- ์์ ์ฌํญ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช
- Phase: Branch
- Branch ๊ด๋ฆฌ
-
Main Branch
- Dev Branch: For Development
- View Branch: Development Branch ์ค์์๋ View ๋จ์๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ Branch๋ค
- ๊ฐ๋ฐ ์ด์ธ์ Branch๋ ์ธ์ ๋ ์ง ์ถ๊ฐ๋ ์ฌ์ง ์กด์ฌ
-
Branch ์์ฑ ๊ท์น
- Default: ์์ ํ๊ทธ/์ด์๋ฒํธ
- View Branch: View์ด๋ฆ/์ด์๋ฒํธ
ex) FEAT/[FEAT] AudienceView (#7) #11
ex) HomeView/[FEAT] MainView #3
- Phase: Pull Request
-
PR(Pull Request) ๊ท์น
- [์์ ํ๊ทธ] ์์ ์ฌํญ ์ถ์ฝ
- ex) [FEAT] ํ์๊ฐ์ ๋ทฐ ์ถ๊ฐ
- PR ์์ฑ ํ, ์ค๋ฅธ์ชฝ ํ๋จ์ Development์์ ์ฐ๊ด๋ ์ด์๋ฅผ ์ฐ๊ฒฐํ๊ธฐ
- Close #์ด์๋๋ฒ ์ ํํ๋ก ์๋ ํ ๋น์ด ๊ฐ๋ฅ
-
์์ ํ๊ทธ ์ผ๊ด
- FEAT : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ / ์ผ๋ถ ์ฝ๋ ์ถ๊ฐ / ์ผ๋ถ ์ฝ๋ ์์ (๋ฆฌํฉํ ๋ง๊ณผ ๊ตฌ๋ถ)
- FIX : ๋ฒ๊ทธ ์์
- DOCS : ๋ฌธ์ ์์
- TEST : ํ ์คํธ ์ฝ๋ ์ถ๊ฐ
- REFACTOR : ์ฝ๋ ๋ฆฌํฉํ ๋ง
- STYLE : ์ฝ๋ ์๋ฏธ์ ์ํฅ์ ์ฃผ์ง ์๋ ๋ณ๊ฒฝ์ฌํญ
- CHORE : ๋น๋ ๋ถ๋ถ ํน์ ํจํค์ง ๋งค๋์ ์์ ์ฌํญ