Compose 컴파일러 마이그레이션 가이드
Compose 컴파일러 마이그레이션 가이드 (Compose compiler migration guide)
Compose 컴파일러는 Gradle 플러그인을 통해 제공되는데, 이 플러그인이 설정을 단순화하고 컴파일러 옵션에 더 쉽게 접근하게 해줘요. Android Gradle 플러그인(AGP)과 함께 적용하면, 이 Compose 컴파일러 플러그인이 AGP가 자동으로 공급하는 Compose 컴파일러의 좌표(coordinates)를 덮어써요. 이번에는 프로젝트를 Kotlin 2.0.0 이상으로 옮기면서 Compose 컴파일러를 어떻게 관리하면 좋을지 살펴볼게요.
본문
Compose 컴파일러는 Kotlin 2.0.0부터 Kotlin 저장소에 병합되었어요. Compose 컴파일러가 Kotlin과 동시에 배포되기 때문에 같은 버전의 Kotlin과 항상 호환되어서, 프로젝트를 Kotlin 2.0.0 이상으로 옮기기가 훨씬 수월해졌답니다.
새 Compose 컴파일러 플러그인을 프로젝트에서 쓰려면 Compose를 사용하는 각 모듈에 플러그인을 적용해요. Jetpack Compose 프로젝트의 마이그레이션 방법은 아래 Jetpack Compose 프로젝트 마이그레이션에서 자세히 다룰게요. Compose Multiplatform 프로젝트라면 멀티플랫폼 마이그레이션 가이드를 참고하세요.
Jetpack Compose 프로젝트 마이그레이션
1.9에서 Kotlin 2.0.0 이상으로 마이그레이션할 때는 Compose 컴파일러를 다루는 방식에 따라 프로젝트 구성을 조정해야 해요. 구성 관리를 자동화하려면 Kotlin Gradle 플러그인과 Compose 컴파일러 Gradle 플러그인을 사용하는 걸 권장해요.
Gradle 플러그인으로 Compose 컴파일러 관리하기
Android 모듈에서는 이렇게 해요.
- Gradle 버전 카탈로그에 Compose 컴파일러 Gradle 플러그인을 추가해요.
[versions]
# ...
kotlin = "2.4.20"
[plugins]
# ...
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
AGP 9.0.0 이상을 쓰고 있다면 org-jetbrains-kotlin-android 플러그인은 더 이상 필요 없어요. AGP에 Kotlin 지원이 내장되어 있거든요.
- 루트
build.gradle.kts파일에 Gradle 플러그인을 추가해요.
plugins {
// ...
alias(libs.plugins.compose.compiler) apply false
}
- Jetpack Compose를 사용하는 모든 모듈에 플러그인을 적용해요.
plugins {
// ...
alias(libs.plugins.compose.compiler)
}
- Jetpack Compose 컴파일러의 컴파일러 옵션을 사용한다면
composeCompiler {}블록에서 설정해요. 컴파일러 옵션 목록을 참고하세요. - Compose 컴파일러 아티팩트를 직접 참조하고 있다면 그 참조를 제거하고 Gradle 플러그인이 처리하도록 맡겨도 돼요.
Gradle 플러그인 없이 Compose 컴파일러 사용하기
Gradle 플러그인으로 Compose 컴파일러를 관리하지 않는다면, 프로젝트에서 옛 Maven 아티팩트를 직접 참조한 부분을 갱신해요.
androidx.compose.compiler:compiler를org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable로 바꿔요.androidx.compose.compiler:compiler-hosted를org.jetbrains.kotlin:kotlin-compose-compiler-plugin으로 바꿔요.
더 알아보기
- Google의 발표 — Compose 컴파일러가 Kotlin 저장소로 옮겨가는 소식
- Compose 컴파일러 옵션 DSL — 컴파일러 옵션 설정 방법
- Jetpack Compose로 Android 앱을 만든다면 앱을 멀티플랫폼으로 만드는 방법도 확인해 보세요.