Skip to content

๐Ÿ‘พ ๊ฐœ๋ฐœ์ž ํ‚ค์šฐ๊ธฐ - ๋ฐฑ์ˆ˜๋ถ€ํ„ฐ ์›”๋“œํด๋ž˜์Šค ๊ฐœ๋ฐœ์ž๊นŒ์ง€ ์„ฑ์žฅํ•˜๋Š” ๊ณผ์ •์„ ์žฌ๋ฏธ์žˆ๊ฒŒ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ์œก์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

Notifications You must be signed in to change notification settings

boostcampwm2025/iOS01-Hmm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

913 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

iOS01-Hmm (ํ )

ํ ์ด ์—†์–ด....๊ทธ๋ž˜์„œ ํ ์ด์•ผ

ํŒ€์› ์†Œ๊ฐœ

์ด๋ฆ„ Sophia ๊น€์„ ์žฌ Oliver ๊น€์„ฑํ›ˆ Raven ์„œ์ค€์˜ Edward ์ตœ๋ฒ”์ˆ˜
์บ ํผ ID S004 S005 S016 S037
์‚ฌ์ง„ image image image image
์—ญํ•  ํŒ€์› ๐Ÿคด๐Ÿป ํŒ€์žฅ ํŒ€์› ํŒ€์›

๐ŸŽฎย ๊ฐœ๋ฐœ์ž ํ‚ค์šฐ๊ธฐ

image

๐Ÿ“ย ๊ฐœ์š”

๊ฐœ๋ฐœ์ž ํ‚ค์šฐ๊ธฐ๋Š” ๋ฐฑ์ˆ˜์—์„œ ์‹œ์ž‘ํ•ด ์›”๋“œํด๋ž˜์Šค iOS ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค.

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ๋‹จ์ˆœํ•œ ํƒญ ๋ฐ˜๋ณต ์œ„์ฃผ์˜ ๋ฐฉ์น˜ํ˜• ๊ฒŒ์ž„์—์„œ ๋ฒ—์–ด๋‚˜, iOS ๊ธฐ๊ธฐ ๊ณ ์œ ์˜ ์ž…๋ ฅ ๋ฐฉ์‹๊ณผ ๋ฌผ๋ฆฌ ์‹œ์Šคํ…œ์„ ์ ๊ทน ํ™œ์šฉํ•œ ๊ฒŒ์ž„ ๊ฒฝํ—˜์„ ๋ชฉํ‘œ๋กœ ๊ธฐํš๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ํ™”๋ฉด ํ„ฐ์น˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ๊ธฐ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ๋ฏธ๋‹ˆ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ฒŒ์ž„์˜ ํ•ต์‹ฌ ๋ฃจํ”„๋Š” ๋ฏธ๋‹ˆ๊ฒŒ์ž„ โ†’ ์žฌ์‚ฐ ํš๋“ โ†’ ์Šคํ‚ฌ/์•„์ดํ…œ/๋ถ€๋™์‚ฐ ๊ฐ•ํ™” โ†’ ์ปค๋ฆฌ์–ด ์„ฑ์žฅ ๋ฐ ๋ฏธ์…˜ ๋ณด์ƒ ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ”Œ๋ ˆ์ด๊ฐ€ ๋ˆ„์ ๋ ์ˆ˜๋ก ๋” ํšจ์œจ์ ์ธ ์„ฑ์žฅ ์ „๋žต์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹จ์ˆœํ•œ ๋ฐ˜๋ณต์ด ์•„๋‹Œ, ์„ ํƒ๊ณผ ์ „๋žต์ด ๊ฐœ์ž…๋˜๋Š” ์„ฑ์žฅ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” CoreMotion์„ ํ™œ์šฉํ•œ ๊ธฐ๊ธฐ ๊ธฐ์šธ๊ธฐ ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ SpriteKit ๋ฌผ๋ฆฌ ์—”์ง„์„ ํ™œ์šฉํ•œ ์˜ค๋ธŒ์ ํŠธ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด iOS ๊ธฐ๊ธฐ ํŠน์œ ์˜ โ€˜์†๋ง›โ€™๊ณผ ์ง๊ด€์ ์ธ ์กฐ์ž‘๊ฐ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ SwiftUI ๊ธฐ๋ฐ˜ UI ๊ตฌ์„ฑ๊ณผ Actor๋ฅผ ํ™œ์šฉํ•œ ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ํ†ตํ•ด ๊ฒŒ์ž„ ๋กœ์ง๊ณผ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜๊ณ , ์•ˆ์ •์ ์ด๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ํ”Œ๋ ˆ์ด ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”จ ์‹คํ–‰ ๋ฐฉ๋ฒ• / ์ตœ์†Œ ์ง€์› ๋ฒ„์ „

ํƒ€๊นƒ์„ SoloDeveloperTraining์œผ๋กœ ์„ค์ • ํ›„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
Minimum Deployment Target: iOS 17.0

โš”๏ธ ์‚ฌ์šฉ ๊ธฐ์ˆ  ์Šคํƒ

