/SSC2024_DustBusters

SwiftStudentChallenge 2024 Winner๐ŸŽ

Primary LanguageSwift

DustBusters


แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-06-27 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 9 16 43

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

แ„‹แ…ขแ†ธแ„‹แ…กแ„‹แ…ตแ„แ…ฉแ†ซ

  • 2024 Swift Student Challenge์˜ 350๋ช… winner๋กœ ์ž…์ƒํ•œ ์•ฑ์ž…๋‹ˆ๋‹ค.
  • ๊ผญ UIKit์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„ ์ด์™ธ์—๋Š” ์ „๋ถ€ SwiftUI๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ library๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  100% ์• ํ”Œ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.(animation, Transition etc...)
  • CoreML, ARKit๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ interactiveํ•œ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ ํ™”๋ฉด
ScaleEffect ํ™”๋ฉด Simulator Screen Recording - iPad (10th generation) - 2024-07-15 at 10 25 48
MagnifyingEffect ํ™”๋ฉด Simulator Screen Recording - iPad (10th generation) - 2024-07-15 at 10 26 11
๋ฏธ์„ธ๋จผ์ง€ swipe ํ™”๋ฉด Simulator Screen Recording - iPad (10th generation) - 2024-07-15 at 10 27 04
๋ฏธ์„ธ๋จผ์ง€ ์ •๋ณด ํ™”๋ฉด Simulator Screen Recording - iPad (10th generation) - 2024-07-15 at 10 29 41

ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋™๊ธฐ

  • SwiftStudentChallenge์˜ ์‹ฌ์‚ฌ๊ฐ€ ํ•œ์ฐธ ์ง„ํ–‰๋ ๋•Œ ๋‚˜๋Š” ์–ด๋–ค๊ฑธ ํ•˜๊ณ  ์žˆ์„๊นŒ?์— ๋Œ€ํ•œ ์ƒ๊ฐ์—์„œ ์‹œ์ž‘ํ•œ ์•ฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค. '๊ทธ ๋ง˜๋•Œ์ฏค์ด๋ฉด ํ•œ์ฐธ ๋ฏธ์„ธ๋จผ์ง€๋กœ ๊ณ ์ƒํ•˜๊ณ  ์žˆ๊ฒ ๊ตฌ๋‚˜...' ๋ผ๋Š” ์ƒ๊ฐ์—์„œ ์‹œ์ž‘ํ•˜์˜€๊ณ , ์ € ์ด์™ธ์—๋„ ์ฃผ๋ณ€์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฏธ์„ธ๋จผ์ง€๋กœ ๊ณ ์ƒํ•˜๊ณ  ์žˆ๋‹ค๋Š”๊ฒƒ์„ ๋– ์˜ฌ๋ ค์„œ ๋ฏธ์„ธ๋จผ์ง€๋ฅผ ์ฃผ์ œ๋กœ ์•ฑ์„ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ €๋Š” ์ด ์•ฑ์ด ๋‹จ์ˆœํžˆ ๋ฏธ์„ธ๋จผ์ง€๊ฐ€ ์–ด๋–ค ์˜ํ–ฅ์„ ๋ผ์น˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ์ •๋ณด ์•ฑ์ด ์•„๋‹Œ, Apple์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ์ •๋ณด ์ „๋‹ฌ์„ interactiveํ•˜๊ฒŒ ํ•ด๋ณด์ž๊ฐ€ ์ด ํ”„๋กœ์ ํŠธ์˜ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ œ ๋งˆ์Œ๊ฐ€์ง์ด์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์•„์นด๋ฐ๋ฏธ์˜ Macro ํ”„๋กœ์ ํŠธ์˜€๋˜ https://apps.apple.com/kr/app/%EB%B9%84%EC%8A%A4%EB%8B%B4-bisdam/id6470152960 ์—์„œ SwiftUI์˜ ์ƒ์‚ฐ์„ฑ๊ณผ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ–ˆ๊ธฐ์—, ์ด๋ฒˆ ์•ฑ์€ ์ตœ๋Œ€ํ•œ SwiftUI๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ณต์žกํ•œ layout๊ณผ animation์„ path์™€ transition์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค๋˜๊ฐ€ ๋“ฑ์˜ ์ œ์•ฝ์กฐ๊ฑด์ด ๋งŽ์•˜์ง€๋งŒ, ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋น ๋ฅธ ์‹œ๊ฐ„์— ์•ฑ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” SwiftUI์˜ ์ƒ์‚ฐ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ์Šคํƒ

SwiftUI ARKit CoreML

๊ตฌํ˜„ ๊ธฐ๋Šฅ

SwiftUI๋ฅผ ์ด์šฉํ•œ UI ๊ตฌํ˜„

ScaleEffect, Path๋“ฑ์„ ์ด์šฉํ•œ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ๋ทฐ ๊ทธ๋ฆฌ๊ธฐ

ARKit๊ณผ CoreML์„ ์ด์šฉํ•œ ๋ฏธ์„ธ๋จผ์ง€ ์ œ๊ฑฐ ๊ฒŒ์ž„


๋ฐฐ์šด์ 

  • SwiftUI๋ฅผ ํ†ตํ•œ ๋ณต์žกํ•œ ๋ทฐ์™€ action๋“ค์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.
  • SwiftUI์˜ NavigationStack์„ ํ†ตํ•œ view์˜ ์ด๋™์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.
  • SwiftUI์˜ ๋‹ค์–‘ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์ œ ์•ฑ์„ ๋งŒ๋“ค๋•Œ ๊ณ ๋ฏผํ•ด์•ผํ•˜๋Š”์ (UX, UI, ์‚ฌ์šฉ์ž์˜ affordance ๋“ฑ)์„ ๊ณ ๋ฏผํ•ด๋ณด๊ณ , ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


๋ผ์ด์„ผ์Šค

MIT ยฉ Alpaka99