๋ชฉ์ฐจ
5) ํ ์คํธ ์ ๋ฐ์ดํธ
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
GreetingCardTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Greeting("Android")
}
}
}
}
}
onCreate() ํจ์๋ ์ด ์ฑ์ ์ง์ ์ ์ผ๋ก ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋น๋ํ๋ค.
Kotlin ํ๋ก๊ทธ๋จ์์ main() ํจ์๊ฐ Kotlin ์ปดํ์ผ๋ฌ๊ฐ ์์๋๋ ์ฝ๋์ ํน์ ์์น์ด๋ค.
Android ์ฑ์์๋ onCreate() ํจ์๊ฐ ์ด ์ญํ ์ ํ๋ค.
onCreate() ํจ์ ๋ด์ setContent() ํจ์๋ ๊ตฌ์ฑ๊ฐ๋ฅํ ํจ์๋ฅผ ํตํด ๋ ์ด์์์ ์ ์ํ๋ค.
@Composable ์ฃผ์์ผ๋ก ํ์๋ ๋ชจ๋ ํจ์๋ setCotent() ํจ์ ๋๋ ๋ค๋ฅธ ๊ตฌ์ฑ๊ฐ๋ฅํ ํจ์์์ ํธ์ถ๊ฐ๋ฅ
-> ๋ค๋ฅธ composable function์์ ํธ์ถ๊ฐ๋ฅ??์ด ๋ฌด์จ ๋ง์ผ๊น?
์ฃผ์์ Jetpack Compose์์ ์ด ํจ์๊ฐ UI๋ฅผ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ค๊ณ Kotlin ์ปดํ์ผ๋ฌ์๊ฒ ์๋ฆฐ๋ค.
Greate() ํจ์๋ composable function์ด๋ค.
์์๋ @Composable ์ฃผ์์ด ์๋ค.
composable function์ด ๋ญ๊น์???
์ผ๋ฐ ํจ์์ ๋น์ทํ์ง๋ง ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์๋ค. ํจ์ ์ด๋ฆ์ ๋๋ฌธ์๋ก ํ๊ธฐ๋๋ฉฐ
ํจ์ ์์ @Composable ์ฃผ์์ ์ถ๊ฐํ๊ณ @Composable ํจ์๋ ์๋ฌด๊ฒ๋ ๋ฐํ xx
-> composable function๋ ๋ช ๊ฐ์ง ์ ๋ ฅ์ ๋ฐ์์ ํ๋ฉด์ ํ์๋๋ ๋ด์ฉ์ ์์ฑํ๋ค
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
1. ํจ์ ์์ @Composable ์ฃผ์์ ์ถ๊ฐํ๋ค.
2. @Composable ํจ์ ์ด๋ฆ์ ๋๋ฌธ์๋ก ํ์ํ๋ค.
3. @Composable ํจ์๋ ์๋ฌด๊ฒ๋ ๋ฐํํ ์ ์๋ค.
@Composable
fun Greeting(name: String) {
Text(text = "Hi, my name is $name!")
}
๋์์ธ ์ฐฝ์์ ์ ์ผ์ชฝ ์๋จ์ ๋ฐ์ ๋ฒํผ์ ๋๋ฅด๋ฉด DefaultPreview๋ฅผ ๋น๋ํ ์ ์๋ค.
DefaultPreview()ํจ์๋ ์ ์ฒด ์ฑ์ ๋น๋ํ์ง ์๊ณ ๋ ์ฑ์ด ์ด๋ป๊ฒ ํ์๋๋ ์ง ํ์ธํ ์ ์๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ ํจ์๊ฐ ๋๋ ค๋ฉด @Preview ์ฃผ์์ ์ถ๊ฐํด์ผํ๋ค.
@Privew ์ฃผ์์ด showBackground ๋ผ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ค.
showBackground ๊ฐ true๋ก ์ค์ ๋๋ฉด ์ฑ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ๋ฐฐ๊ฒฝ์ด ์ถ๊ฐ๋๋ค.
Android ์คํ๋์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ์ง๊ธฐ์ ๋ฐ์ ํ ๋ง๋ฅผ ์ฌ์ฉํ๋ฏ๋ก showBackground = true์ false๊ฐ์ ์ฐจ์ด๋ฅผ ํ์ธํ๊ธฐ๊ฐ ์ด๋ ค์ธ ์๋ ์๋ค. ํ์ง๋ง ์ด๋์ด ํ ๋ง์์๋ ์ฐจ์ด๊ฐ ๋ถ๋ช ํ๋ค.
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
GreetingCardTheme {
Greeting("Meghan")
}
}
'2023 ์๋๋ก์ด๋ > ์๋๋ก์ด๋ ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ธฐ๋ณธ ๋ ์ด์์ ๋ง๋ค๊ธฐ (0) | 2022.11.16 |
---|---|
์ฒซ Android ์ฑ ๋ง๋ค๊ธฐ (0) | 2022.11.15 |
์ฐ์ต๋ฌธ์ (0) | 2022.11.15 |
์๋๋ก์ด๋ ์คํฐ๋ 1์ผ์ฐจ ๊ณผ์ unit1 (0) | 2022.11.15 |
Kotlin์์ ํจ์ ๋ง๋ค๊ธฐ ๋ฐ ์ฌ์ฉํ๊ธฐ (0) | 2022.11.14 |