2024. 1. 9. 15:59ㆍIT/Android
onCreate() 함수는 Activity가 실행되면, 즉 앱이 실행되면 가장 먼저 실행되는 함수라고 합니다.😮
그럼 앱의 실행과 동시에 수행되어야 할 작업들을(ex:초기화) 내부에 정의하여 사용할 수 있다는 것을 알고 있으면 도움이 되겠죠?!✏️📖
setContent() 함수는 구성 가능한 함수를 인자로 받아 레이아웃으로 정의하는데 사용되는 함수라고 합니다.
즉, 화면에 출력될 레이아웃을 설정하는 함수라는 건데요.📱👀
우리가 앱을 실행하면 가장 먼저 무엇을 볼까요?🤔
기능들을 포함하고 있는 화면을 보겠죠?
그럼 앱을 실행과 동시에 화면을 띄워야 하겠네요!
onCreate() 함수 내부에 setContent()를 정의하면 앱을 실행하면서 화면을 볼 수 있지 않을까요?✏️📖
class BlurActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting()
}
}
}
실제로 코드를 보시면 가장 처음 실행될 onCreate() 함수 내부에 setContent()를 호출하고 있습니다.
그럼 인자로 전달되는 Greeting()은 무엇일까요?⁉️
구성 가능한 함수(컴포저블 함수, Compose 함수)라고 하는 건데요.
이는 Jetpack Compose에서 UI요소를 생성하고 배치하기 위한 함수입니다.
쉽게 말하면, 그냥 화면을 구성하는 레이아웃을 정의하는 함수에요.😅😅
그럼 구성 가능한 함수를 정의하는 방법들을 알아볼까요?👩🏻🏫📗
첫 번째, @Composable 애너테이션을 포함.
<이를 통해 이 함수가 데이터를 UI로 변환된다는 것을 Compose 컴파일러에게 알립니다.>
두 번째, 값을 반환하지 않음.
세 번째, (형용사) + 명사의 이름의 형태. <형용사는 생략 가능.>
네 번째, 각 단어의 첫 글자를 대문자로 표기하는 파스칼 표기법을 따르는 이름. ex)PrettyGirl.
*카멜 표기법: 파스칼 표기법에서 가장 처음의 단어의 첫 글자만 소문자로 표기하는 방법. ex)prettyGirl.
조건이 많아서 복잡해 보이지만,
@Composable
fun Greeting() {
Text(text = "Hello!")
}
코드로 보면 아주 간단하답니다!😆
질문!🙋♀️
컴포저블 함수는 알겠는데, 컴포지션 함수도 있지 않나요? 이건 뭔가요?🤔
컴포지션 함수는 "함수를 조합하여 새로운 함수를 생성하는 함수"를 의미하는데요.
그러니까 쉽게 말하면, 함수를 정의하면서 다른 함수들을 사용하는거예요.
따라서 컴포저블 함수 내부에 다수의 다른 컴포저블 함수를 호출하여 레이아웃을 구성하고 있다면, 이 함수는 컴포저블 함수이면서 컴포지션 함수가 되는겁니다.
자 오늘 수업 끄읕...💦
<혹여나 잘못된 정보가 존재한다면 댓글로 알려주세요>
'IT > Android' 카테고리의 다른 글
Jetpack Compose - icon (0) | 2024.01.20 |
---|---|
Jetpack Compose - Modifier (0) | 2024.01.20 |
Jetpack Compose - image, R (0) | 2024.01.20 |
Jetpack Compose - Preview, Text (0) | 2024.01.19 |
안드로이드 스튜디오 Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0. 문제 해결 (0) | 2023.10.12 |