---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.2
alternate:
  - https://yandex.com/support/varioqub-app/en/sdk/plugins/flutter/integration.md
  - https://yandex.com/support/varioqub-app/ru/sdk/plugins/flutter/integration.md
  - href: https://yandex.com/support/varioqub-app/ru/sdk/plugins/flutter/integration.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com/support/varioqub-app/ru/llms.txt?revision=r21641040
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/support/varioqub-app/ru/llms.txt?revision=r21641040

# Интеграция Varioqub Flutter

[Varioqub Flutter](https://github.com/appmetrica/varioqub-flutter-plugin) — комплексный инструмент аналитики и маркетинга приложений, который работает на всех основных мобильных платформах. Он включает поддержку Varioqub SDK для [Android](https://yandex.com/support/varioqub-app/ru/sdk/android/integration.md) и [iOS](https://yandex.com/support/varioqub-app/ru/sdk/ios/integration.md).

**Системные требования:**

- Flutter 2.0 и выше.
- [pigeon 10.0](https://pub.dev/packages/pigeon) и выше.


Для работы плагина Varioqub Flutter подключите и инициализируйте плагин AppMetrica Flutter. Подробнее о том, как это можно сделать, читайте в [документации AppMetrica Flutter](https://appmetrica.yandex.ru/docs/ru/sdk/flutter/analytics/quick-start).

Ниже описаны этапы подключения и инициализации Varioqub Flutter.

## Общие рекомендации при интеграции

1. При старте новой сессии вызывайте метод `activateConfig()`, чтобы получить значения сохраненных флагов.

1. Запускайте `fetchConfig()` в фоне, чтобы выгрузить новые значения флагов с сервера и активировать их при старте следующей сессии.

1. Не рекомендуется вызывать метод `activateConfig()` в середине сессии — это может привести к неконсистентному поведению приложения.

## Шаг 1. Подключите плагин Varioqub Flutter {#integration}

Из корня проекта вызовите команду:

```bash
flutter pub add varioqub_plugin
```

После добавления плагина в файле `pubspec.yaml` появится строка с зависимостью:

```yaml
dependencies:
  varioqub_plugin: ^0.1.0
```

## Шаг 2. Инициализируйте библиотеку

1. Добавьте импорт `varioqub_plugin`:

   ```js
   import 'package:varioqub_plugin/varioqub_plugin.dart';
   ```

1. Инициализируйте библиотеку Varioqub с помощью метода `initVarioqubWithAppMetricaAdapter()`:

    ```javascript
    Varioqub.initVarioqubWithAppMetricaAdapter({
        clientId: 'appmetrica.1234567',
    });
    ```

Для инициализации библиотеки используется метод `initVarioqubWithAppMetricaAdapter(settings: VarioqubSettings)`. В качестве параметров он принимает объект `VarioqubSettings`.

Содержит обязательные и опциональные настройки:

**Обязательные**

- `clientId` — идентификатор проекта в формате `appmetrica.XXXXXX`, где _XXXXXX_ — идентификатор приложения из интерфейса AppMetrica (например, `VarioqubSettings("appmetrica.1234567")`).

    <!-- source: ru/sdk/_includes/application-id.md -->
    {% note tip %}

    ID приложения можно получить на странице **Настройки** AppMetrica: скопируйте его из **Общие настройки** → **ID приложения**.

    {% endnote %}
    <!-- endsource: ru/sdk/_includes/application-id.md -->

**Опциональные**

- `clientFeatures` — список пользовательских параметров. Например, признак того, что пользователь подписан на рассылки.

- `fetchThrottleIntervalSeconds` — ограничение частоты обновления конфига в секундах. Рекомендуется использовать только для тестирования.

- `url` — изменение URL для ответов сервера. Используется только для тестов.

- `logs` — включение внутреннего логирования. При обращении в поддержку лучше сначала включить логирование и отправить лог с описанием проблемы.

- `activateEvent` — отправка события при активации конфигурации флагов. По умолчанию отправка события включена.

## Шаг 3. Задайте конфигурацию по умолчанию

Вы можете установить конфигурацию по умолчанию, чтобы ваше приложение использовало необходимые значения параметров до того, как оно подключится к серверу с удаленной конфигурацией. Для этого передайте список параметров с помощью метода `setDefaults(Map<String,String> defaults)`.

Вы можете скачать XML-файл конфигурации по умолчанию со страницы [Конфиг флагов](https://yandex.com/support/varioqub-app/ru/web/config.md#create).

## Шаг 4. Запустите обновление конфигурации флагов в фоне и активируйте конфигурацию

Чтобы использовать самую свежую конфигурацию флагов из интерфейса, запустите фоновое обновление конфигурации с помощью метода `fetchConfig()`.

Каждый раз при получении самой свежей версии конфигурации (чаще всего это происходит при старте новой сессии) необходимо активировать ее с помощью метода `activateConfig()`.

<!-- source: ru/sdk/_includes/config-note.md -->
{% note tip %}

Основной сценарий использования:

Периодически скачивайте конфигурацию и активируйте ее при запуске приложения. Это гарантирует, что флаги не поменяются во время пользовательской сессии. Рекомендуется запускать активацию как можно раньше.

{% endnote %}
<!-- endsource: ru/sdk/_includes/config-note.md -->

```javascript
Varioqub.fetchConfig().then((value) {
    if (value.status == 0) {
        Varioqub.activateConfig();
    } else {
        log("Error while fetching config - ${value.error}");
    }
});
```

## Получение флагов из интерфейса

Значения флагов вычисляются и предоставляются в следующем порядке:

1. Флаг есть в эксперименте.
2. Флаг есть в загруженной конфигурации.
3. Флаг есть в конфигурации по умолчанию.

Методы для получения флагов:

- `Varioqub.getString(key, default)`.

Пример кода:

```javascript
Varioqub.getString("key", "default_value");
```

## Получение ID устройства для проверки эксперимента {#get-id}

Для получения ID устройства используйте метод `Varioqub.getId()`:

```javascript
Varioqub.getId();
```

<!-- source: ru/sdk/_includes/getid-empty.md -->
{% note info %}

До первого успешного вызова `fetchConfig` метод `Varioqub.getId()` может возвращать пустой ответ.

{% endnote %}
<!-- endsource: ru/sdk/_includes/getid-empty.md -->

Подробнее о создании и проверке эксперимента читайте в разделе [Создание эксперимента](https://yandex.com/support/varioqub-app/ru/web/create.md).

<!--

{% include [neuroexpert](../../../_includes/neuroexpert.md) %}

-->

