# RemoteConfigVariant

### 定義

```swift
public final class RemoteConfigVariant {
    public let experimentId: String
    public let variantId: String

    public func get(_ key: String) -> String?
    public func getAsString(_ key: String) -> String?
    public func getAsBool(_ key: String) -> Bool?
    public func getAsInt(_ key: String) -> Int?
    public func getAsFloat(_ key: String) -> Float?
    public func getAsDouble(_ key: String) -> Double?
    public func getAsData(_ key: String) -> Data?

    @MainActor
    public func getAsView(
        _ key: String,
        arguments: NubrickArguments? = nil,
        onEvent: ((_ event: ComponentEvent) -> Void)? = nil
    ) -> some View

    @MainActor
    public func getAsView<V: View>(
        _ key: String,
        arguments: NubrickArguments? = nil,
        onEvent: ((_ event: ComponentEvent) -> Void)? = nil,
        @ViewBuilder content: (@escaping (_ phase: SwiftUIEmbeddingPhase) -> V)
    ) -> some View

    @MainActor
    public func getAsUIView(
        _ key: String,
        arguments: NubrickArguments? = nil,
        onEvent: ((_ event: ComponentEvent) -> Void)? = nil
    ) -> UIView?

    @MainActor
    public func getAsUIView(
        _ key: String,
        arguments: NubrickArguments? = nil,
        onEvent: ((_ event: ComponentEvent) -> Void)? = nil,
        content: @escaping (_ phase: UIKitEmbeddingPhase) -> UIView
    ) -> UIView?
}
```

### 基本取得

```swift
let experimentId = configVariant.experimentId
let variantId = configVariant.variantId

let str = configVariant.getAsString("title")
let enabled = configVariant.getAsBool("is_enabled")
let count = configVariant.getAsInt("max_count")
```

### View として取得（SwiftUI）

```swift
configVariant.getAsView(
    "hero_component",
    arguments: ["item_id": itemId]
)
```

### UIView として取得（UIKit）

```swift
let view = configVariant.getAsUIView(
    "hero_component",
    arguments: ["item_id": itemId]
)
```
