2์ 9์ผ Jetpack Release Note์ ๋ด์ฉ ์ค,
Compose 1.1.0
์ ๋ํ ์ ๋ฆฌ์ ๋๋ค.
๋ ๊ถ๊ธํ์ ์ ์ ๊ตญ๋ด ์ ์ผ(?) Jetpack Compose ์ปค๋ฎค๋ํฐ์์ ๋ํ๋ฅผ ๋๋ ๋ณด์ธ์.
2์ 9์ผ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ ์ค ๊ฐ์ฅ ์ค์ํ ๋ณ๊ฒฝ์ฌํญ์ ๋๋ค. ์ง๋ 7์ 1.0 ์ถ์ ์ดํ ์ฝ ๋ฐ๋ ๋ง์ ๋ฉ์ด์ ์ ๋ฐ์ดํธ์ธ๋ฐ์, ๋ณ๋๋ก ๊ตฌ๊ธ์์ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด ์์ฝ์ ์ ๊ณตํ์ต๋๋ค. ์ด ์์ฝ์ ๋ฐํ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ์ ์ ๋ฆฌํด๋ดค์ต๋๋ค.
painterResource
api์ ์บ์ฑ์ ์ถ๊ฐํ์ฌ ํฐ ์ฑ๋ฅ ๋ณํ๋ฅผ ์ด๋ค๋๋ค ํฉ๋๋ค.
alpha, beta๋จ๊ณ์ 1.1์ ํ
์คํธํ๋ ์ค ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฐ์๋ ๋ณํ์์ต๋๋ค. ๋ฐ๋ก Material accessibility guidelines touch target size ๊ฐ์ด๋ ์ค์๋ฅผ ์ํด IconButton
, RadioButton
๋ฑ์ ์ฌ์ด์ฆ๋ฅผ '๊ฐ์ 'ํ ๊ฒ์
๋๋ค.
๊ตฌ๊ธ์์๋ ์ด ๋ณ๊ฒฝ์ด ์ฌ์ฉ์๋ค์๊ฒ ํฐ ์ํฉํธ๋ฅผ ๋ฏธ์น๋ค๋ ์ฌ์ค์ ์ธ์งํ์ฌ, ์๋์ ๊ฐ์ด ์ฐํํ ์ ์๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค.
CompositionLocalProvider(LocalMinimumTouchTargetEnforcement provides false) {
...
}
๊ฐ์ด๋์ ์งํฅ์ ์ ๋์ํฉ๋๋ค๋ง, ์ ํฌ ์๋น์ค๋ ๋์์ธ ์๊ตฌ์ฌํญ์ด ๋ฌ๋ผ ์กฐ๋ง๊ฐ material์ ๋ํ ์์กด์ฑ์ ์ ๊ฑฐํ๋ ๊ฒ์ ์ผ๋์ ๋๊ณ ์์ต๋๋ค.
AnimatedContent
๋ ๊ฐ๋จํ ํ๋ฉด ์ ํ์ ๊ตฌํํ๊ธฐ ์ข์ผ๋ฉฐ, accompanist์ Jetpack Navigation Compose Animation ๊ฐ์ ๊ณณ์์๋ ํ์ฉ๋๊ณ ์์ต๋๋ค. ์ฌ์ฉ๋ฒ์ด ๊ฐ๋จํ๋ ์ฌ์ฉ์ ์๋ด ํ๋ฉด ๊ฐ์ ๊ณณ์ ํ์ฉํด๋ณด์
๋ ์ข์ ๊ฒ ๊ฐ์์.LazyColumn/Row
์ item์ Modifier.animateItemPlacement()
๋ฅผ ์ฌ์ฉํ๋ฉด item reordering animation์ ์ ๊ณตํ ์ ์๋ค ํฉ๋๋ค.import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
var list by remember { mutableStateOf(listOf("A", "B", "C")) }
LazyColumn {
item {
Button(onClick = { list = list.shuffled() }) {
Text("Shuffle")
}
}
items(list, key = { it }) {
Text("Item $it", Modifier.animateItemPlacement())
}
}
BringIntoView
๋ผ๋ ๊ฒ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ฐพ์๋ณด๋ ํ์ํ๋ ๊ฒ์ด๋ค์! Scroll์์ญ ๋ด ํ
์คํธ ์
๋ ฅ ๊ฐ์ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ, ํด๋น Composable์์น๋ก ์คํฌ๋กค์ ์ํค๋๊ฒ ์ฌ์ค์ ์ด๋ ค์ ๋๋ฐ, ์ด API๋ฅผ ํตํด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ฌ์ง๋๋ค.์ด๋ฒ 1.1.0 ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด์ Kotlin 1.6.10์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ํด์ผํฉ๋๋ค. ์ ๊ฐ ์๊ฐํ๊ธฐ์ Compose์ ๋จ์ ์ Kotlin ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ฐ์ ํ๋ค๋ ์ ์ ๋๋ค. ์ ๋ง ๊ธํ ๋ฒ๊ทธ ํฝ์ค๊ฐ ์๋๋ฐ, ๋ค๋ฅธ ์๋ํํฐ์ ์ฝํ๋ฆฐ ๋ฒ์ ์ด ์ถฉ๋ํด์ ๋ฒ์ ์ ์ฌ๋ฆฌ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์์ด์. ํ์ฌ๋ ๊ฝค ๋ง์ ์จ๋ ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๋ Kotlin ๋ฒ์ ์ ๋นจ๋ฆฌ ๋นจ๋ฆฌ ์ฌ๋ ค์ค์ ๋ฌธ์ ๊ฐ ๋ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. 1.6.0์์ ๋น๋ ์๋ ์ ํ, ํ๋ฌ๊ทธ์ธ ์๋ฌ๋ฑ ๋ค์ํ ์ด์๊ฐ ์์๋ค๋๋ฐ, ์ฌ์ฉ ์ค์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํธํ์ฑ์ ๋จผ์ ํ์ธํด๋ณด์ ์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.