๊ตฌ๋ถ„ ์Šคํƒ
Language Swift 6.0
UI SwiftUI, Observable
Framework CoreMotion, SpriteKit
Async Swift Concurrency
Tools SwiftLint
CI/CD Github Actions

๐Ÿฆฟ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

SoloDeveloperTraining/
  โ”œโ”€โ”€ Prototype/                             # ํ”„๋กœํ† ํƒ€์ž… ํ”„๋กœ์ ํŠธ
  โ””โ”€โ”€ SoloDeveloperTraining/                 # ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ
      โ”œโ”€โ”€ SoloDeveloperTraining.xcodeproj
      โ””โ”€โ”€ SoloDeveloperTraining/
          โ”‚
          โ”œโ”€โ”€ App/                           # ์•ฑ ์ง„์ž…์  (AppDelegate, SceneDelegate ๋“ฑ)
          โ”‚
          โ”œโ”€โ”€ DesignSystem/                  # ๋””์ž์ธ ์‹œ์Šคํ…œ
          โ”‚
          โ”œโ”€โ”€ Extensions/                    # Swift ํ™•์žฅ ๊ธฐ๋Šฅ
          โ”‚
          โ”œโ”€โ”€ GameCore/                      # ๊ฒŒ์ž„ ํ•ต์‹ฌ ๋กœ์ง
          โ”‚   โ””โ”€โ”€ Models/
          โ”‚       โ”œโ”€โ”€ Games/                 # ๋ฏธ๋‹ˆ๊ฒŒ์ž„
          โ”‚       โ”œโ”€โ”€ Items/                 # ์•„์ดํ…œ ๋ชจ๋ธ
          โ”‚       โ”œโ”€โ”€ Storages/              # ์ €์žฅ์†Œ ๋ชจ๋ธ
          โ”‚       โ”œโ”€โ”€ Systems/               # ๊ฒŒ์ž„ ์‹œ์Šคํ…œ
          โ”‚       โ””โ”€โ”€ User/                  # ์œ ์ € ๊ด€๋ จ
          โ”‚
          โ”œโ”€โ”€ Production/                    # ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ
          โ”‚   โ”œโ”€โ”€ Data/                      # ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด
          โ”‚   โ”œโ”€โ”€ Error/                     # ์—๋Ÿฌ ์ฒ˜๋ฆฌ
          โ”‚   โ”œโ”€โ”€ FeedbackSystem/            # ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ (ํ–…ํ‹ฑ, ์‚ฌ์šด๋“œ ๋“ฑ)
          โ”‚   โ”œโ”€โ”€ Presentation/              # UI ๋ ˆ์ด์–ด
          โ”‚   โ””โ”€โ”€ Utility/                   # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค
          โ”‚
          โ”œโ”€โ”€ Development/                    # ๊ฐœ๋ฐœ์šฉ ์ฝ”๋“œ
          โ”‚   โ””โ”€โ”€ Presentation/              # ๊ฐœ๋ฐœ์šฉ UI
          โ”‚
          โ””โ”€โ”€ Resources/                     # ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
              โ”œโ”€โ”€ Assets.xcassets/           # ์ด๋ฏธ์ง€, ์ปฌ๋Ÿฌ ์—์…‹
              โ”œโ”€โ”€ Audio/                     # ์˜ค๋””์˜ค ํŒŒ์ผ
              โ””โ”€โ”€ Fonts/                     # ํฐํŠธ ํŒŒ์ผ

๐Ÿš€ย ์ฃผ์š” ๊ธฐ๋Šฅ

1. ์ปค๋ฆฌ์–ด ์„ฑ์žฅ ์‹œ์Šคํ…œ

  • 9๋‹จ๊ณ„ ์ปค๋ฆฌ์–ด ๋“ฑ๊ธ‰
    • ๋ฐฑ์ˆ˜ โ†’ ๋…ธํŠธ๋ถ ๋ณด์œ ์ž โ†’ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ โ†’ ... โ†’ ์›”๋“œํด๋ž˜์Šค ๊ฐœ๋ฐœ์ž
  • ๋ˆ„์  ์žฌ์‚ฐ ๊ธฐ๋ฐ˜ ์ž๋™ ์Šน๊ธ‰: ํ”Œ๋ ˆ์ดํ•˜๋ฉฐ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
  • ๋“ฑ๊ธ‰๋ณ„ ์ฝ˜ํ…์ธ  ํ•ด๊ธˆ: ์ƒˆ๋กœ์šด ๋ฏธ๋‹ˆ๊ฒŒ์ž„ ๋ชจ๋“œ์™€ ๊ฐ•ํ™” ์ฝ˜ํ…์ธ ๋ฅผ ํ•ด๊ธˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. 4๊ฐ€์ง€ ๋ฏธ๋‹ˆ๊ฒŒ์ž„

