diff --git a/.gitignore b/.gitignore index 5d5dfa77..65f47b25 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +### Android ### # Gradle files .gradle/ build/ @@ -32,6 +33,154 @@ google-services.json # Android Profiling *.hprof +### Android Patch ### +gen-external-apklibs + +# Replacement of .externalNativeBuild directories introduced +# with Android Studio 3.5. + +### Kotlin ### +# Compiled class file +*.class + +# Log file + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +### AndroidStudio ### +# Covers files to be ignored for android development using Android Studio. + +# Built application files +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle + +# Signing files +.signing/ + +# Local configuration file (sdk path, etc) + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files + +# Android Studio +/*/build/ +/*/local.properties +/*/out +/*/*/build +/*/*/production +.navigation/ +*.ipr +*~ +*.swp + +# Keystore files + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Android Patch + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# NDK +obj/ + +# IntelliJ IDEA +*.iws +/out/ + +# User-specific configurations +.idea/caches/ +.idea/libraries/ +.idea/shelf/ +.idea/workspace.xml +.idea/tasks.xml +.idea/.name +.idea/compiler.xml +.idea/copyright/profiles_settings.xml +.idea/encodings.xml +.idea/misc.xml +.idea/modules.xml +.idea/scopes/scope_settings.xml +.idea/dictionaries +.idea/vcs.xml +.idea/jsLibraryMappings.xml +.idea/datasources.xml +.idea/dataSources.ids +.idea/sqlDataSources.xml +.idea/dynamic.xml +.idea/uiDesigner.xml +.idea/assetWizardSettings.xml +.idea/gradle.xml +.idea/jarRepositories.xml +.idea/navEditor.xml + +# Legacy Eclipse project files +.classpath +.project +.cproject +.settings/ + +# Mobile Tools for Java (J2ME) + +# Package Files # + +# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml) + +## Plugin-specific files: + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Mongo Explorer plugin +.idea/mongoSettings.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### AndroidStudio Patch ### + +!/gradle/wrapper/gradle-wrapper.jar + # DS Store .DS_Store ._.DS_Store diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 171da55b..ad7f1221 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -17,6 +17,7 @@ dependencies { compileOnly(libs.kotlin.gradle.plugin) compileOnly(libs.ksp.gradle.plugin) compileOnly(libs.hilt.gradle.plugin) + implementation(libs.firebase.performance.plugin) } gradlePlugin { diff --git a/build-logic/convention/src/main/java/com/project200/convention/AndroidApplicationConventionPlugin.kt b/build-logic/convention/src/main/java/com/project200/convention/AndroidApplicationConventionPlugin.kt index 931135d6..f68d931b 100644 --- a/build-logic/convention/src/main/java/com/project200/convention/AndroidApplicationConventionPlugin.kt +++ b/build-logic/convention/src/main/java/com/project200/convention/AndroidApplicationConventionPlugin.kt @@ -11,6 +11,8 @@ class AndroidApplicationConventionPlugin : Plugin { with(target) { pluginManager.apply(libs.plugin("android-application").get().pluginId) pluginManager.apply(libs.plugin("kotlin-android").get().pluginId) + pluginManager.apply(libs.plugin("google-services").get().pluginId) + pluginManager.apply(libs.plugin("firebase-performance").get().pluginId) pluginManager.apply("convention.android.hilt") // Android 애플리케이션 공통 설정 @@ -33,7 +35,6 @@ class AndroidApplicationConventionPlugin : Plugin { ) } debug { - applicationIdSuffix = ".debug" isDebuggable = true } } @@ -46,6 +47,10 @@ class AndroidApplicationConventionPlugin : Plugin { "implementation"(libs.library("androidx-core-ktx")) "implementation"(libs.library("timber")) + "implementation"(platform(libs.library("firebase-bom"))) + "implementation"(libs.library("firebase-analytics")) + "implementation"(libs.library("firebase-performance")) + "testImplementation"(libs.library("junit")) "androidTestImplementation"(libs.library("androidx-test-ext-junit")) "androidTestImplementation"(libs.library("androidx-test-espresso-core")) diff --git a/build.gradle.kts b/build.gradle.kts index 107c6dbf..87f8df3e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,4 +6,5 @@ plugins { alias(libs.plugins.hilt) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.navigation.safeargs) apply false + alias(libs.plugins.google.services) apply false } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 1b6cd24e..caeb9959 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } android { - namespace = "com.project200.myapp.common" + namespace = "com.project200.undabang.common" buildFeatures { viewBinding = true diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 058765a3..4ce7acc8 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } android { - namespace = "com.project200.myapp.data" + namespace = "com.project200.undabang.data" } dependencies { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 52407a71..5daa14d1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,6 +10,9 @@ minSdk = "26" targetSdk = "34" versionCode = "1" versionName = "1.0" +firebaseBom = "32.7.0" +googleServicesPlugin = "4.4.2" +firebasePerfPlugin = "1.4.2" # AndroidX Core & UI (SDK 34 호환 버전으로 조정) androidxCore = "1.13.1" @@ -60,7 +63,7 @@ kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-p ksp-gradle-plugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp"} # Hilt 플러그인 아티팩트 hilt-gradle-plugin = { group = "com.google.dagger", name = "hilt-android-gradle-plugin", version.ref = "hilt"} - +firebase-performance-plugin = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" } # Kotlin kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } @@ -125,6 +128,12 @@ turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine javax-inject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" } androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" } # 원래 있던 정의 유지 +# Firebase BoM +firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } +# Firebase SDKs +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } +firebase-performance = { group = "com.google.firebase", name = "firebase-perf-ktx" } + [plugins] # Android Gradle Plugins @@ -143,3 +152,7 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } # Navigation Safe Args Plugin navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "androidxNavigation" } + +# Firebase 플러그인 +google-services = { id = "com.google.gms.google-services", version.ref = "googleServicesPlugin" } +firebase-performance = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } diff --git a/presentation/build.gradle.kts b/presentation/build.gradle.kts index 2e1f071e..e86886fb 100644 --- a/presentation/build.gradle.kts +++ b/presentation/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "com.project200.myapp.presentation" + namespace = "com.project200.undabang.presentation" buildFeatures { viewBinding = true