Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
run: |
echo '${{ secrets.LOCAL_PROPERTIES }}' >> ./local.properties

- name: Generate google-services.json
run: echo '${{ secrets.GOOGLE_SERVICES }}' | base64 -d > ./app/google-services.json

- name: Code style checks
run: |
./gradlew ktlintCheck detekt
Expand Down
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ plugins {
alias(libs.plugins.booket.android.application)
alias(libs.plugins.booket.android.application.compose)
alias(libs.plugins.booket.android.hilt)
alias(libs.plugins.booket.android.firebase)
}

android {
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@
android:name="com.ninecraft.booket.initializer.KakaoSdkInitializer"
android:value="androidx.startup" />

<meta-data
android:name="com.ninecraft.booket.initializer.FirebaseCrashlyticsInitializer"
android:value="androidx.startup" />

</provider>

<activity
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.ninecraft.booket.initializer

import android.content.Context
import androidx.startup.Initializer
import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.ninecraft.booket.BuildConfig

class FirebaseCrashlyticsInitializer : Initializer<Unit> {
override fun create(context: Context) {
FirebaseCrashlytics.getInstance().isCrashlyticsCollectionEnabled = !BuildConfig.DEBUG
}

override fun dependencies(): List<Class<out Initializer<*>>> {
return emptyList()
}
}
1 change: 1 addition & 0 deletions build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ gradlePlugin {
"android.library" to "AndroidLibraryConventionPlugin",
"android.library.compose" to "AndroidLibraryComposeConventionPlugin",
"android.feature" to "AndroidFeatureConventionPlugin",
"android.firebase" to "AndroidFirebaseConventionPlugin",
"android.hilt" to "AndroidHiltConventionPlugin",
"android.retrofit" to "AndroidRetrofitConventionPlugin",
"jvm.library" to "JvmLibraryConventionPlugin",
Expand Down
25 changes: 25 additions & 0 deletions build-logic/src/main/kotlin/AndroidFirebaseConventionPlugin.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

import com.ninecraft.booket.convention.Plugins
import com.ninecraft.booket.convention.applyPlugins
import com.ninecraft.booket.convention.implementation
import com.ninecraft.booket.convention.libs
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies

internal class AndroidFirebaseConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
applyPlugins(
Plugins.GOOGLE_SERVICES,
Plugins.FIREBASE_CRASHLYTICS,
)

dependencies {
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ object Plugins {

const val HILT = "dagger.hilt.android.plugin"
const val KSP = "com.google.devtools.ksp"
const val GOOGLE_SERVICES = "com.google.gms.google-services"
const val FIREBASE_CRASHLYTICS = "com.google.firebase.crashlytics"
}
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ plugins {
alias(libs.plugins.android.library) apply false
alias(libs.plugins.hilt) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.google.service) apply false
alias(libs.plugins.firebase.crashlytics) apply false
}

val excludeModules: String? by project
Expand Down
13 changes: 13 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ kotlin-ktlint-source = "0.50.0"
androidx-test-ext-junit = "1.2.1"
androidx-test-runner = "1.6.2"

## Firebase
google-service = "4.4.3"
firebase-bom = "33.16.0"
firebase-crashlytics = "3.0.4"

[libraries]
android-gradle-plugin = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" }
kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
Expand Down Expand Up @@ -137,6 +142,10 @@ google-mlkit-text-recognition-korean = { group = "com.google.mlkit", name = "tex
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" }
androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" }

firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" }
firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" }
firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" }

[plugins]
gradle-dependency-handler-extensions = { id = "land.sungbin.dependency.handler.extensions", version.ref = "gradle-dependency-handler-extensions" }

Expand All @@ -155,13 +164,17 @@ kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref =
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }

google-service = { id = "com.google.gms.google-services", version.ref = "google-service" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebase-crashlytics" }

# Plugins defined by this project
booket-android-application = { id = "booket.android.application", version = "unspecified" }
booket-android-application-compose = { id = "booket.android.application.compose", version = "unspecified" }
booket-android-library = { id = "booket.android.library", version = "unspecified" }
booket-android-library-compose = { id = "booket.android.library.compose", version = "unspecified" }
booket-android-retrofit = { id = "booket.android.retrofit", version = "unspecified" }
booket-android-feature = { id = "booket.android.feature", version = "unspecified" }
booket-android-firebase = { id = "booket.android.firebase", version = "unspecified" }
booket-android-hilt = { id = "booket.android.hilt", version = "unspecified" }
booket-jvm-library = { id = "booket.jvm.library", version = "unspecified" }
booket-kotlin-library-serialization = { id = "booket.kotlin.library.serialization", version = "unspecified" }
Expand Down
Loading