コンテンツにスキップ

Android クイックスタート

数分で、あなたの Android アプリは本物のフィーチャーフラグを読むようになります。永続的にキャッシュされ、オフラインでも安全で、デバイス ID は発行も保存も面倒を見てもらえます。

minSdk 26(Android 8.0)が必要です。Kotlin で、依存関係はコルーチン系だけです。

SDK は GitHub の公開リポジトリにあります。ソース依存として利用してください。FortressFlag_SDK_android をタグ v1.0.0 でクローンし、Gradle included build としてプロジェクトに追加します。そのライブラリモジュールは fortressflag です。

Terminal window
git clone --branch v1.0.0 https://github.com/FortressFlag/FortressFlag_SDK_android

アプリ起動時に 1 回。Application.onCreate が自然な場所です。

import com.fortressflag.sdk.Configuration
import com.fortressflag.sdk.Environment
import com.fortressflag.sdk.FortressFlag
FortressFlag.start(
context,
Configuration(
sdkKey = "ffc_prod_…", // プロジェクトの SDK キー画面から
environment = Environment.PRODUCTION,
),
)

SDK はキャッシュされた値を即座に読み込み、バックグラウンドで変更をポーリングします。このキーはクライアントキーで、設計上アプリの中に入って出荷されます。

if (FortressFlag.isEnabled("new-checkout", default = false)) {
// 新しいチェックアウトを表示する
}

stringValue と numberValue は多変量 flag を同じように読み、すべての読み取りはメモリから提供されます。I/O もネットワークもなく、どのスレッドから呼んでも構いません。

これで完了です。flag は公開されています。ダッシュボードで切り替えれば、アプリは次のポーリングで追従します。

FortressFlag が落ちても、あなたのアプリは落ちない

Section titled “FortressFlag が落ちても、あなたのアプリは落ちない”

isEnabled、stringValue、numberValue は決して例外を投げません。すべての読み取りは、このデバイスが実際に見た最後の値(永続キャッシュ経由の前回の実行からのものも含む)、次に呼び出し箇所のデフォルトへとフォールバックします。障害がユーザーに届くことはありません。

請求書に届く前に知っておく、2 つのプラットフォームの事実

Section titled “請求書に届く前に知っておく、2 つのプラットフォームの事実”

FortressFlag はデバイス単位で課金し、Android には前もって知っておく価値のある事実が 2 つあります。

  • 現時点で ID はアプリごとです。ユーザーが 1 台のスマートフォンであなたのアプリを 3 つ動かしていると、現状では最大 3 台のデバイスとして数えられます。Android アプリは、iOS のアプリファミリーのようには FortressFlag の ID をまだ共有しません。
  • アプリのアンインストールは ID を消去します。Android はアンインストール時にアプリの Keystore に基づくデータを消去するので、再インストールは新しい ID を発行し、新しいデバイスとして数えられます。(キーチェーンが残る iOS とはここが異なります。)

ID 自体はランダムに発行された仮名で、ANDROID_ID やいかなるハードウェア識別子からも導出されません。そしてエミュレーターは sim_ の ID を発行します。flag は通常どおり配信され、決して課金されません。