Skip to content

TeamRecorDream/RecorDream-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ฌ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ (App Store)

๊ธฐ์ƒ ์งํ›„ ๊ธฐ๋กํ•˜๋Š” ๊ฟˆ ์•„์นด์ด๋น™ ์„œ๋น„์Šค, ๋ ˆ์ฝ”๋“œ๋ฆผ

๊ฐ์„ฑ์ ์ธ ๊ฟˆ ๊ธฐ๋ก, ๋ ˆ์ฝ”๋“œ๋ฆผ๊ณผ ํ•จ๊ป˜ ํ•ด์š”.

์˜ค์ง ๊ฟˆ๋งŒ์„ ์œ„ํ•œ ์•„์นด์ด๋น™ ์„œ๋น„์Šค ๋ ˆ์ฝ”๋“œ๋ฆผ์—์„œ ๋‹น์‹ ์˜ ์ด์•ผ๊ธฐ๋ฅผ ํŽผ์ณ๋ณด์„ธ์š”.

๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆย ํŒ€์› ์†Œ๊ฐœ

Hee su_vera L-j-h-c
image image image

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

Clean Architecture

image

  • ํด๋ฆฐ ์•„ํ‚คํ…์ณ๋ฅผ ์ง€ํ–ฅํ•˜์—ฌ ๊ฐ ๋ ˆ์ด์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์˜ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Domain ๊ณผ Data ๋ ˆ์ด์–ด ์‚ฌ์ด ์˜์กด์„ฑ์„ ์—ญ์ „ํ•˜์—ฌ Domain ๋กœ์ง์˜ ๋ณ€๊ฒฝ ์ด์œ ๋ฅผ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Protocol ๋ฐ ์˜์กด์„ฑ ์ฃผ์ž…์„ ์ด์šฉํ•˜์—ฌ Testableํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ์„ ํ•  ์ 
    • MVVM์—์„œ ์ด์ „ ์ƒํƒœ๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๊ณ , input๊ณผ output์„ ์กฐํ•ฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
    • ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ๋ฅผ ๋„์ž…ํ•˜๋ ค ๊ฐœ์„ ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

Tuist Modular Architecture

image

  • Tuist๋ฅผ ์ด์šฉํ•˜์—ฌ Clean Architecture์˜ ํ˜•ํƒœ๋กœ ๋ชจ๋“ˆ์˜ ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Tuist๋ฅผ ์ด์šฉํ•œ mono repo๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ, Swift Package๋‚˜ multi repo๋ฅผ ์ด์šฉํ•  ๋•Œ๋ณด๋‹ค ๋ชจ๋“ˆ์„ ํ™•์žฅ ๋ฐ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค.
  • ๊ฐœ์„ ํ•  ์ 
    • Presentation ๋ชจ๋“ˆ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Feature ๋ชจ๋“ˆ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋”์šฑ ๊ฒฉ๋ฆฌ๋œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Dynamic library์™€ Static library๋ฅผ ์ ์ ˆํžˆ ์กฐํ•ฉํ•˜์—ฌ ๋นŒ๋“œ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ , application binary size๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ›  ์‚ฌ์šฉ ๊ธฐ์ˆ 

fastlane

  • match๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์„œ์™€ ํ”„๋กœํ•„์„ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • custom lane์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ ๊ณผ์ •์„ ์ž๋™ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

MVVM

  • View์™€ ViewModel์„ ์ด์šฉํ•˜์—ฌ UI์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
  • RxSwift์˜ Observable์„ ์ด์šฉํ•˜์—ฌ View์™€ ViewModel์„ ๋ฐ”์ธ๋”ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

RxSwift & RxCocoa

  • ๋น„๋™๊ธฐ ์ž‘์—…์„ ํŽธ๋ฆฌํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด RxSwift๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • UI Binding์„ ์œ„ํ•ด RxCocoa๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

Compositional Layout & Diffable DataSource

  • ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋†’๊ณ  ํŽธ๋ฆฌํ•œ Layout์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Compositional Layout์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋ฅ˜๊ฐ€ ์ ๊ณ  ์„ฑ๋Šฅ์ด ์ข‹์€ ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Diffable DataSource๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

APNs

  • ์œ ์ €๊ฐ€ ์›ํ•˜๋Š” ์‹œ๊ฐ„์— ์•Œ๋ฆผ์„ ๋ณด๋‚ด๊ณ , retention์„ ๋†’์ด๊ธฐ ์œ„ํ•ด APNs๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๋ทฐ์—์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋ทฐ๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

AVFoundation

  • ๋…น์Œ ๋ฐ ์žฌ์ƒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด AVFoundation ๋ฐ AVAudioPlayer๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Timer๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ค๋””์˜ค ํ”Œ๋ ˆ์ด์–ด์˜ ์žฌ์ƒ ์‹œ๊ฐ„ UI๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

About

๐ŸŒŒโ˜๏ธ Record Your Dream, Play Your Dream ๐ŸŽค๐Ÿ““

Resources

Stars

Watchers

Forks

Languages