NubrickSDK

NubrickSDK は Android SDK のエントリポイントです。初期化、イベント送信、埋め込み、Remote Config、ユーザープロパティ更新を扱います。

circle-exclamation

定義

object NubrickSDK {
    fun initialize(
        context: Context,
        config: Config
    )

    fun dispatch(event: NubrickEvent)

    fun setUserId(id: String)
    fun getUserId(): String?

    fun setUserProperty(key: String, value: Any)
    fun getUserProperty(key: String): String?

    fun setUserProperties(props: Map<String, Any>)
    fun getUserProperties(): Map<String, String>

    @Composable
    fun Embedding(
        id: String,
        modifier: Modifier = Modifier,
        arguments: Any? = null,
        onEvent: ((event: Event) -> Unit)? = null,
        content: (@Composable (state: EmbeddingLoadingState) -> Unit)? = null,
        onSizeChange: ((width: NubrickSize, height: NubrickSize) -> Unit)? = null
    )

    @Composable
    fun RemoteConfig(
        id: String,
        content: @Composable (RemoteConfigLoadingState) -> Unit
    )

    fun remoteConfig(id: String): Result<app.nubrick.nubrick.remoteconfig.RemoteConfig>
}

data class Config(
    val projectId: String,
    val onEvent: ((event: Event) -> Unit)? = null,
    val onDispatch: ((event: NubrickEvent) -> Unit)? = null,
    val trackCrashes: Boolean = true,
)

sealed class NubrickSize {
    data class Fixed(val value: Int) : NubrickSize()
    data object Fill : NubrickSize()
}

初期化

イベント送信

カスタムイベントを発火させる

埋め込み(Compose)

フェーズを使う場合:

埋め込みサイズの取得

onSizeChange を使うと、埋め込みコンポーネントの実サイズを取得できます。 このコールバックは、実際の埋め込みページが読み込まれたときだけ呼ばれます。Loading / NotFound / Failed では呼ばれません。

NubrickSize の意味:

  • NubrickSize.Fixed(value) は、エディタで固定サイズが設定されていることを表します。

  • NubrickSize.Fill は、その軸に固定サイズがなく、ホスト側のレイアウトに従うことを表します。

Remote Config

ユーザープロパティ

circle-exclamation
circle-info

このプロパティは、

  • どのユーザーがエクスペリメントのターゲットとなるかをフィルタリングする

  • エクスペリメント内のユーザー毎の動的な変数として表示する

ために使用されます。

ビルトインのユーザープロパティ

デフォルトで、以下のビルトインプロパティが設定されています:

Key
Description

userId

User id (uuid by default)

languageCode

language code (e.g. ja for Japanese, en for English)

regionCode

region code (e.g. JP for Japan, US for United States)

sdkVersion

nubrick sdk version

osName

os name (Android)

osVersion

Android API level

appId

your app package name

appVersion

your app version

補足

  • setUserProperties / setUserProperty の値は String, Boolean, Int, Double などを渡せます。

  • getUserProperties() は、アプリが設定したカスタム値と userId を取得できます。

  • 失敗系の状態は Phases を参照してください。

Last updated