반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • 타입
    • 구축
    • xcode
    • 개발
    • kotlin
    • reduce
    • swift
    • 예제
    • JSP
    • IT
    • Java
    • Android
    • 프로그래머스
    • 프로그래밍
    • swfit
    • level1
    • ios
    • 코딩테스트
    • 공부
    • map

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    [Kotlin] RemoteConfig 적용하기 [간단]
    IDE & Framework/Android

    [Kotlin] RemoteConfig 적용하기 [간단]

    2022. 1. 9. 23:42
    반응형

      Remote config란, key-value쌍으로 이루어진 값을 Firebase Remote config에 등록하면,

    몇줄의 간단한 코드로 app에서 가져오게 할 수 있는 기능입니다.

     

     이를 이용해서 사용자의 업데이트 없이 앱의 동작과 뷰를 수정할수도 있고, A/B테스트를 수행하는 등,

    굉장히 강력하지만, 손쉽게 사용할 수 있는 기능입니다.

     

     해당 방법 또한 firebase에 적용하고 싶은 앱을 등록하고, application package에는

    firebase project의 goole-service.json을 app수준 폴더에 위치시켜야 합니다. 해당 방법은 건너뛰겠습니다.\

      만약, 여러개의 firebase proejct를 하나의 앱에 등록하고 싶다면, firebase instance를 생성해 해당 component의 instance를 별도로 생성해 주어야 합니다.

    firebase remote config에서 data 관리

     

    앱에 Remote config SDK 추가하기

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.3')
    
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }

     

    Remote config 객체 가져오기

    remoteConfig = Firebase.remoteConfig
    val configSettings = remoteConfigSettings {
        minimumFetchIntervalInSeconds = 3600
    }
    remoteConfig.setConfigSettingsAsync(configSettings)

    minimumFetchIntervalInSeconds : 설정한 초만큼 inertval을 가지고 불러옵니다.

    3600인경우 해당 key-value를 획득한지 10시간(3600초 = 600분 = 10시갼)이 지나지 않았을 경우 불러오지 않습니다.

    SDK버전 17이전에는 1시간당 5번이 한계였고, 지금은 조금 늘어났지만, 정확한 수치는 밝히고 있지 않으므로 1시간당 5번 불러오도록

    세팅하는것이 좋겠죠...?

     

    Remote config 기본값 설정하기

    mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_default_configs)
    
    //R.xml.remote_default_configs
    <?xml version="1.0" encoding="utf-8"?>
    <defaultsMap>
        <entry>
            <key>remote_test_key</key>
            <value>bye_world</value>
        </entry>
    </defaultsMap>

     

    획득과 동시에 앱에 적용하기

    remoteConfig.fetchAndActivate()
      .addOnCompleteListener(this) { task ->
          if (task.isSuccessful) {
          val updated = task.result
          Log.d(TAG, "Config params updated: $updated")
          Toast.makeText(this, "Fetch and activate succeeded",
          Toast.LENGTH_SHORT).show()
        } else {
          Toast.makeText(this, "Fetch failed",
          Toast.LENGTH_SHORT).show()
        }
      //set your method
      displayWelcomeMessage()
    }

     remote config에서 변수를 불러오는 fetch와, 앱에 적용하는 activiate는 별도의 함수로 따로 호출할 수 있습니다.

    하지만, fetch와 activeate를 한번에 호출할 수도 있습니다.

     

     fetchAnActivate 이전 remoteConfig.getString("YOUR_SET_KEY")로 값을 가져오면 mxl에 설정한 기본값이나,

    가장 마지막으로 없데이트된 값을 가져오며, fetchAndActivate이후 호출하면 remoteConfig값을 출력하게 됩니다.

     

    간단한 boolean값부터 json 데이터까지 폭넓게 적용이 가능하고, cloud function을 이용해서 더욱 더 다양한 상황에 매칭시켜

    적용할수 있습니다. 더 자세한 내용은 문서를 참고해 주세요!

     

     

     


    참고

    https://firebase.google.com/docs/remote-config

     

    Firebase 원격 구성  |  Firebase Documentation

    앱 업데이트를 게시하지 않고도 일일 활성 사용자 수 제한 없이 무료로 앱의 동작과 모양을 변경할 수 있습니다.

    firebase.google.com

     

    반응형
    저작자표시 비영리 (새창열림)

    'IDE & Framework > Android' 카테고리의 다른 글

    [Kotlin] Broadcast recevier란? 사용법과 예제  (1) 2022.01.15
    [Kotlin] Broadcast 란? 사용법과 예제  (0) 2022.01.15
    [Kotlin] Firebase Crashlytics 적용시키기 (간단!)  (0) 2022.01.09
    [Kotlin] Firebase Crashlytics 적용시키기 (간단!)  (0) 2022.01.09
    [JAVA] Base64 incoding, decoding  (0) 2022.01.06
      'IDE & Framework/Android' 카테고리의 다른 글
      • [Kotlin] Broadcast recevier란? 사용법과 예제
      • [Kotlin] Broadcast 란? 사용법과 예제
      • [Kotlin] Firebase Crashlytics 적용시키기 (간단!)
      • [Kotlin] Firebase Crashlytics 적용시키기 (간단!)
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바