android

Jetpack Compose에서 Activity가 뭐예요?

codingcampus 2025. 5. 5. 19:19
반응형
SMALL

✨ Jetpack Compose에서 Activity가 뭐예요? (안드로이드 초보자도 이해할 수 있게!)

Android 개발을 시작하면 가장 먼저 마주치는 개념 중 하나가 바로 Activity입니다. Jetpack Compose를 쓴다고 해서 Activity가 사라진 건 아니에요. 다만 UI를 구성하는 방식만 달라졌을 뿐입니다.


✅ Activity는 화면을 담당하는 “틀”

Activity는 안드로이드 앱의 한 화면을 담당하는 기본 단위입니다.

  • 연락처 목록 화면
  • 연락처 편집 화면
  • 검색 화면

이런 것들은 각각 하나의 Activity일 수 있어요.
Compose에서도 마찬가지로, 앱을 실행하면 Activity가 실행되며 화면이 표시됩니다.


🧱 XML 대신 Kotlin 코드로 UI 만들기

기존 Android에서는 UI를 XML 파일로 만들고 setContentView()로 연결했죠?

<!-- 기존 방식 -->
<Button
    android:text="Click Me"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Compose에서는 더 이상 XML을 쓰지 않고, Kotlin 코드로 직접 UI를 만듭니다.

// Compose 방식
Button(onClick = { /* 클릭 시 동작 */ }) {
    Text("Click Me")
}

📦 Activity와 Compose 연결하기

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // 여기서부터 Compose UI 시작!
        setContent {
            MyComposeApp() // Composable 함수로 UI 구성
        }
    }
}
  • ComponentActivity를 상속해야 Compose를 쓸 수 있어요.
  • setContent 안에 우리가 만든 Composable 함수들을 배치합니다.

🧭 여러 화면은 어떻게 이동하나요?

예전에는 여러 Activity를 만들고 Intent로 이동했죠.
Compose에서는 하나의 Activity 안에서 여러 화면을 Composable로 나눠서 구성할 수 있어요.

NavHost(navController, startDestination = "home") {
    composable("home") { HomeScreen() }
    composable("details") { DetailScreen() }
}

Navigation 라이브러리를 활용하면, 화면 이동도 훨씬 간편합니다.


♻️ 생명주기(Lifecycle)도 똑같이 존재해요

onCreate(), onStart(), onPause() 같은 생명주기 메서드는 Compose에서도 그대로 사용됩니다.
그리고 Compose는 자체적으로 라이프사이클을 감지해서 필요한 작업만 자동으로 업데이트해줘요.

추가로,remember, LaunchedEffect, DisposableEffect 같은 Composable 전용 기능으로도 생명주기를 활용할 수 있습니다.

 

🔁 정리해볼까요?

항목 기존방식 Jetpack Compose 방식
UI 작성 방식 XML 파일 + setContentView Kotlin 코드 + setContent 블록
화면 구성 여러 개의 Activity 하나의 Activity + 여러 Composable 화면
UI 업데이트 직접 View 수정 상태만 바꾸면 Compose가 자동 반영
생명주기 Activity에서 관리 Activity + Composable 효과로 관리

 

✨ 마무리: Compose는 ‘구성’ 중심이에요

Compose는 상속보다는 Composable 함수들을 조립해서 앱을 만들어요.
초보자라면 '상속' 대신 필요한 기능을 함수로 만들고, 조립해서 화면을 완성하는 Compose 방식이 오히려 더 직관적일 수 있습니다.

반응형
LIST