Skip to content

Commit 5b5996f

Browse files
committed
[release]: 화면 접근 수 확인 위한 firebase analytics 연결
1 parent c7abd71 commit 5b5996f

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

app/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ android {
2828
applicationId = "com.texthip.thip"
2929
minSdk = 29
3030
targetSdk = 35
31-
versionCode = 9
31+
versionCode = 11
3232
versionName = "1.3.0"
3333

3434
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@@ -139,6 +139,9 @@ dependencies {
139139
implementation("androidx.credentials:credentials:1.2.2")
140140
implementation("androidx.credentials:credentials-play-services-auth:1.2.2")
141141

142+
// Firebase analytics
143+
implementation(platform("com.google.firebase:firebase-bom:34.3.0"))
144+
implementation("com.google.firebase:firebase-analytics")
142145
}
143146

144147
kapt {

app/src/main/java/com/texthip/thip/MainActivity.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,19 @@ import androidx.activity.compose.setContent
88
import androidx.activity.enableEdgeToEdge
99
import androidx.activity.result.contract.ActivityResultContracts
1010
import androidx.compose.runtime.Composable
11+
import androidx.compose.runtime.DisposableEffect
1112
import androidx.compose.runtime.LaunchedEffect
1213
import androidx.compose.runtime.getValue
1314
import androidx.compose.runtime.mutableStateOf
1415
import androidx.compose.runtime.setValue
16+
import androidx.navigation.NavController
1517
import androidx.navigation.compose.NavHost
1618
import androidx.navigation.compose.composable
1719
import androidx.navigation.compose.rememberNavController
20+
import com.google.firebase.Firebase
21+
import com.google.firebase.analytics.FirebaseAnalytics
22+
import com.google.firebase.analytics.analytics
23+
import com.google.firebase.analytics.logEvent
1824
import com.texthip.thip.data.manager.AuthStateManager
1925
import com.texthip.thip.data.manager.TokenManager
2026
import com.texthip.thip.ui.navigator.navigations.authNavigation
@@ -140,6 +146,25 @@ fun RootNavHost(
140146
notificationData: MainActivity.NotificationData? = null
141147
) {
142148
val navController = rememberNavController()
149+
val firebaseAnalytics = Firebase.analytics
150+
151+
DisposableEffect(navController) {
152+
val listener = NavController.OnDestinationChangedListener { _, destination, _ ->
153+
// 목적지의 route가 null이 아닐 경우에만 이벤트를 로깅
154+
destination.route?.let { route ->
155+
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
156+
param(FirebaseAnalytics.Param.SCREEN_NAME, route)
157+
param(FirebaseAnalytics.Param.SCREEN_CLASS, route)
158+
}
159+
Log.d("GA_Tracker", "Screen viewed: $route")
160+
}
161+
}
162+
navController.addOnDestinationChangedListener(listener)
163+
164+
onDispose {
165+
navController.removeOnDestinationChangedListener(listener)
166+
}
167+
}
143168

144169
LaunchedEffect(Unit) {
145170
authStateManager.tokenExpiredEvent.collectLatest {

0 commit comments

Comments
 (0)