java,kotlin
UXオプティマイザー – Android¶
Remote Config インターフェース¶
UX Optimizer の各機能は次のAPIより利用可能です。
Repro.getRemoteConfig()
Repro.getRemoteConfig()
ローカルのデフォルト値を設定する¶
3つの方法が利用できます。次に示す3つのメソッドは、 mainActivity:onCreate
の中で Repro.setup()
の前に呼ぶことを推奨します。
Mapを利用する¶
HashMap<String, Object> values = new HashMap<>();
values.put("key1", "def1");
values.put("key2", "def2");
Repro.getRemoteConfig().setDefaultsFromMap(values);
val values: HashMap<String, Any> = HashMap()
values["key1"] = "def1"
values["key2"] = "def2"
Repro.getRemoteConfig().setDefaultsFromMap(values)
Json文字列を利用する¶
Repro.getRemoteConfig().setDefaultsFromJsonString("{\"key1\": \"zzz1\", \"key2\": \"zzz2\"}");
Repro.getRemoteConfig().setDefaultsFromJsonString("{\"key1\": \"zzz1\", \"key2\": \"zzz2\"}")
Jsonファイルを利用する¶
Repro.getRemoteConfig().setDefaultsFromJsonFile(pathToJsonFile);
Repro.getRemoteConfig().setDefaultsFromJsonFile(pathToJsonFile)
Remote Config の値にアクセスする¶
特定の値にアクセスする¶
String value = Repro.getRemoteConfig().get("key1").asString();
val value = Repro.getRemoteConfig().get("key1").asString()
注釈
Repro.getRemoteConfig().get('key1')
の返り値は常にRemoteConfigValue
でありnull
になることはありません。- 与えられたキーに該当する値が存在しない場合、
RemoteConfigValue
のasString()
はnull
を返しますが、toString()
は空文字を返します。
Remote Config全体¶
Repro.getRemoteConfig().getAllValues();
Repro.getRemoteConfig().getAllValues()
上記のコードはすべての値をもった Map
を返します。
プリフィックスを指定してアクセスする¶
Repro.getRemoteConfig().getAllValuesWithPrefix("color");
Repro.getRemoteConfig().getAllValuesWithPrefix("color")
上記のコードは color
に先頭がマッチするキーの値すべてを Map
として返します。
値をリセットする¶
開発環境などでRemote Configオブジェクトを初期状態に戻したい場合は Repro.getRemoteConfig().forceReset()
を読んでください。 forceReset()
の実行後は、ローカルのデフォルト値やコールバックを再びセットする必要があります。
Fetch と Activate¶
Remote Configの値はアプリがフォアグラウンドに遷移するたびに自動的にReproのサーバーから取得し直されるため、fetchコールバックは必ず必要というわけではありません。取得した設定値を反映する場合は activateFetched()
を呼び出してください。
古いRemote Configの値を新しく取得された値で置き換えるタイミングを制御したい場合はfetchコールバックを利用することを推奨します。
- 登録できるコールバックは1つです。
- コールバックは必ず実行されることを保証するものではありません。
- 他のAndroidのインターフェースと同じく、コールバックのタイムアウト時間は ミリ秒 で指定します。
- リスナに与えられたコールバックはUIスレッド上で実行されます。
Repro.setup()
が呼び出されない限りは fetch は実行されず、またコールバックも実行されることはありません。- fetch コールバックは
onCreate
でセットせず、必ずメインのアクティビティのonResume
でセットしてください。 activateFetched()
はコールバックの実行完了後に呼び出してください。下記の例のように、コールバックのブロックの中から呼び出すことも可能です。
fetch の例
Repro.getRemoteConfig().fetch(3000, new RemoteConfigListener() {
@Override
public void onCompletion(FetchStatus status) {
if (status == FetchStatus.SUCCESS) {
Log.d("remote_config", "BEFORE " + Repro.getRemoteConfig().getAllValues().toString());
Repro.getRemoteConfig().activateFetched();
Log.d("remote_config", "AFTER " + Repro.getRemoteConfig().getAllValues().toString());
}
}
});
Repro.getRemoteConfig().fetch(3000) { status ->
if (status == FetchStatus.SUCCESS) {
Log.d("remote_config", "BEFORE " + Repro.getRemoteConfig().allValues.toString())
Repro.getRemoteConfig().activateFetched()
Log.d("remote_config", "AFTER " + Repro.getRemoteConfig().allValues.toString())
}
}