์ค๋ช
- ์ค์ ๋์ํ๋ ์คํ๋ฒ ์ค ์ฑ์ ํด๋ก ์ฝ๋ฉํ์์ต๋๋ค.
- ์ฒ์์ผ๋ก ํํ์ ์งํํ์ผ๋ฉฐ, commit convention, ๋ธ๋์น ์ ๋ต๋ฑ์ ์ฌ์ฉํด๋ณด์์ต๋๋ค.
๋์ ํ๋ฉด
Branch Strategy
- S03A forked branch์ feature ๋ณ๋ก ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ Merge
- Conflict ํด๊ฒฐ ํ, Remote์ PR์ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ์งํ
- ์ด ๋, Branch๋ฅผ ์์ฑํ ๋, namespace๋ฅผ Scene ๋จ์๋ก ์์ ํ์ฌ branch์ ๋ถ๋ฆฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ณ ์ ํจ
Code Structure
- VIPER ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฒซ๋ฒ์งธ ์ฃผ์ ๋์ ๊ณผ์ ๋ก ์ ํ์ต๋๋ค.
- Repository ํจํด์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ๊ณผ๊ธ์ ์ ๊ฒฝ์ผ์ต๋๋ค.
- ๋ํ API๊ฐ ๋ณต์กํ์ฌ ์์ฒญ๊น์ง์ ๊ฒฐ๊ณผ๊ฐ ์ค๋๊ฑธ๋ฆฐ๋ค๋ ์ ์ ๊ฐ์ํ์ฌ ๋น ๋ฅธ ๋ฐ์์ฑ์ ์ํด Core Data๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- ๋ํ ์ต๋ํ ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉ์ ๋์์ต๋๋ค.
ํด๋ ๊ตฌ์กฐ
- ์ฌ ๋ณ๋ก ํด๋๋ฅผ ๋๋์ด์ ๊ด๋ฆฌํ์์ต๋๋ค.
- ํ์ง๋ง, ์ฌ๋ง๋ค ๋คํธ์ํฌ ํต์ ์ด๋ ์ ์ฅํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋์ค์๋ ์ค๋ณต๋ ์ฝ๋๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ ๋ง๋ จํด์ผ ํ์ต๋๋ค.
- ์ด๋ ๊ฒ ์ฅ๋ฉด๋ณ๋ก ํด๋๋ฅผ ๋๋์ด ๊ด๋ฆฌํ๊ธฐ ๋ณด๋ค๋, ์ ์ฒด์ ์ธ ์ฑ์ ํ๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ด์ด๋ฅผ ๋๋์ด์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ผ๋ ์๊ฐ์ ํ์ต๋๋ค.
Event Scene
- 24์๊ฐ ์ดํ ์ด๋ฒคํธ ํด๋ฆญ์ ์ด๋ฒคํธ ํ๋ฉด ๋จ๋๋ก
- UserDefault์ ๊ฐ์ ์ ์ฅํ๊ณ , ์ด๋ฅผ ์ถ์ ํจ
- ํ๋ฉด Layout ๋ณ๊ฒฝ์ ๋์
Home Scene
- ์ฌ์ฉ ๊ธฐ์
- UICompositionalLayout
- DiffableDataSource
- ํํ๋ฉด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ํ๋ฉด์ ํ์ํจ
- ํน์ section์ ๋ํ์ฌ ์์ง ์คํฌ๋กค ๊ฐ๋ฅํ๋๋ก ๊ตฌํ
- ์ํ ํฐ์น์ ์์ธํ๋ฉด์ผ๋ก ์ด๋
- Whatโs New ๋ฒํผ ํญ์ ํ๋ฉด์ผ๋ก ์ด๋
WhatsNewScene
- ์ ์ ํ ์์ ํ์
- compositional layout์ ์ฌ์ฉํ์ฌ ๊ฐ๋ก ํ๋ฉด์ผ๋ก ๋ณผ ์์๋๋ก ํจ
Payment Scene
- ๋๋ค์ผ๋ก ๋ฐ์ฝ๋ ์์ฑํ์ฌ ํ๋ฉด์ ํ์
- ํ๋ฉด ์ง์ ์ 3๋ถ ์นด์ดํธ๋ค์ดํ ์ ํจ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋์์์ ์๋ฆฌ๊ณ ๋ฐ์ฝ๋์๊น์ ์ ๊ฒ ์ฒ๋ฆฌ
- ์ค๊ธฐ๊ธฐ์์ ์ฌ์ฉ์ money ๋ฒํผ ํฐ์น์ ์นด๋ฉ๋ผ ์คํ
- ์ฌ์ง์ดฌ์์ ์งํ๋ฅผ ์ธ์ํ์ฌ ํ๋ฉด์ ๋์
- 1000์ ๋ง๋ค ๋์ ์ด ์ปต์ ๋ค์ด๊ฐ๋ ์ ๋๋ฉ์ด์ ์ฌ์
- ์ฌ์ฉ ๊ธฐ์
- CoreAnimation
- CoreML
- Vison
- AVFoundation
Order Scene
- ์๋ฃ, ํธ๋, ์ํ ํญ๋ณ๋ก ์นดํ ๊ณ ๋ฆฌ ํ์ (์: ์ฝ๋๋ธ๋ฃจ, ๋จธ๊ทธ์ปต ๋ฑ)
- ์๋จ์ ๊ฒ์์ฐฝ์ผ๋ก ์นดํ ๊ณ ๋ฆฌ ํํฐ๋ง ๊ฐ๋ฅ
- ์นดํ ๊ณ ๋ฆฌ ํญ์ ํด๋น ์นดํ ๊ณ ๋ฆฌ๋ด์ ์ํ๋ค์ ํ์
- ์ปค์คํ SegmentedControll
- ์ฌ์ฉ ๊ธฐ์
- DiffableDataSource
- UICompositionalLayout
Category Scene
- ์นดํ ๊ณ ๋ฆฌ๋ด์ ์ํ๋ค์ ํ์
- ์ํ ์ ํ์ ์์ธ ํ๋ฉด์ผ๋ก ์ด๋
- ์๋๋ ์ฝ์ด๋ฐ์ดํฐ์ ์ ์ฅํ์ง ์๊ณ ๋คํธ์ํฌ ์์ฒญ๋ง์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ถ์์ผ๋ ๋ฐ์์ฑ ๋ฌธ์ ๋๋ฌธ์ ์ฝ์ด๋ฐ์ดํฐ์ ์ ์ฅํ๊ณ ๋ก๋ํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝ
- ์ฌ์ฉ ๊ธฐ์
- DiffableDataSource
- UICompositionalLayout
- CoreData
Detail Scene
- ์ต๋ํ ์คํ๋ฒ ์ค ์ฑ๊ณผ ๋น์ทํ UI๋ฅผ ๊ฐ์ง๋๋ก ๊ตฌํ
- ์คํฌ๋กค๋ทฐ์ contentOffset.y ์ ์ด๋ฏธ์ง๋ทฐ์ topConstraint๋ฅผ ํ์ฉํ์ฌ ์คํฌ๋กค์ ์ด๋ฏธ์ง๊ฐ ๊ฐ์ด ์ฌ๋ผ๊ฐ๋๋ก ๊ตฌํ
- ํน์ ์์น๊น์ง ์คํฌ๋กค์ ๋ด๋ ธ์๋ NavigationBar๋ฅผ ์คํ๋ฒ ์ค ์ฑ์ฒ๋ผ ํ๊ณ ์ถ์์ผ๋ ๊ตฌํ์คํจ
- navigationController.navigationBar.barTintColor ๋ฅผ ๋ณ๊ฒฝํ ์ ์์์. + ๋ค๋ฅธ ์ฌ๋ฌ๊ฐ์ง ๋ฌธ์
- ํํธ ๋๋ฅผ์ CoreData์ ํด๋น ์์ดํ ์ favorite bool๊ฐ์ ๋ณ๊ฒฝ
- ์ฃผ๋ฌธํ๊ธฐ ๋๋ฅผ์ 1์ดํ ๋ก์ปฌ ํธ์์๋ฆผ์ด ์ด (์ฑ ์ต์ด์คํ์ ๊ถํ ์ค์ alert ๋์)
- ์ฌ์ฉ ๊ธฐ์
- DiffableDataSource
- UICompositionalLayout
- CoreData
Favorite Scene
- CoreData์ ์ํ์ค favorite bool๊ฐ์ด true ์ธ ๊ฒ๋ง ํ์
- ํํธ, ์ฃผ๋ฌธํ๊ธฐ ๋ฒํผ ์์ธํ๋ฉด๊ณผ ๋์ผํ๊ฒ ๋์. (+ ํํธ ํฐ์น์ ๋ฐ๋ก ๋ชฉ๋ก์์ ์ ๊ฑฐ)
๋ฌธ์ ์ํฉ
-
์์ธํ๋ฉด์ ์ค์ ์ฑ๊ณผ ๋๊ฐ์ด ๊ตฌํํ๋๊ฒ์ด ์ด๋ ค์ ์
-
ScrollView vs CollectionView
-
NavigationBar ์ํ, ์์ ์กฐ์
-
scrollView offset์ ๋ฐ๋ฅธ ์ด๋ฏธ์ง ์์น ์กฐ์
-
๋ํ ์ผ ํ๋ฉด.. ๋๋์ฒด ์ด๋ป๊ฒ ๊ตฌํํ ์ ์์๊น
- ๋ฌธ์ 1: ์์ธํ๋ฉด ๋ทฐ๊ฐ ์ ๋ถ ๋ด๋ ค์ ์์๋๋ ๋ฐ์ด์ค๋์์ ํ๋ฉด์๋ ์คํฌ๋กค์ ์ฌ๋ฆด๋๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ฌ๋ผ๊ฐ๋๋ค. ์ ํฌ๋ ์คํฌ๋กค๋ทฐ์ ์คํ์ ์ ์ฌ์ง์ topConstraint์ ๋๊ธฐํ ํ๋์์ผ๋ก ๊ตฌํํ์ต๋๋ค.
- ๋ฌธ์ 2: ๋ค๋น๊ฒ์ด์
๋ฐ๊ฐ ์ฌ์ง์ ์ค๊ฐ์ ๋๋ฅผ ๋์ด๊ฐ๊ฒ๋๋ฉด, alpha๊ฐ ๋ณํ๋ฉด์ ๊ธฐ์กด์ ์์ผ๋ก ๋์์ต๋๋ค. ๊ทธ๋์ navigation Bar์ titleView์ barTintColor์ alpha ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ ค ํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ, titleView๋ ์ ์ฉ์ด ๋์ง๋ง, barTintcolor๋ ์ ์ฉ์ด ๋์ง ์์์ต๋๋ค.
navigationController.navigationBar.barTintColor = Color..
stackoverflow์ barTintcolor not working์ด๋ผ ์ณค๋๋, ์๊ฐ๋ณด๋ค ๋ง์ ๋ถ๋ค์ด ์๋ฌ๋ผ ํ๋๊ฑธ ๋ณด์์ต๋๋ค. - ๋ฌธ์ 3: ์ค์ ์คํ๋ฒ ์ค์ฑ์ ์ผ์ ์์ธํ๋ฉด์ ํจ๋ค์, ๋ค๋น๊ฒ์ด์ ๋ฐ๊ฐ ์์ด์ผ๋ง ํ ๊ณณ๋ถํฐ ์คํฌ๋กค์ ํ๋ฉด ์คํฌ๋กค์ด ๋ฉ๋๋ค. ํ์ง๋ง, ์ค์ ๋ก ์ ํฌ๊ฐ ๋ง๋ค์ด๋ณด์์ ๋๋, VC์ View๊ฐ Navigation Controller์ ํ์์ ์์นํ๊ฒ ๋์ด, ์คํฌ๋กค์ด ๋ถ๊ฐํ์ต๋๋ค. ๋ค๋ฅธ ๋ถ๋ถ๋ณด๋ค ๊ฐ์ฅ ์ด๋ ค์ ๋ ๋ถ๋ถ์ด ์ด ์ธ๋ถํ๋ฉด์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฝ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
-
-
API๊ฐ ๋ถ์น์ ํด์ ํ๋ค์์
- ๊ทธ์๋ฐ๋ฅธ ๋นํจ์จ์ ๊ตฌ์กฐ ๋ฐ์
-
ํด๋ ๊ตฌ์กฐ๊ฐ ์ฌ๋ณ๋ก ๋์ด ์์ด, ํ๋ฐ๋ถ์ ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ฐ์
- ๋ ์ด์ด ๋ณ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ผ ์๊ฐํจ
-
Core ๋ฐ์ดํฐ ์ ์ฅ, ๋ถ๋ฌ์ค๊ธฐ๊ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ผ ์ฝ๋ฐฑํจ์๊ฐ ํ์ํ์
- ๊ผญ ๊ธฐ์ตํด์ผ ํ ๋ถ๋ถ
Framework
Template Generator
- [iOS-VIPER-Xcode-Templates](
- https://github.com/infinum/iOS-VIPER-Xcode-Templates)