Kotlin-DSL을 사용한 Android Studio 프로젝트 설정
Android Studio에서 Kotlin-DSL을 사용법을 간단히 설명한다.
Kotlin-DSL이란?
DSL은 Domain Specific Language 로 도메인 특화 언어 라는 뜻이며, Kotlin-DSL은 Kotlin 언어로 작성된 DSL이다.
Gradle 스크립트는 Groovy로 작성되지만, Kotlin-DSL을 사용하면 Kotlin 언어로 작성된다.
- 장점
- 코드를 강조할 수 있다.
- 자동완성이 지원된다.
- 오류 코드가 강조된다.
- 변수 리팩토링이 가능한 향상된 편집환경을 지원한다
- 멀티 모듈 사용 시 중복 의존성 선언이 필요가 없다
1. 프로젝트 설정
1.1. settings.gradle.kts
(Kotlin-DSL) vs settings.gradle
(Groovy)
Kotlin-DSL
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
Groovy
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
1.2 build.gradlt.kts
(Kotlin-DSL) vs build.gradlt.kts
(Groovy)
Kotlin-DSL
plugins {
id("plugin")
}
android {
compileSdk = 33
defaultConfig {
applicationId = "com.example.myapp"
minSdk = 21
targetSdk = 33
versionCode = 1
versionName = "1.0"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation("dependency:X.X.X")
}
Groovy
plugins {
id 'plugin'
}
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
implementation "dependency:X.X.X"
}
2. Version Catalog
Gradle 7.0부터 도입된 Version Catalog는 의존성, 플러그인 및 버전 관리의 통합을 돕는 기능이다.
이를 사용하면 의존성 버전을 한 곳에서 관리할 수 있어 더욱 일관성 있는 프로젝트 관리를 할 수 있다.
2.1 libs.versions.toml
파일 설정
Version Catalog는 gradle/libs.versions.toml
파일을 통해 관리된다.
libs.versions.toml
[versions]
kotlin = "1.6.10"
android-gradle-plugin = "7.0.3"
core-ktx = "1.7.0"
[libraries]
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
androidx-core = { module = "androidx.core:core-ktx", version.ref = "core-ktx" }
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
2.2 Version Catalog를 사용한 build.gradle.kts
(Kotlin-DSL) vs build.gradle
(Groovy)
Kotlin-DSL:
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
}
android {
compileSdk = 33
defaultConfig {
applicationId = "com.example.myapp"
minSdk = 21
targetSdk = 33
versionCode = 1
versionName = "1.0"
}
}
dependencies {
implementation(libs.kotlin.stdlib)
implementation(libs.androidx.core)
}
Groovy:
plugins {
id(libs.plugins.android.application)
id(libs.plugins.kotlin.android)
}
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
}
dependencies {
implementation(libs.kotlin.stdlib)
implementation(libs.androidx.core)
}
3. Version Catalog 장점
- 중앙화된 버전 관리: 모든 라이브러리와 플러그인의 버전을 한 곳에서 관리하여 프로젝트의 의존성 관리를 쉽게 할 수 있다.
- 재사용성: 여러 프로젝트에서 같은 버전 카탈로그를 사용하여 일관성을 유지할 수 있다.
- 가독성:
build.gradle.kts
및build.gradle
파일이 더 간결해지고, 중요한 의존성 정보는 분리되어 관리된다.
반응형
'안드로이드 > 공부 및 정리' 카테고리의 다른 글
[Android]갤러리 앨범 정보 받아오기 (0) | 2024.11.09 |
---|---|
android 아키텍처 패턴 (0) | 2024.10.03 |
[Android]Compose BottomNavigation 만들기 (0) | 2024.09.22 |
Compose로 Spinner 구현 및 커스텀 방법 (0) | 2024.09.20 |
[Android]Android Rest 통신중 로딩 화면 만들기 (0) | 2024.09.18 |