๐ฌ ํ๋ก์ ํธ ์๊ฐ (App Store)
๊ธฐ์ ์งํ ๊ธฐ๋กํ๋ ๊ฟ ์์นด์ด๋น ์๋น์ค, ๋ ์ฝ๋๋ฆผ
๊ฐ์ฑ์ ์ธ ๊ฟ ๊ธฐ๋ก, ๋ ์ฝ๋๋ฆผ๊ณผ ํจ๊ป ํด์.
์ค์ง ๊ฟ๋ง์ ์ํ ์์นด์ด๋น ์๋น์ค ๋ ์ฝ๋๋ฆผ์์ ๋น์ ์ ์ด์ผ๊ธฐ๋ฅผ ํผ์ณ๋ณด์ธ์.
Hee | su_vera | L-j-h-c |
---|---|---|
- ํด๋ฆฐ ์ํคํ ์ณ๋ฅผ ์งํฅํ์ฌ ๊ฐ ๋ ์ด์ด์ ๋ณ๊ฒฝ์ฌํญ์ ์ํฅ์ ์ต์ํํ์ต๋๋ค.
- Domain ๊ณผ Data ๋ ์ด์ด ์ฌ์ด ์์กด์ฑ์ ์ญ์ ํ์ฌ Domain ๋ก์ง์ ๋ณ๊ฒฝ ์ด์ ๋ฅผ ์ต์ํํ์ต๋๋ค.
- Protocol ๋ฐ ์์กด์ฑ ์ฃผ์ ์ ์ด์ฉํ์ฌ Testableํ ์ฝ๋๋ฅผ ์์ฑํ๋ ค ๋ ธ๋ ฅํ์ต๋๋ค.
- ๊ฐ์ ํ ์
- MVVM์์ ์ด์ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ๋ชปํ๊ณ , input๊ณผ output์ ์กฐํฉํด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๊ฒผ์ต๋๋ค.
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ก์ฐ๋ฅผ ๋์ ํ๋ ค ๊ฐ์ ํ๋ ค ํฉ๋๋ค.
- Tuist๋ฅผ ์ด์ฉํ์ฌ Clean Architecture์ ํํ๋ก ๋ชจ๋์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค.
- Tuist๋ฅผ ์ด์ฉํ mono repo๋ฅผ ๊ตฌ์ถํ์ฌ, Swift Package๋ multi repo๋ฅผ ์ด์ฉํ ๋๋ณด๋ค ๋ชจ๋์ ํ์ฅ ๋ฐ ๊ด๋ฆฌํ๊ธฐ ์ฌ์์ก์ต๋๋ค.
- ๊ฐ์ ํ ์
- Presentation ๋ชจ๋์ ์ฌ๋ฌ ๊ฐ์ Feature ๋ชจ๋๋ก ๋ถ๋ฆฌํ์ฌ ๋์ฑ ๊ฒฉ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- Dynamic library์ Static library๋ฅผ ์ ์ ํ ์กฐํฉํ์ฌ ๋น๋ ์๊ฐ์ ๋จ์ถ์ํฌ ์ ์๊ณ , application binary size๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
- match๋ฅผ ์ด์ฉํ์ฌ ์ธ์ฆ์์ ํ๋กํ์ ๊ด๋ฆฌํ์ต๋๋ค.
- custom lane์ ์ด์ฉํ์ฌ ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํํ์ต๋๋ค.
- View์ ViewModel์ ์ด์ฉํ์ฌ UI์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ต๋๋ค.
- RxSwift์ Observable์ ์ด์ฉํ์ฌ View์ ViewModel์ ๋ฐ์ธ๋ฉํ์ต๋๋ค.
- ๋น๋๊ธฐ ์์ ์ ํธ๋ฆฌํ๊ณ ์ง๊ด์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํด RxSwift๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- UI Binding์ ์ํด RxCocoa๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- ์ ์ง๋ณด์์ฑ ๋๊ณ ํธ๋ฆฌํ Layout์ ๊ตฌํํ๊ธฐ ์ํด Compositional Layout์ ์ฌ์ฉํ์ต๋๋ค.
- ์ค๋ฅ๊ฐ ์ ๊ณ ์ฑ๋ฅ์ด ์ข์ ํ ์ด๋ธ๋ทฐ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด Diffable DataSource๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- ์ ์ ๊ฐ ์ํ๋ ์๊ฐ์ ์๋ฆผ์ ๋ณด๋ด๊ณ , retention์ ๋์ด๊ธฐ ์ํด APNs๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- ์ฌ๊ทํจ์๋ฅผ ํตํด ํ์ฌ ๋ทฐ์์ ์์ฑํ๊ธฐ ๋ทฐ๋ก ์ด๋ํ๊ธฐ ์ํ ๋ก์ง์ ๊ตฌํํ์ต๋๋ค.
- ๋ น์ ๋ฐ ์ฌ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด AVFoundation ๋ฐ AVAudioPlayer๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- Timer๋ฅผ ์ด์ฉํ์ฌ ์ค๋์ค ํ๋ ์ด์ด์ ์ฌ์ ์๊ฐ UI๋ฅผ ๊ตฌํํ์ต๋๋ค.