제가 작성한 tistory글의 마이그레이션입니다.

도입

이번 포스팅에서는 Firebase의 기능들을 설정할 예정이다.
Firebase 기능들 중에

  • Analytics
  • Crashlytic
  • Performance
  • TestLab
  • Remote Config
  • Distribution
  • Cloud Messaging

이 정도 기능에 대해 검토하고 적용할 예정이다.

검토

구분설명설정여부
Analytics유지보수를 위해 무언가를 판단할 때 근거가 될 것, 그렇기 때문에 꼭 필요O
Crashlytic유지보수를 위해 무언가를 판단할 때 근거가 될 것, 그렇기 때문에 꼭 필요O
Performance로컬 데이터를 사용하기 때문에 크게 필요할 것 같지는 않음O
TestLab로컬 데이터가 존재해야 test하는데 의미가 있을 것, 그러나 testLab에서 진행하는 디바이스는 로컬 데이터가 없으므로 Skip
Remote ConfigA/B test를 위해 필요O
Distribution테스터가 많지 않아 필요하지는 않지만 이번에 써보자
Cloud Messaging사용자에게 message를 전달할 기능이 없음, 다음 버전에 고민X

설정

Analytics

val analytics: FirebaseAnalytics by lazy {
    FirebaseAnalytics.getInstance(this)
}
// ...
analytics.setCurrentScreen(activity, screenName, null)

Crashlytic

Fabric.with(this, Crashlytics())
// ...
Crashlytics.getInstance().crash()

Performance

FirebasePerformance.getInstance().newTrace(SAVE_IMAGE_FEATURE)
// ...
imageTrace.start()
// ...
imageTrace.stop()

Remote Config

val remoteConfig = FirebaseRemoteConfig.getInstance().apply {
    setDefaults(R.xml.remote_config_defaults)
}
 
fun fetchRemoteConfig(setConfig: (() -> Unit)? = null) {
    remoteConfig.fetch(0L).addOnCompleteListener {
        if (it.isSuccessful) {
            Log.d(javaClass.simpleName, "remoteConfig is successful")
            remoteConfig.activateFetched()
        } else {
            Log.d(javaClass.simpleName, "remoteConfig is failed")
        }
        setConfig?.invoke()
    }
}

스크린샷

profile
행복을 고민하는 블로거

0개의 댓글

관련 채용 정보