> For the complete documentation index, see [llms.txt](https://waap.docs.link11.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://waap.docs.link11.com/mobile-sdk-v2.2.x/flutter.md).

# Flutter

## Introduction <a href="#how-the-sdk-works" id="how-the-sdk-works"></a>

The SDK supports programmatic integration with Flutter.

{% hint style="info" %}
These instructions assume that you have already read the [Developer Guide](/mobile-sdk-v2.2.x/developer-guide-sdk-v2.2.x.md). If you have not yet done so, please do so before continuing below.
{% endhint %}

This SDK comes with an example app: a full Android Studio project is enclosed, based on the [http package](https://pub.dev/packages/http). The app uses the Reblaze Flutter plugin (it is part of the same SDK zip). You can play with this example to understand how SDK integration works.

## Installation <a href="#installation" id="installation"></a>

Unpack the **ReblazeSDK.zip** to your computer, and add the to your **pubsepec.yaml** dependencies:

```
  reblaze:
    path: ${sdkRootDir}/libs/flutter
```

Please note that the plugin itself depends on the native Mobile Reblaze SDK, so you should keep the whole directory of \`libs\` with its subdirectories together.

[*Auto-signing*](/mobile-sdk-v2.2.x/developer-guide-sdk-v2.2.x.md#signing-the-network-requests) is not supported in Flutter even on iOS, but may help for embedded WebViews of your Flutter ap&#x70;*.*

## Finding the App Signature <a href="#finding-the-app-signature" id="finding-the-app-signature"></a>

With Flutter, you actually have two signatures that must be uploaded to the Reblaze Console. Follow the instructions for [Android](/mobile-sdk-v2.2.x/android.md) and [iOS](/mobile-sdk-v2.2.x/ios.md). For the debug version that runs on Emulator/Simulator, the special signature: `"abadbabe"` will be exposed. Make sure that this is disabled on Production.

## Working with SDK <a href="#configuration-properties" id="configuration-properties"></a>

In Flutter, access to SDK goes through **MethodChannel** and is **async**.

For example:

```
reblaze.setInterval(25);
rbzSdk = await reblaze.generateHash();
```

Also, in Flutter we don't expose the `reblaze.setEventListener()` API. If you need this monitoring, you can add this to Android and iOS native code of your app.

[Mocking](/mobile-sdk-v2.2.x/developer-guide-sdk-v2.2.x.md#offline-testing-mock) is fully supported by the the Flutter plugin.
