#1 ์ฌ์ฉ์์ ์๋ง์
#1-1 ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์์: ๋์ ํผ๋ก๊ฐ
Nutri Capture ๋ฐฉํฅ์ฑ - ์ด์๋จ๋ ์ฑ์ด ๋๋ ค๋ฉด
#1 ์ฑ์ ์ธ๊ธฐ๋ ๋๋ฌ๋ค ์ฑ์ ์ธ๊ธฐ๋ ๋๋ฌ๋ค๋น์ ์ ํฐ์๋ ์ด๋ฏธ ์ฑ์ด ๊ฝ์ฐจ ์๋ค. ๊ทธ๋์ ๋น์ ์ ์ด์ ์๋ก์ด ์ฑ์ ๋ค์ด๋ก๋ ํ์ง ์๋๋ค. ์๋กญ๊ฒ ์ฑ์ ์ถ์ํ๋ ์ฑ๊ฐ๋ฐ์ฌ๋ ์ฑํผ๋ธ๋ฆฌ์ ๋ ์ง์ํด
kenel.tistory.com
์ ๊ฒ์๊ธ์์ Nutri Capture๋ฅผ ์ด์ ๋จ๋ ์ฑ์ผ๋ก ๋ง๋ค๊ฒ ๋ค๋ ํฌ๋ถ๋ฅผ ๋ฐํ๋ค. ๊ทธ๋ฌ๋ ค๋ฉด ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์๊ณ ์ ํํ๊ฒ ์ ๊ณตํด์ผํ ํ
๋ค. ์๋จ ๊ด๋ฆฌ... ์ด์ ์ ๋๋ ์ฌ๊ธฐ์์ ์ฌ์ฉ์๊ฐ ์์ ์ด ๋จน์ ์์ ๊ธฐ๋ก์ ์์น๋ก ์
๋ ฅํ๋ ๋ด์ฉ์ UI ์ค์ผ์น๋ฅผ ํ์๋ค. ์์ ์ด ๋จน์ ์์์ ์๊ณผ ์์๋ถ์ ์นผ๊ฐ์ด ๊ณ์ฐํ๊ณ , ๊ทธ๊ฑธ ๋งค๋ฒ ๊ธฐ๋กํ๋ ๊ฒ ์ ๋ง๋ก ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒฝํ์ด ๋ง์๊น?
#1-2 ์๋จ ๊ธฐ๋ก์ ํ๊ณ ์ถ์ ๊ฒ์ด์ง, ์ํ ๋ฌธ์ ๋ฅผ ํ๊ณ ์ถ์ ๊ฒ ์๋๋ค
์ฐ๋ฆฌ๋ ๋ก๋ด์ด ์๋๋ฐ ๋ง์ด๋ค. ๋์ฒด ์ด๋ ์ฌ์ฉ์๊ฐ ๋งค ๋ผ๋ ๊ทธ๋ฆฌ๊ณ ๋งค ๊ฐ์๋ง๋ค ์์ ์ฑ๋ถ์ ๊ฒ์ํ๊ณ ใ์์์์ ์ด๋ค ์์์์ ๋น์จ์ ์ฐ์ ํ๊ณ ใ๊ทธ๊ฑธ ๋ ํ๋ํ๋ ์ผ์ผํ ๊ธฐ๋กํ๊ฒ ๋๊ฐ? ๋ง์ฝ ๊ทธ๋ฐ ์ฑ์ด ์๋ค๋ฉด, 3์ผ ๋ด๋ก ์์ ํ ์ง๋ ค๋ฒ๋ ค ์ ์์กฐ์ฐจ ํ์ง ์์ ๊ฒ์ด๊ณ ๋ง์ง๋ง์ ๊ฒฐ๊ตญ ์ญ์ ๋ ๊ฒ์ด๋ค. ์ฌ์ฉ์๋ ์ํ ๋ฌธ์ ํ์ด๋ฅผ ๊ธฐ๋ํ๋ฉฐ ์ฑ์ ์ค์นํ ๊ฒ์ด ์๋๋ค.
#1-3 ๊พธ์คํ, ์ํ๋ ๊ท์น๋๋ก ์์ฌํ๊ธฐ
์ฌ์ฉ์๊ฐ ์ ๋ง ์ํ๋ ๊ฒ์ ์์ ์ด ์ํ๋ ์์ฌ์ ๊ท์น์ ๊ทธ์ ์ง์ผ๋๊ฐ๋ ๊ฒ์ด๋ค. ์๋จ ๊ด๋ฆฌ ์ฑ์ ๊ทธ๊ฑธ ๋ณด์กฐํด์ผ์ง, ๋ฐฉํดํด์๋ ์ ๋๋ค.
#2 ๋์ ๋ฐฉํฅ
#2-1 ๋ฌด๋ฆ๋ณดํธ๋์ ๊ณ ์ ์ธ์ง๊ฐ๊ฐ
ํฌ์ค์ ๋ฌ๋์ ์ด์ฌํ ํ๋ ๋์, ๋ฌด๋ฆ์ด ์ํ์ ๋ณดํธ๋๋ฅผ ์ฐพ์๋ณธ ์ ์ด ์์๋ค. ๊ทธ ์ค ์ด๋ค ๋ณดํธ๋ ํ์ฌ์ ์ ํ ํ๋ณด ๋ฌธ๊ตฌ๊ฐ ์์ง๋ ๊ธฐ์ต์ ๋จ๋๋ค. ๋ฐ๋ก ๊ณ ์ ์ธ์ง๊ฐ๊ฐ(Propriocept)์ ๋ํ ๋ฌธ๊ตฌ๋ค. ๋ณดํธ๋์ ํจ๊ณผ๋ ๊ด์ ์ ๊ฐ๋๋ฒ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ํํ๊ณ ์ถฉ๊ฒฉ ์ฟ ์
๋์ ํ๋ ๊ฒ ์ธ์, ์ ์ ์ ์ธ ์ธก๋ฉด์์์ ์ด์ ๋ ์ ๊ณตํ๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก ๊ณ ์ ์ธ์ง๊ฐ๊ฐ์ด๋ค.
๊ณ ์ ์ธ์ง๊ฐ๊ฐ์ด๋ ๋ด ๋ชธ์ ๊ฐ ๋ถ๋ถ์ด ์ด๋์ ์์นํ๊ณ ์๋์ง๋ฅผ ์ธ์งํ๋ ๊ฐ๊ฐ์ด๋ค. ๋์ ๊ฐ๊ณ ๋ ์๊ธฐ ์ฝ๋ฅผ ๋ง์ง ์ ์๊ณ ๋ด ๋ชธ์ ๊ฐ ๋ถ๋ถ์ด ์ด๋์ ์์นํ๊ณ ์๋์ง ์๋ ๊ณ ์ ์ธ์ง๊ฐ๊ฐ ๋์ด๋ค. ๊ณ ์ ์ธ์ง๊ฐ๊ฐ ์ธํฌ๋ ํผ๋ถ์ ๊ฐ์ฅ ๋ง์ด ๋ถํฌํ๋๋ฐ, ๋ฌด๋ฆ ๋ณดํธ๋๋ ๋์ ํผ๋ถ๋ฅผ ๊ณ ๋ฅธ ์๋ ฅ์ผ๋ก ๋๋ฌ์ฃผ๊ธฐ์ ์ฐฉ์ฉ์์ ๊ณ ์ ์ธ์ง๊ฐ๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค. ์ฆ, ๋ณดํธ๋๋ฅผ ์ฐฉ์ฉํ๊ธฐ ์ด์ ๋ณด๋ค ๋ฌด๋ฆ์ ๋ ์ ์ธ์ํ๊ฒ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฌด๋ฆ์ ๊ณผ๋ํ ์ถฉ๊ฒฉ์ ๋ ์ ๊ฐ์งํ์ฌ ์์์ ๋ชธ์ ์ฌ๋ฆด ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
#2-2 ์ฌ์ฉ์๋ '์์น'๊ฐ ์๋ '๋๋'์ ์ํ๋ค
#1์์ ๋นํํ๋ ๋ด์ฉ์ ๊ธฐ์กด UI ์ค์ผ์น์ ๋์ ํผ๋ก๊ฐ์ด์๋ค. ์ด ํผ๋ก๊ฐ์ '์์น์์ ์ง์ฐฉ'์์ ๋น๋กฏ๋๋ค. ๋ฐ๋๋ก ์ด์ ๋ถํฐ๋ Nutri Capture์์ ์์น์ ๋ํ ๋ด์ฉ์ ์์ ํ ๋ฐฐ์ ํ๋ ค๊ณ ํ๋ค. ๋ด๊ฐ ์ด๋ค ์์์๋ฅผ '์ผ๋ง๋' ๋จน์๋์ง๋ฅผ ๊ธฐ๋กํ๋, ๊ทธ '์ผ๋ง๋'๋ฅผ ์ซ์๋ก ๊ธฐ๋กํ๊ฒ ๋ง๋ค์ง ์์ ๊ฑฐ๋ผ๋ ์๊ธฐ๋ค. ์ด ๋ฐฉ์์ผ๋ก ์ฑ์ ๋ง๋ค๋ฉด, ํ๋ก ์ด๋์ ์์ ์๋จ ๊ด๋ฆฌ์ฒ๋ผ ์ ๋ฐํ ์์น ์ถ์ ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์๋จ์ ๊ด๋ฆฌํด๋๊ฐ๊ณ ์๋ค๋ ๊ณ ์ ์ธ์ง๊ฐ๊ฐ์ ์ ๊ณต์ ์ฌ์ ํ ๊ฐ๋ฅํ๋ค.
#2-3 ํ์ฅ์ค ์ฒดํฌ๋ฆฌ์คํธ
๊ทธ๋ ๋ค๋ฉด ๊ทธ '๊ณ ์ ์ธ์ง๊ฐ๊ฐ'์ ์ด๋ป๊ฒ ํ์ฑํ์ํค๋๊ฐ? ๋๋ ์ฑ์ ํ๋์ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค. ํ๋ฃจ์ ํ ๋ฒ์ฉ ํ์ฅ์ค์ ์ํ๋ฅผ ์ฒดํฌํ๋ ํ์ฅ์ค ์ฒดํฌ๋ฆฌ์คํธ์ฒ๋ผ, ๋งค ๋ผ๋ ๋งค ๊ฐ์๋ง๋ค ํฐ์น ๋ช ๋ฒ์ผ๋ก '๋๋ง์ ์๋จ ์ฒดํฌ๋ฆฌ์คํธ'๋ฅผ ์์ฑํ ์ ์๊ฒ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ ๊ตฌํ์ ์์ธํ ๋ด์ฉ์ #3์์ ๋ค๋ฃฌ๋ค.
#2-4 ์ฒดํฌ๋ฆฌ์คํธ ๊ฐ์ธํ
์๋จ ๊ด๋ฆฌ์ ์ฃผ์ ๋ ์ฌ์ฉ์๋ง๋ค ์ฒํธ์ผ๋ฅ ์ ์ด๋ค. ์ด๋ค ์ฌ์ฉ์๋ ๋น์ ์ค์ด๋ ๊ฒ์ด ์ฃผ์ ๋ชฉํ์ผ ์๋ ์๊ณ , ์ด๋ค ์ฌ์ฉ์๋ ํ์ํ๋ฌผ ๋ค์ด์ดํธ, ๋ ์ด๋ค ์ฌ์ฉ์๋ ๋งค ๋ผ๋์ ์ฌ์ ์ง์ ํฌํจํ๋ ๊ฒ ๋ชฉํ์ผ ์ ์๋ค. ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ๋ง ์ถ๋ ค ์ ํํ ์ ์์ด์ผ ํ๋ค. ์ฑ ์ต์ด ์คํ ์์ ์ด๋ค ๋ชฉ์ ์ผ๋ก ๋ณธ ์ฑ์ ์ค์นํ๋์ง ๋ฌป๊ณ ์ฒดํฌ๋ฆฌ์คํธ์ ๋ฐ์ํ์. ๋น์ฐํ ์ดํ ์ผ๋ง๋ ์ง ์ฌ์ค์ ์ด ๊ฐ๋ฅํ๋ค. ํ์ฌ ๋ง ๋ ์ค๋ฅด๋๋๋ก ์ฒดํฌ๋ฆฌ์คํธ ์์๋ค์ ์์ฑํด๋ณด๋ฉด,
1. ๊ณผ์ ์ ๋
2. ๋จ์๋น
3. ์ ์ ๊ณก๋ฌผ
4. ๋ฐ๊ฐ๋ฃจ
5. ์ฌ์ ์ง
6. ๋จ๋ฐฑ์ง
7. ๋ํธ๋ฅจ
์์ ๊ฐ์ ๋ชฉ๋ก์ด ๋์ถ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ๋จน์ด์ ์ข์ ๊ฒ์ ํ๋์, ๋ง์ด ๋จน์ด์ ๋์ ๊ฒ์ ๋นจ๊ฐ์์ผ๋ก ํ์ํ๋ค. ์ด ๋ชฉ๋ก์ ๋ณธ ๊ฒ์๊ธ์ด ์ต์ด ์์ฑ๋ ํ์ฌ(2024๋
10์ 3์ผ) ์์ ์์์ ๋ชฉ๋ก์ ๋ถ๊ณผํ๋ค. ์ฑ์ ๋ง๋ค๋ฉฐ ๊ณ์ ์
๋ฐ์ดํธํด๋๊ฐ์ผ ํ ๊ฒ์ด๋ค.
#3 UI ์ค์ผ์น
#3-1 ์ด์ UI ์ค์ผ์น ํ๊ธฐ
Nutri Capture ๋ฐฉํฅ์ฑ - UI ์ค์ผ์น
#1 UI ์ค์ผ์น#1-1 ๊ฐ์๋จผ์ , 3๊ฐ์ ํ๋๊ทธ๋จผํธ๋ฅผ ๊ฐ์ง๋ ๋ด๋น๊ฒ์ด์ ๋ฐ๋ฅผ ๋ง๋ ๋ค. ์ฌ์ฉ์๋ '์ค๋' ํ๋๊ทธ๋จผํธ, 'ํต๊ณ' ํ๋๊ทธ๋จผํธ, '๋' ํ๋๊ทธ๋จผํธ ์ค ํ๋๋ฅผ ์ ํํ ์ ์๋ค. ๊ธฐ๋ณธ ํ๋๊ทธ๋จผํธ๋ '
kenel.tistory.com
์ ๊ฒ์๊ธ์ ์ด์ ์ ์์ฑํ๋ UI ์ค์ผ์น๋ค. ์ด ์ค์ผ์น๋ #1 ~ #2์ ๋ด์ฉ๊ณผ ์๋ฐ๋๋ค. ๋ฐ๋ผ์ ํ๊ธฐํ๊ณ ์๋ก์ด ํํ๋ก ๋ค์ ์ง๊ฒ ๋ค.
#3-2 LazyColumn
[Android] Jetpack Compose - Lazy Column
#1 Lazy Column#1-1 ๊ฐ์ ๋ชฉ๋ก ๋ฐ ๊ทธ๋ฆฌ๋ | Jetpack Compose | Android Developers์ด ํ์ด์ง๋ Cloud Translation API๋ฅผ ํตํด ๋ฒ์ญ๋์์ต๋๋ค. ๋ชฉ๋ก ๋ฐ ๊ทธ๋ฆฌ๋ ์ปฌ๋ ์ ์ ์ฌ์ฉํด ์ ๋ฆฌํ๊ธฐ ๋ด ํ๊ฒฝ์ค์ ์ ๊ธฐ์ค์ผ๋ก
kenel.tistory.com
์ ๊ฒ์๊ธ์ฒ๋ผ LazyColumn์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ๋ฒ ์ด์ค๋ก ์ก์ ๊ฒ์ด๋ค. ๋ฌดํ ์คํฌ๋กค์ ๊ตฌํํ ๊ฒ์ธ๋ฐ, ์์๋ ์๊ฐ์ ๋ฐ๋ฅธ ๋ด๋ฆผ์ฐจ์์ด๋ค. ์ฆ, ์๋ก ์คํฌ๋กคํ๋ฉด ๊ณผ๊ฑฐ์ ๊ธฐ๋ก์ผ๋ก ๊ฐ๊ณ ๋ฐ๋๋ก ์๋๋ก ์คํฌ๋กคํ๋ฉด ๋ฏธ๋๋ก ๊ฐ๋ค. ํ๋์ ๋ ์ง๋ฅผ ํ๋์ CardView๋ก ๊ตฌ์ฑํ ์์ ์ด๋ค.
#3-3 ์ฒญ์ฌ์ง (Blueprint)
'๋จน์ ๊ฒ'์ ์ถ๊ฐํ๋, '๋จน์ ๊ฒ ์ถ๊ฐํ๊ธฐ ๋ฒํผ'์ ๋ฐ๋ก ๋ง๋ค์ง ์์ ๊ฒ์ด๋ค. ๋์ ํฐ์นํ๋ ์ฆ์ '๋จน์ ๊ฒ'์ด ์๊ฒจ๋๋ ์ฒญ์ฌ์ง์ ์ ๊ณตํ ๊ฒ์ด๋ค. ํฐ์น ํ์๋ฅผ ์ต์ํํ๊ธฐ ์ํจ์ด๋ค (ํผ๋ก๊ฐ ๋ฎ์ถ๊ธฐ). ์๋์ ์๋ ์ UI ์ค์ผ์น๋ฅผ ๋ณด์.
#3-4 ์ UI ์ค์ผ์น
(1) ๋ ์ง๋ณ CardView
์ด์ UI ์ค์ผ์น์ ๋์ผํ๋ค
(2) ๋จน์๋ ์ํ ์ ๋ณด - ์๊ฐ
1. ์๋ฒฝ: ํ๋์(์ฐํ ํ๋์)
2. ์์นจ: ํ๋์
3. ์ ์ฌ: ํ๋์๊ณผ ์ฃผํฉ์์ ์ค๊ฐ์
4. ์ ๋ : ์ฃผํฉ์
5. ๋ฐค: ๋ณด๋ผ์
6. ์ฌ์ผ: ๊ฒ์์
์๊ฐ์ด ์ฐ์ธ ๋ถ๋ถ์ ๋ฐฐ๊ฒฝ์์ด ์กด์ฌํ๋๋ฐ, ์
๋ ฅ๋ ์๊ฐ์ ๋ฐ๋ผ ์์์ ์ง์ ๋๋ค. ๊ทธ๋ผ๋ฐ์ด์
์ผ๋ก ์ฐ์์ ์ธ ์์์ ํํํ ๊ฒ์ด๋ค.
(3) ๋จน์๋ ์ํ ์ ๋ณด - ์์ด์ฝ
#2-4์์ ๋งํ '๊ฐ์ธํ๋ ์ฒดํฌ๋ฆฌ์คํธ'์ ๊ฐ ์์๋ฅผ ์์ด์ฝ์ผ๋ก ํํํ๋ค. ํด๋น ์์์ ๋ํ ํ๊ฐ๊ฐ '์ข๋ค'๋ผ๋ฉด ์ฒญ๋ก์, '๋์๋ค'๋ผ๋ฉด ๋นจ๊ฐ์์ผ๋ก ํํํ ๊ฒ์ด๋ค. ์์ด์ฝ์ ํฐ์นํด ์ํ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค. ์์ด์ฝ์ด ๋ง์ ๊ฒฝ์ฐ ๊ฐ๋ก ์คํฌ๋กค์ ํตํด ํ๋ฉด์ ๋ณด์ด์ง ์๋ ์์ด์ฝ์ ๋ณผ ์ ์๋ค. ์คํฌ๋กคํ๋ ๋์ , โผ ๋ฒํผ์ ๋๋ฌ ์ ์ฒด ์์ด์ฝ์ ๋ณผ ์๋ ์๋ค. ์๋ก์ด ์ฐฝ์ ๋จ๊ฒ ๋ง๋๋ ๊ฒ์ ํผ๋กํ๋ฏ๋ก ์์ด์ฝ ์ปจํ
์ด๋ ํฌ๊ธฐ ์์ฒด๋ฅผ ๋์ด๋๊ฒ ๋ง๋๋ ํธ์ด ์ข๊ฒ ๋ค. โ ๋ฒํผ์ ์ญ์ ๋ฅผ ์ํจ์ด๋ค.
(4) ์ฒญ์ฌ์ง
'๋จน์๋ ์ํ ์ ๋ณด' UI์ ๋์ผํ์ง๋ง, ์ฝ๊ฐ ํ๋ฆฟํ๊ฒ ๋ณด์ด๊ฒ ๋ง๋ ๋ค. ์ด๋ฅผ ํด๋ฆญํ๋ฉด ํ๋ฆฟํ๋ ๋ชจ์ต์ด ๋๋ ทํด์ง๋ฉฐ '๋จน์๋ ์ํ ์ ๋ณด'๋ก ๋ณ์ ํ๋ค. ๋, ๊ทธ ์๊ฐ์ ์๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ผ๋ก์ ์
๋ ฅ๋๋ค (๋น์ฐํ ์๊ฐ ๋ถ๋ถ์ ํฐ์นํ๋ฉด ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํ๋ค).
#4 ์์ฝ
ํผ๋ก๊ฐ์ ๋ฎ์ถ๊ธฐ ์ํด, ์ฑ์ ๊ตฌ์กฐ๋ฅผ ๋ฏ์ด๊ณ ์น๊ณ UI๋ ๊ฐ์์์๋ค.
'๊ฐ๋ฐ ์ผ์ง ๐ป > Nutri Capture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Nutri Capture ํ๋ก ํธ์๋ - NutrientScreen์ ๋ฌดํ ์คํฌ๋กค (1) | 2024.10.11 |
---|---|
Nutri Capture ํ๋ก ํธ์๋ - NutrientScreen ๊ตฌ์กฐ ์ก๊ธฐ (1) | 2024.10.04 |
Nutri Capture ํ๋ก ํธ์๋ - NavigationBar (1) | 2024.09.28 |
Nutri Capture ํ๋ก ํธ์๋ - NavHost (1) | 2024.09.26 |
Nutri Capture ํ๋ก ํธ์๋ - Scaffold (0) | 2024.09.25 |