MSG라는 교내 동아리에서 Hi-v2(홈베이스 관리 시스템)을 만드면서 일어났던 일을 정리한 내용입니다.
class Dependency {
object AndroidX {
const val CORE_KTX = "androidx.core:core-ktx:${Versions.CORE_KTX}"
const val LIFECYCLE = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.LIFECYCLE}"
const val APPCOMPAT = "androidx.appcompat:appcompat:${Versions.APPCOMPAT}"
}
object Compose {
const val ACTIVITY_COMPOSE = "androidx.activity:activity-compose:${Versions.ACTIVITY_COMPOSE}"
const val COMPOSE = "androidx.compose.ui:ui:${Versions.COMPOSE}"
const val COMPOSE_PREVIEW = "androidx.compose.ui:ui-tooling-preview:${Versions.COMPOSE}"
const val COMPOSE_MATERIAL = "androidx.compose.material:material:${Versions.COMPOSE}"
const val COMPOSE_MATERIAL3 = "androidx.compose.material3:material3:${Versions.MATERIAL3_COMPOSE}"
const val COMPOSE_TOOLING = "androidx.compose.ui:ui-tooling:${Versions.COMPOSE}"
}
object Test {
const val JUNIT = "junit:junit:${Versions.JUNIT}"
const val ANDROID_JUNIT = "androidx.test.ext:junit:${Versions.ANDROID_JUNIT}"
const val ESPRESSO = "androidx.test.espresso:espresso-core:${Versions.ESPRESSO}"
const val COMPOSE_JUNIT = "androidx.compose.ui:ui-test-junit4:${Versions.COMPOSE}"
const val COMPOSE_MANIFEST = "androidx.compose.ui:ui-test-manifest:${Versions.COMPOSE}"
}
object Google {
const val MATERIAL = "com.google.android.material:material:${Versions.GOOGLE_MATERIAL}"
}
}
object ProjectProperties {
object Gradle {
const val APPLICATION = "com.android.application"
const val LIBRARY = "com.android.library"
const val KOTLIN = "org.jetbrains.kotlin.android"
const val KTLINT = "org.jlleitschuh.gradle.ktlint"
}
object Test {
const val TEST_RUNNER = "androidx.test.runner.AndroidJUnitRunner"
}
object Id {
const val APPLICATION_ID = "team.msg.hi_v2"
}
object Files {
const val CONSUMER_PROGUARDFILES = "consumer-rules.pro"
const val DEFAULT_PROGUARDFILES = "proguard-android-optimize.txt"
const val PROGUARDFILES = "proguard-rules.pro"
}
object Versions {
const val COMPILE_SDK = 33
const val MIN_SDK = 24
const val TARGET_SDK = 33
const val JVM_TARGET = "1.8"
const val VERSION_CODE = 1
const val VERSION_NAME = "1.0"
val JAVA_VERSION = JavaVersion.VERSION_1_8
}
object NameSpace {
const val PRESENTATION = "team.msg.presentation"
const val DOMAIN = "team.msg.domain"
const val DATA = "team.msg.data"
const val APP = "team.msg.hi_v2"
}
object Action {
const val EXCLUDES = "/META-INF/{AL2.0,LGPL2.1}"
}
}
object Versions {
const val GRADLE = "7.4.2"
const val KOTLIN = "1.8.10"
const val KTLINT = "11.3.2"
const val COMPOSE = "1.4.3"
const val ACTIVITY_COMPOSE = "1.5.1"
const val MATERIAL3_COMPOSE = "1.0.1"
const val CORE_KTX = "1.8.0"
const val LIFECYCLE = "2.3.1"
const val APPCOMPAT = "1.4.1"
const val JUNIT = "4.13.2"
const val ANDROID_JUNIT = "1.1.5"
const val ESPRESSO = "3.5.1"
const val GOOGLE_MATERIAL = "1.5.0"
}
plugins {
id(ProjectProperties.Gradle.LIBRARY)
id(ProjectProperties.Gradle.KOTLIN)
}
android {
namespace = ProjectProperties.NameSpace.DOMAIN
compileSdk = ProjectProperties.Versions.COMPILE_SDK
defaultConfig {
minSdk = ProjectProperties.Versions.MIN_SDK
testInstrumentationRunner = ProjectProperties.Test.TEST_RUNNER
consumerProguardFiles(ProjectProperties.Files.CONSUMER_PROGUARDFILES)
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile(ProjectProperties.Files.DEFAULT_PROGUARDFILES),
ProjectProperties.Files.PROGUARDFILES
)
}
}
compileOptions {
sourceCompatibility = ProjectProperties.Versions.JAVA_VERSION
targetCompatibility = ProjectProperties.Versions.JAVA_VERSION
}
kotlinOptions {
jvmTarget = ProjectProperties.Versions.JVM_TARGET
}
}
// 공백인 줄 한줄 추가