Jetpack Compose๋ ๋ค์ดํฐ๋ธ UI๋ฅผ ๋น๋ํ๊ธฐ ์ํ Android์ ์ต์ ๋๊ตฌ ํคํธ์ด๋ค.
Jetpack Compose๋ Android์์ UI ๊ฐ๋ฐ์ ๊ฐ์ํํ๊ณ ๊ฐ์ํํ๋ค.
์ ์ ์์ ์ฝ๋, ๊ฐ๋ ฅํ ๋๊ตฌ ๋ฐ ์ง๊ด์ ์ธ Kotlin API๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น ๋ฅด๊ณ ์๋๊ฐ ์๊ฒ ๊ตฌํ๊ฐ๋ฅํ๋ค.
- ๊ธฐ์กด ์๋๋ก์ด๋ UIํดํท(View)์ 10๋ ๋ ๋ ์ ์ ์ค๊ณ๋ ๊ฒ์ด๊ธฐ๋๋ฌธ์ ํ์ ๋ ํ๋์จ์ด์ ๋ง์ถฐ ์ค๊ณ๋์ด์์
- ๊ธฐ์กด ์๋๋ก์ด๋ View์ ํ๊ณ๋ฅผ ๋์ด์ค๋ ค๋ฉด ํ๋ซํผ๊ณผ์ ๊ฐํ ๊ฒฐํฉ์ ๋์ด์ผ๋ง ํ์
- ๊ธฐ์กด๊ณผ ๊ฐ์ด compat( ํธํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ๊ณ์ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค๋ ์์ ํ ๋ถ๋ฆฌ๋ ํ๋ซํผ์ ์ ๊ณตํ๊ธฐ ์ํจ
- ๊ฐ๋ฐ ์ธ์ด์ ๋ณ๊ฒฝ (Compose๋ Java๊ฐ ์๋ Kotlin์ ๊ฐ๋ฐ์ธ์ด๋ก ์ฌ์ฉ)
- Declarative UI (์ ์ธ์ ์ธ UI)
- ๊ธฐ์กด์ ์๋ View์ ์ํธ ์ด์ฉ ๊ฐ๋ฅ
- ๋ผ์ดํ์ฌ์ดํด์์์ ์ด๋ป๊ฒ ๋์ํ๋๊ฐ์๋ํด์(ํ์ด๋ฐ์๋ํด์) Compose ๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๊ณ ๋ฏผํ ํ์๊ฐ ์์
- ์ฝ๋๊ฐ์, ๋น ๋ฅธ๊ฐ๋ฐ๊ณผ์ , ๊ฐ๋ ฅํ ์ฑ๋ฅ
@Composable
์ด๋ ธํ ์ด์ ์ผ๋ก ์ง์ ํ๋ค- Composable ํจ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ ์ ์์ผ๋ฉฐ, ์ด ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์ฑ ๋ก์ง์ด UI๋ฅผ ํ์ฑํ ์ ์๋ค
- Composable ํจ์๋ ์๋ฌด๊ฒ๋ ๋ฐํํ์ง ์๋๋ค
- ํจ์๋ ๋ฉฑ๋ฑ์์ด๋ฉฐ ๋ถ์์ฉ์ด ์๋ค
- ํจ์๋ ๋์ผํ ์ธ์๋ก ์ฌ๋ฌ๋ฒ ํธ์ถ๋ ๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํ๋ฉฐ, ํจ์๋ ์์ฑ ๋๋ ์ ์ญ๋ณ์ ์์ ๊ณผ ๊ฐ์ ๋ถ์์ฉ ์์ด UI๋ฅผ ํ์ฑํ๋ค
๋ช
๋ นํ๋ฐฉ์์์๋ ์์ ฏ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์์ ฏ์ setter๋ฅผ ํธ์ถํ์ฌ ๋ด๋ถ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ค.
Compose์์๋ ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ Composableํจ์๋ฅผ ํธ์ถํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํจ์๊ฐ ReComposition ๋๋ฉฐ ํ์ํ ๊ฒฝ์ฐ ํจ์์์ ๋ด๋ณด๋ธ ์์ ฏ์ด ์๋ฐ์ดํฐ๋ก ๋ค์ ๊ทธ๋ ค์ง๋ค.
Compose Framework๋ ๋ณ๊ฒฝ๋ ๊ตฌ์ฑ์์๋ค๋ง ์ง๋ฅ์ ์ผ๋ก ์ฌ๊ตฌ์ฑ ํ ์ ์๋ค.
- Row
- Column
- Constraint
- Layout