# Remote Config

Remote Config is a feature that allows you to replace values or properties managed within your application with parameter values defined in the Hackle Dashboard, enabling you to control your application's behavior and settings in real time.

Navigate to the Remote Config screen in the Hackle Dashboard to configure parameters and set values based on user identification rules.

## remoteConfig

Calling the `getRemoteConfig()` method returns a `RemoteConfig` instance that contains the Remote Config information for the user (configured parameters and rule information).

```dart
import "package:hackle/hackle.dart";

// Returns an instance containing Remote Config information.
RemoteConfig remoteConfig = HackleApp.getRemoteConfig();
```

## Query Remote Config Parameters

* Since parameter values configured in the Hackle Remote Config screen are stored as key-value pairs, use the methods below according to the parameter type to retrieve the configured values.

{% hint style="warning" %}
Remove Remote Config-related code after archiving.

Once a Remote Config parameter is archived, you can no longer access its parameter information. Therefore, be sure to clean up the related code after archiving a Remote Config parameter.
{% endhint %}

### getString

* Returns parameter values configured as STRING or JSON type.
* Returns the default value or the value configured in a rule based on the state decision.

```dart
import "package:hackle/hackle.dart";

// Returns an instance containing Remote Config information.
RemoteConfig remoteConfig = HackleApp.getRemoteConfig();

String strValue = await remoteConfig.getString("parameter_key_string_type", "defaultValue");

// JSON Type
String jsonValue = await remoteConfig.getString("parameter_key_json_type", "defaultValue");
```

### getInt

* Returns parameter values configured as Number type as an Int.
* Returns the default value or the value configured in a rule based on the state decision.

```dart
import "package:hackle/hackle.dart";

// Returns an instance containing Remote Config information.
RemoteConfig remoteConfig = HackleApp.getRemoteConfig();

int intValue = await remoteConfig.getInt("parameter_key_int_type", 0);
```

### getDouble

* Returns parameter values configured as Number type as a Double.
* Returns the default value or the value configured in a rule based on the state decision.

```dart
import "package:hackle/hackle.dart";

// Returns an instance containing Remote Config information.
RemoteConfig remoteConfig = HackleApp.getRemoteConfig();

double doubleValue = await remoteConfig.getDouble("parameter_key_double_type", 0.0);
```

### getBool

* Returns parameter values configured as Boolean type.
* Returns the default value or the value configured in a rule based on the state decision.

```dart
import "package:hackle/hackle.dart";

// Returns an instance containing Remote Config information.
RemoteConfig remoteConfig = HackleApp.getRemoteConfig();

bool boolValue = await remoteConfig.getBool("parameter_key_bool_type", false);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/en/development-guide/flutter/flutter-remote-config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
