반응형
Lifecycle 라이브러리는 Activity, Fragment, ViewModel 등의 생명주기 관리를 돕는 핵심 구성 요소입니다.
2.9.1 버전은 Compose 통합, Kotlin 2.0 대응, 모듈 동기화 등 여러 중요한 개선사항을 담고 있습니다.
📅 버전 개요
버전 | 릴리즈일 | 핵심 요약 |
2.8.7 | 2024년 10월 30일 | 기존 안정화 버전 |
2.9.1 | 2025년 6월 4일 | Compose 강화, Kotlin 2.0 stdlib 대응, 모듈 동기화 (mvnrepository.com, loom.com, googlesamples.github.io) |
🗂️ 주요 변경사항 요약
- Kotlin 2.0 stdlib 지원
모든 lifecycle 서브 모듈이 Kotlin 2.0 이상용으로 재빌드됨 (loom.com) - Compose용 Lifecycle 모듈 추가
- lifecycle-runtime-compose, lifecycle-viewmodel-compose 포함 (mvnrepository.com)
- Compose 코드 내에서 생명주기를 직관적으로 사용할 수 있음
- 모듈 버전 일관화
모든 lifecycle 관련 모듈 (runtime, viewmodel-ktx, livecycle-livedata-ktx 등)이 2.9.1로 맞춤 설정 (medium.com, mvnrepository.com) - 의존성 정리 및 내부 패키지 개선
lifecycle-runtime의 패키지명 고유화 등 실사용 충돌 방지를 위해 구조 개선 (loom.com)
💻 코드 예제
✅ 1. Compose에서 LiveData 관찰
@Composable
fun ProfileScreen(vm: ProfileViewModel = viewModel()) {
val name by vm.userName.observeAsState("")
Text("Hello, $name!")
}
- lifecycle-livedata-ktx의 observeAsState 함수가 Compose와 자연스럽게 통합됨.
✅ 2. Compose 생명주기 옵저버 사용
@Composable
fun LifecycleAwareScreen(onResume: () -> Unit) {
val lifecycleOwner = LocalLifecycleOwner.current
DisposableEffect(lifecycleOwner) {
val obs = LifecycleEventObserver { _, event ->
if (event == Lifecycle.Event.ON_RESUME) onResume()
}
lifecycleOwner.lifecycle.addObserver(obs)
onDispose { lifecycleOwner.lifecycle.removeObserver(obs) }
}
Text("Lifecycle aware content")
}
✅ 3. SavedStateHandle과 ViewModel 통합
@HiltViewModel
class DetailViewModel @Inject constructor(
private val repo: Repo,
savedStateHandle: SavedStateHandle
) : ViewModel() {
val id: String = checkNotNull(savedStateHandle["id"])
val dataFlow = repo.loadData(id)
}
composable("detail/{id}") {
val viewModel: DetailViewModel = hiltViewModel()
DetailScreen(viewModel.dataFlow.collectAsState().value)
}
🛠️ 마이그레이션 팁
- 모든 모듈을 2.9.1로 통일
- lifecycle-runtime-ktx, lifecycle-viewmodel-ktx, lifecycle-livedata-ktx 등
- Kotlin stdlib 2.0으로 맞추기
- Gradle에서 kotlin("stdlib")를 2.0 계열로 고정
- Compose-aware 모듈 사용
- lifecycle-runtime-compose, viewmodel-compose 추가 적용
- Compose 코드 리팩토링
- DisposableEffect, observeAsState, viewModel() 활용
- 의존성 충돌 방지
- Maven 종속성 보기로 중복 여부 점검
✅ 요약
변화 항목 | 2.8.7 방식 | 2.9.1 방식 |
Kotlin stdlib 대응 | 1.9.x | ✅ Kotlin 2.0 지원 |
Compose 통합 | 수동 설정 필요 | ✅ Compose 전용 모듈 포함 |
모듈 버전 일관성 | 일부 버전 혼합 가능 | ✅ 2.9.1로 일괄 정렬 |
internal 패키지 충돌 개선 | 일부 충돌 가능 | ✅ 패키지 고유화 및 정리 완료 |
🔗 참고 링크
- Lifecycle 공식 릴리즈 노트 (stackoverflow.com, gist.github.com, mvnrepository.com, loom.com, medium.com, developer.android.com)
- Maven Repository – lifecycle-runtime-compose 2.9.1 (mvnrepository.com)
- Maven Repository – lifecycle-viewmodel-ktx 2.9.1 (mvnrepository.com)
Compose 앱에서의 생명주기 처리와 Kotlin 2.0 대응이 필요하다면 2.9.1은 필수 버전입니다.
반응형
'Updates.' 카테고리의 다른 글
🔧 Firebase Android BoM 33.15.0 주요 라이브러리 버전 및 변경 사항 (0) | 2025.06.28 |
---|---|
🧩 AndroidX activity-compose 1.10.0 → 1.10.1 업데이트 정리 (0) | 2025.06.26 |
🧭 Jetpack Navigation Compose 2.9.0 완벽 정리: argsType, SupportingPane, 최신 네비게이션 API 사용법 (1) | 2025.06.26 |
AndroidX ConstraintLayout 2.2.0 → 2.2.1 업데이트 총정리: 변경사항·예제·마이그레이션 팁 (0) | 2025.06.26 |
kotlinx.coroutines 1.9.0 → 1.10.2 업데이트 총정리: 변경사항·예제·마이그레이션 팁 (0) | 2025.06.26 |