본문 바로가기

안드로이드/compose

[compose] 기존 프로젝트 컴포즈 도입기#1 gradle 세팅

 안녕하세요. 이번 포스팅에서는 제가 저번주부터 시작한 기존 책 검색 및 저장 앱을 Compose를 활용하는 방식으로 migration을 진행하는 것을 기록하려합니다.

 

 최초 적용시 제가 기존에 Android Studio를 돌핀버전으로 사용중이여서 compose 관련 구성요소를 추가할때 sync 과정에서 오류가 발생하였습니다.

 Compose 적용시 꼭 Studio 버전을 확인하시기 바랍니다!

 

 1. 프로젝트 단위 gradle

 프로젝트 단위의 gradle에서 체크해야할 요소로는 Kotlin 버전을 확인하여 제가 추가할 compose 버전과 맞는 버전으로 맞춰주어야합니다.

plugins {
	 ...
    id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
     ...
    }

2. App 단위 gradle

  App 단위의 gradle 파일에서는 필요한 compose 종속항목을 dependencies에 추가해주어야합니다.

먼저 컴포즈 기능을 추가하여 빌드할수있게 compose true를 추가합니다.

    buildFeatures {
        dataBinding true // migration시 기존 Binding 부분도 필요
        compose true
    }

 kotlinCompilerExtensionVersion 는 프로젝트 단위에서 선언한 Kotlin 버전에 맞추어 설정해야합니다. 아래 링크를 참조하여 버전을 추가하시면 됩니다.
https://developer.android.com/jetpack/androidx/releases/compose-kotlin?hl=ko

 

Compose와 Kotlin의 호환성 지도  |  Android 개발자  |  Android Developers

Compose와 Kotlin의 호환성 지도 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 선언 Compose 컴파일러에 관한 종속 항목을 추가하려면 프로젝트에 Googl

developer.android.com

composeOptions {
        kotlinCompilerExtensionVersion '1.3.2'
    }

아래는 UI관련 종속항목들 입니다.

    implementation 'androidx.activity:activity-compose:1.3.1'
    implementation "androidx.compose.ui:ui:$compose_ui_version"
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version"
    implementation 'androidx.compose.material:material:1.1.1'
    implementation "androidx.compose.material3:material3:1.0.1"
    implementation "androidx.compose.material3:material3-window-size-class:1.0.1"

아래는 테스트코드 관련 종속항목들 입니다.

    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version"
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version"
    debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version"

이상으로 최초 compose 도입시 프로젝트 및 App 단위의 gradle 파일에 추가해야할 요소들을 알아보았습니다!