์ฝ”๋“œ์งœ๊ธฐ ์–ธ์–ด ๋งž์ถ”๊ธฐ ๋ฒ„๊ทธ ํ”ผํ•˜๊ธฐ ๋ฐ์ดํ„ฐ ์Œ“๊ธฐ
image image image image
๋ฐ˜๋ณต์ ์ธ ํ™”๋ฉด ํ„ฐ์น˜(ํƒญ)๋ฅผ ํ†ตํ•ด ์žฌ์‚ฐ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์–ธ์–ด ์•„์ด์ฝ˜์„ ๋งค์นญ ํ„ฐ์น˜ํ•˜์—ฌ ์žฌ์‚ฐ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CoreMotion ์ž์ด๋กœ ์„ผ์„œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ๊ธฐ ๊ธฐ์šธ์—ฌ ์žฌ์‚ฐ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SpriteKit ๋ฌผ๋ฆฌ ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํƒ€์ด๋ฐ์— ๋งž์ถฐ ํ„ฐ์น˜ํ•˜์—ฌ ์žฌ์‚ฐ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ํ”ผ๋ฒ„ ์‹œ์Šคํ…œ

  • 3๋‹จ๊ณ„ ํ”ผ๋ฒ„ ๊ฒŒ์ด์ง€:ย 0~300%๊นŒ์ง€ ๋…ธ๋ž€์ƒ‰ย โ†’ ์ฃผํ™ฉ์ƒ‰ โ†’ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์‹œ๊ฐํ™” ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ๊ณ„๋ณ„ ๋ฐฐ์œจ: 100% ๋„๋‹ฌ ์‹œ x๋ฐฐ, 200% ๋„๋‹ฌ ์‹œย y๋ฐฐ, 300% ๋„๋‹ฌ ์‹œย z๋ฐฐ ํš๋“ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ด์ง€ ๋ณ€ํ™”: ์•ก์…˜ย ์„ฑ๊ณต ์‹œ ์ฆ๊ฐ€ํ•˜๊ณ ,ย n์ดˆ๋งˆ๋‹ค ์ž๋™ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
0๋‹จ๊ณ„ 1๋‹จ๊ณ„ 2๋‹จ๊ณ„ 3๋‹จ๊ณ„
image image image image

4. ๊ฒฝ์ œ ์‹œ์Šคํ…œ

์Šคํ‚ฌ ์•„์ดํ…œ ๋ถ€๋™์‚ฐ
image image image
- ์—…๋ฌด 4๊ฐœ ๋ชจ๋“œ๋งˆ๋‹ค ์ดˆ๊ธ‰/์ค‘๊ธ‰/๊ณ ๊ธ‰์˜ ์Šคํ‚ฌ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
- ๋ ˆ๋ฒจ์ด ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ๊ฐ ์—…๋ฌด์˜ ์•ก์…˜ ์žฌ์‚ฐ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
- ์ปคํ”ผ, ๋ฐ•ํ•˜์Šค๋กœ ์ผ์‹œ์  ๋ฒ„ํ”„ ํšจ๊ณผ๋ฅผ ํš๋“ํ•ฉ๋‹ˆ๋‹ค.
- ํ‚ค๋ณด๋“œ, ๋งˆ์šฐ์Šค, ๋ชจ๋‹ˆํ„ฐ, ์˜์ž ๊ฐ๊ฐ์˜ 8๋“ฑ๊ธ‰์˜ ๊ฐ•ํ™” ์‹œ์Šคํ…œ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
- ๋“ฑ๊ธ‰์ด ๋†’์•„์งˆ์ˆ˜๋ก ๊ฐ•ํ™” ์„ฑ๊ณต ํ™•๋ฅ ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
- ๊ธธ๋ฐ”๋‹ฅ โ†’ ๋ฐ˜์ง€ํ•˜ โ†’ โ€ฆ โ†’ ํŽœํŠธํ•˜์šฐ์Šค์˜ ๋“ฑ๊ธ‰์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
- ๋ฐฐ๊ฒฝ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ณ , ๋ถ€๋™์‚ฐ์€ ํ•˜๋‚˜๋งŒ ์†Œ์œ  ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

5. ๋ถ€๊ฐ€ ์ฝ˜ํ…์ธ 

ํ€ด์ฆˆ ๋ฏธ์…˜ ํŠœํ† ๋ฆฌ์–ผ ์„ค์ •
image image image image
๊ฐœ๋ฐœ ๋ฐˆ๊ณผ ๊ด€๋ จ๋œ ํ€ด์ฆˆ๋กœ ๋‹ค์ด์•„ ๋ณด์ƒ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ชฉํ‘œ ๋‹ฌ์„ฑ์œผ๋กœ ์ง€์†์ ์ธ ํ”Œ๋ ˆ์ด๋ฅผ ๋ณด์žฅํ•˜๋ฉฐ ๋ณด์ƒ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ์ ์ธ ํ•™์Šต์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šด๋“œ, ํšจ๊ณผ์Œ, ํ–…ํ‹ฑ์— ๋Œ€ํ•œ ์„ค์ •์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

About

๐Ÿ‘พ ๊ฐœ๋ฐœ์ž ํ‚ค์šฐ๊ธฐ - ๋ฐฑ์ˆ˜๋ถ€ํ„ฐ ์›”๋“œํด๋ž˜์Šค ๊ฐœ๋ฐœ์ž๊นŒ์ง€ ์„ฑ์žฅํ•˜๋Š” ๊ณผ์ •์„ ์žฌ๋ฏธ์žˆ๊ฒŒ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ์œก์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages