Android クイックスタート
数分で、あなたの Android アプリは本物のフィーチャーフラグを読むようになります。永続的にキャッシュされ、オフラインでも安全で、デバイス ID は発行も保存も面倒を見てもらえます。
minSdk 26(Android 8.0)が必要です。Kotlin で、依存関係はコルーチン系だけです。
1. インストール
Section titled “1. インストール”SDK は GitHub の公開リポジトリにあります。ソース依存として利用してください。FortressFlag_SDK_android をタグ v1.0.0 でクローンし、Gradle included build としてプロジェクトに追加します。そのライブラリモジュールは fortressflag です。
git clone --branch v1.0.0 https://github.com/FortressFlag/FortressFlag_SDK_android2. SDK を起動する
Section titled “2. SDK を起動する”アプリ起動時に 1 回。Application.onCreate が自然な場所です。
import com.fortressflag.sdk.Configurationimport com.fortressflag.sdk.Environmentimport com.fortressflag.sdk.FortressFlag
FortressFlag.start( context, Configuration( sdkKey = "ffc_prod_…", // プロジェクトの SDK キー画面から environment = Environment.PRODUCTION, ),)SDK はキャッシュされた値を即座に読み込み、バックグラウンドで変更をポーリングします。このキーはクライアントキーで、設計上アプリの中に入って出荷されます。
3. flag を読む
Section titled “3. flag を読む”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 は通常どおり配信され、決して課金されません。
- flag がアプリに届くまで:バックグラウンドポーリングが何をしているか
- デバイス ID と課金:ID の話の全体
- ターゲティング:デバイスごとに異なる値を配信する