Android 快速入門
幾分鐘之內,你的 Android 應用程式就會讀到一個真實的 feature flag:持久快取、離線安全,裝置身分也已替你鑄造並儲存好。
需要 minSdk 26(Android 8.0)。Kotlin,唯一的相依家族是 coroutines。
這個 SDK 放在 GitHub 上的公開儲存庫裡,把它當作原始碼相依使用:在 v1.0.0 標籤克隆 FortressFlag_SDK_android,並把它作為 Gradle included build 加入你的專案,它的函式庫模組是 fortressflag。
git clone --branch v1.0.0 https://github.com/FortressFlag/FortressFlag_SDK_android2. 啟動 SDK
Section titled “2. 啟動 SDK”只做一次,在應用程式啟動時。你的 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 永遠不會拋出例外。每一次讀取都往回落到這台裝置實際看過的最後一批值(包括透過持久快取來自先前的執行),然後才是你呼叫處的預設值。故障永遠不會觸及你的使用者。
兩個平台事實,在它們出現在發票上之前
Section titled “兩個平台事實,在它們出現在發票上之前”FortressFlag 按裝置計費,而 Android 有兩個事實值得先知道:
- 目前身分是依應用程式的。如果一位使用者在一支手機上跑你的三個應用程式,目前最多會算成三台裝置:Android 應用程式還無法像 iOS 應用程式家族那樣共用一個 FortressFlag 身分。
- 解除安裝你的應用程式會清除身分。Android 在解除安裝時會清除應用程式以 Keystore 支撐的資料,所以重新安裝會鑄造一個新的身分,並算成一台新裝置。(這和 iOS 不同,那裡的鑰匙圈會保留下來。)
身分本身是隨機鑄造且假名化的,永遠不從 ANDROID_ID 或任何硬體識別碼推導。而模擬器會鑄造 sim_ 身分:照常得到 flag,永遠不計費。
- Flag 如何送達你的應用程式:背景輪詢做了什麼
- 裝置身分與計費:關於身分的完整說明
- 鎖定對象:對不同裝置提供不同的值