Skip to content

Android 의존성 추가하기

Kotlin Multiplatform 모듈에 Android 전용 의존성을 추가하는 워크플로우는 순수 Android 프로젝트와 동일합니다. Gradle 파일에 의존성을 선언하고 프로젝트를 임포트하세요. 그 후, Kotlin 코드에서 이 의존성을 사용할 수 있습니다.

Kotlin Multiplatform 프로젝트에서 Android 의존성을 선언할 때는 특정 Android 소스 세트(source set)에 추가하는 것을 권장합니다. 이를 위해 프로젝트의 shared 디렉토리에 있는 build.gradle(.kts) 파일을 업데이트하세요:

kotlin
kotlin {
    //...
    sourceSets {
        androidMain.dependencies {
            implementation("com.example.android:app-magic:12.3")
        }
    } 
}
groovy
kotlin {
    //...
    sourceSets {
        androidMain {
            dependencies {
                implementation 'com.example.android:app-magic:12.3'
            }
        }
    }
}

Android 프로젝트의 최상위(top-level) 의존성을 멀티플랫폼 프로젝트의 특정 소스 세트로 옮기는 작업은, 해당 최상위 의존성이 단순하지 않은 구성 이름(configuration name)을 가진 경우 어려울 수 있습니다. 예를 들어, Android 프로젝트의 최상위 레벨에서 debugImplementation 의존성을 옮기려면, androidDebug라는 이름의 소스 세트에 implementation 의존성을 추가해야 합니다. 이러한 마이그레이션 문제를 처리하는 데 드는 노력을 최소화하기 위해, android {} 블록 안에 dependencies {} 블록을 추가할 수 있습니다:

kotlin
kotlin {
    android {
        //...
        dependencies {
            implementation("com.example.android:app-magic:12.3")
        }
    }
}
groovy
kotlin {
    android {
        //...
        dependencies {
            implementation 'com.example.android:app-magic:12.3'
        }
    }
}

이곳에 선언된 의존성은 최상위 블록의 의존성과 완전히 동일하게 취급되지만, 이 방식으로 선언하면 빌드 스크립트에서 Android 의존성을 시각적으로 분리하여 혼동을 줄일 수 있습니다.

Android 프로젝트에서 관용적으로 사용하는 방식인 스크립트 끝부분의 독립된 dependencies {} 블록에 의존성을 넣는 것도 지원됩니다. 하지만 최상위 블록에 Android 의존성을 구성하고 각 소스 세트에 다른 타겟 의존성을 구성하는 것은 혼동을 야기할 가능성이 높으므로 이 방식은 권장하지 않습니다.

다음 단계는?

멀티플랫폼 프로젝트의 의존성 추가에 관한 다른 리소스를 확인하고 다음에 대해 더 알아보세요: