๋ค์ด๊ฐ๋ฉฐ
์๋ ํ์ธ์ 3ํธ์ด๋ค์... ๊ธ ์ฐ๋๊ฒ ์ธ์์์ ์ ์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. (์์ด...ใ ) ์ด๋ฒ ํธ์์๋ ํ๋ก์ ํธ ์งํ ๊ณผ์ ๊ณผ ๊ฐ๋ฐํ๋ฉด์ ๊ฒช์๋ ์ด๋ ค์ ๋๋ ๊ธฐ์ ์ ์ธ ๊ณ ๋ฏผ์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ ์ด๋ณผํ ๋ฐ์. ์ด๋ป๊ฒ ์ ์ด์ผ ํ ๊น์... ์ด๋ฒ ํธ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋๊ณ ๊ณ ์ณ๊ฐ๋ ์์ผ๋ก ๋ฐฉํฅ์ ์ก์์ผ๊ฒ ์ด์..
ํ๋ก์ ํธ ๊ด๋ฆฌ ๋ฐ ๊ณต์ ์ฐ์
์ฒ์์๋ ๋ ธ์ ์ผ๋ก ๋ฌํํ๊ฒ iteration ์ฃผ๊ธฐ์ ๋ฐ๋ฅธ ๊ฐ๋ฐ ๊ณต์ ์ฐ์ ์ ์งํํ์๋๋ฐ, ์ด์๋ฅผ ๋ง๋ค๊ณ ๊ทธ์ ๋ฐ๋ผ ๊ฐ๋ฐ์ ์งํํ๋ ์ ์๊ฒ๋ ๊นํ๋ธ Project๋ฅผ ์ด์ฉํด์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ ๊ทผ์ฑ์ด ๋ ํธํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ฐ์ฅ ํฐ ์ด๋ ค์์ ๋๊ผ๋ ๋ถ๋ถ์ด ๊ฐ๋ฐ ๊ณต์ ์ฐ์ ์ด์๊ณ , estimated time(์์ ์๊ฐ)์ ์ ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ค ๋ถ๋ถ๋ค์ ๊ณ ๋ คํ๊ณ ๊ณ ๋ฏผํด๋ด์ผํ ์ง ์๊ฐ์ ์ข ํด๋ดค์ต๋๋ค.
1. ์๊ฐ ์ฐ์ ์ ํ ๋ ํผ๋ณด๋์น ๋ฃฐ์ด๋ ๊ฒ์ด ์๋ค๊ณ ํ๋๋ฐ, ์.. ๊ฐ์ธ์ ์ผ๋ก๋ ํฌ๊ฒ ์๋ฟ์ง๋ ์์์ต๋๋ค.
2. ์๊ฐ ์ฐ์ ์ ํ ๋ ์๋ํ๊ฒ๋ง ์ง๋ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ ์ง, ์ฝ๋๋ฅผ ์ผ๋ถ ์ ๋ฆฌํ๊ณ ๋ถํ์ํ ์ฝ๋๋ ๊ฐ์ ํ๋ ์๊ฐ๊น์ง๋ก ๊ธฐ์ค์ ์ก์์ผํ ์ง ๊ณ ๋ฏผ์ด ๋์์ต๋๋ค. (์ด๊ฒ์ ์ฌ์ค ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅผ ๊ฒ ๊ฐ์๋ฐ, ์ฌ์ ์๊ฐ์ ํ๋ณดํด์ ์๊ฐ ์ฐ์ ์ ํด์ผํ ๊ฒ ๊ฐ์์ด์.)
3. ์ด๊ฒ์ ๊ณต์ ์ฐ์ ๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉด์๋ ๊ฑฐ๋ฆฌ๊ฐ ์๋ ๋ด์ฉ์ด๊ธฐ๋ ํ๋ฐ ๋ฌด์์ ๋จผ์ ์์ ํด์ผํ ์ง์ ๋ํ ๋ถ๋ถ๋ ๊ณ ๋ฏผํ ํ์๊ฐ ์์ด๋ณด์ฌ์. UI๋ฅผ ์ง๋ ์์ ์ ๋จผ์ ์ญ ํด์ผํ ์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ๋ฉด์ ํ๋์ฉ ์ฐจ๊ทผ์ฐจ๊ทผ ์์ฑํด๋๊ฐ์ง๋ ๊ณ ๋ฏผ์ด ํ์ํด๋ณด์ ๋๋ค. --- ์ด๋ฒ์๋ ๋ ์ด์์์ ๋จผ์ ๋นจ๋ฆฌ ๋ค ์ก๊ณ ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ์ ๋ํ ํฌ์๋ฅผ ์ข ๋ ํ์ผ๋ฉด ์ด๋ ์๊น๋ผ๋ ์๊ฐ์ด ๋ค์์ด์.
4. iteration์ด ๋๋ ๋๋ง๋ค ๋จ์ ์์ ์ ์ฌ์ ๋ฆฌํ๊ณ ๋ค์ ์ฐ์ ํ๋ ์์ ์ด ๋งค์๊ฐ ๊ผญ ๋ค์ด๊ฐ์ผํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์๋ํ๋ฉด iteration์ด ์ข ๋ฃ๋ ๋๋ง๋ค ํ์ํ ์์ ์ด ์ถ๊ฐ๋ ์๋ ์ญ์ ๋ ์๋ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ์. ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ณด๋ค ์ผ์ ์ด ๋ฐ๋ ธ๋ค๋ฉด ์ฐ์ ์์ ์ญ์ ์ฌ์ ๊ฒํ ํ์๊ฐ ์์ด์.
5. ํฌ๊ฒ ๋๊ผ๋ ๊ฑด ์์ ์๊ฐ์ ์ก์๋ค๋ฉด ํ์ด๋จธ๋ฅผ ์ผ๋๊ณ ์์ ์ ํ ํ์์ฑ์ ๋๊ผ์ต๋๋ค. ๋ง๋ฅ ์์ ๋ง ํ๋ค๋ณด๋ฉด ์ด๋ ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ ธ๋์ง๋ ์ ๋ชจ๋ฅด๊ณ ์ดํ ํผ๋๋ฐฑ์ ๋ฐ์์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์ค๋๊ฐ ํ๋ฐ๋ถ์๋ ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ถ๋ถ์ ์ก์์ฃผ๋ ์ญํ ๋ ํ ์ ์์ ๊ฒ ๊ฐ์์.
6. ๋ ์ด๋ธ์ ready, in progress, done, backlog ์ ๋๋ฉด ์ถฉ๋ถํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ ๊ณต์
์์น ์ค๊ฐ ๋ฐํ์์ ๊ณต์ ํ๋ ๋ด์ฉ๋ ํฌํจ๋์ด์์ต๋๋ค.
1. ์ด๋ฒคํธ ์ ๋ฌ ์ด์ ํด๊ฒฐํ๊ธฐ
- B(๋ฐํ ์ํธ)๋ฅผ presentํ๊ณ dismissํ์ ๋ A์ ํญ๋ชฉ์ ๊ฐฑ์ ํ๋ ๋ถ๋ถ์์ ๋ฐ์ํ ์ด์
- ํด๋ก์ ๋ฅผ ํตํ ์ด๋ฒคํธ ์ ๋ฌ๋ก ๋ฌธ์ ํด๊ฒฐ
2. CollectionView Dynamic Height ์ด์
- CollectionView์ ๋์ด๋ฅผ Contents์ ํฌ๊ธฐ์ ๋ง์ถ์ด ๋์ ์ผ๋ก ์กฐ์ ํ๊ธฐ
- intrinsicContentSize ํ๋กํผํฐ, invalidateIntrinsicContentSize ๋ฉ์๋๋ก ํด๊ฒฐ
- Layout Draw Cycle์ ๋ํด์๋ ๋ค์ ์ดํด๋ณด๊ฒ ๋์์ต๋๋ค.
3. ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ
๋ค์์ ํ๋ฉด์ ์ ๊ฐ์ ๊ฒฝ์ฐ์ ์์ผ๋ก ๊ตฌ๋ถํด๋์ ๊ฒ์ฒ๋ผ ๊ณ์ธต๊ณผ ์์ญ์ ๊ตฌ๋ถํ์ต๋๋ค. ์ปฌ๋ ์ ๋ทฐ ๋ด์ ์ ์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ฉด ํ๋์ ์์ญ์ ํค๋ ๋ทฐ์ ํฌ๋ ๋ฌ์ฑ๋ฅ ์ด ๋ณํ๋๋๋ก ํ์ด์ผ ํ๊ณ , ๋ฌ๋ ฅ์ ๋ ์ง๋ฅผ ํด๋ฆญํ๋ฉด ํ ์ผ ๋ชฉ๋ก(ํฌ๋๋ฆฌ์คํธ)์ ๋ด์ฉ์ด ๋ฐ๋์ด์ผ ํ์ต๋๋ค. ํนํ ๋ฌ์ฑ๋ฅ ์ ๋ณํ ์ชฝ์ ํ๋์ ๋ทฐ์ ์ฃผํฉ์ ๋ทฐ์ ๊ณ์ธต์ ๋์ผํ๊ฒ ๊ตฌ์ฑํ์ผ๋ฉด ๋ฐ์ดํฐ๋ ์ด๋ฒคํธ ์ ๋ฌ์ด ๋ ํธํ์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์์ด์. ๋ฌด์์ ๋ทฐ๋ฅผ ์ชผ๊ฐ๋ ๊ฒ์ด ์ข์ ์์ ์ ์๋๋ผ๋ ๊ฒ์ ๋ค์ ๋๋ผ๊ฒ ๋์์ต๋๋ค. ์ฒดํฌ๋ฐ์ค ์ ํ/ํด์ ์ด๋ฒคํธ์ ๋ฐ๋ฅธ ๋ณํ๋ฅผ ํฌ๋ ๋ฌ์ฑ๋ฅ ํ์์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํด์ฃผ๋ ๋ถ๋ถ์ RxSwift๋ฅผ ์ด์ฉํ Binding์ผ๋ก ํด๊ฒฐํ์ต๋๋ค.
3ํธ ๋ง๋ฌด๋ฆฌ
3ํธ์ ์ข ์งง์ต๋๋ค.. ์ฌ์ค ๊ธ ์ฐ๋๋ผ ์ข ์ง์ณค์ด์ ใ ใ ใ ์์ํ ์ด์๋ ๋ ์๊ณ ๊ตฌ์กฐ์ ๋ํ ๊ณ ๋ฏผ๋ ํ์๋๋ฐ ์ด ๋ถ๋ถ์ ์ดํ์ ์ถ๊ฐ ์ ๋ฐ์ดํธํ๋๋ก ํ๊ฒ ์ต๋๋ค. 4ํธ์์๋ ์ถ์ ํ๊ธฐ ๋ฐ ํ๊ณ ์ ๋ํ ๋ด์ฉ์ผ๋ก ์ฐพ์์ค๊ฒ ์ต๋๋ค.
๊ธด ๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค :-)
'๐ iOS & Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] Method Swizzling (0) | 2022.10.12 |
---|---|
[์ค์คํฌ๋ 4ํธ] ํ๋ก์ ํธ ํ๊ณ ๋ฐ ์ถ์ ํ๊ธฐ (2) | 2022.10.05 |
[์ค์คํฌ๋ 2ํธ] ๋์์ธ... ๋์์ธ ์์คํ ... ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ํ. (0) | 2022.10.04 |
[์ค์คํฌ๋ 1ํธ] ๊ธฐํ, ์ฐธ ์ด๋ ต๋ค... (2) | 2022.10.04 |
[CI/CD] fastlane ๋น๋ ๋ฒํธ ์ฆ๊ฐ ์คํฌ๋ฆฝํธ (4) | 2022.10.04 |