---
title: Инициализация
canonical: https://developer.unico.io/ru/dual-api/developers/sdks-and-tools/flutter/initialization
locale: ru
generated_by: markdown-export
---

## Где инициализировать

Инициализируйте SDK **при загрузке приложения** — как правило, в `main()` или в `initState()` вашего корневого виджета. Подробности о том, почему не следует инициализировать при нажатии кнопки захвата, см. в разделе [Рекомендации](/developers/sdks-and-tools/flutter/resources).

## Встраивание учётных данных

Реализуйте `UnicoConfig` для обеих платформ с учётными данными, предоставленными командой Onboarding:

```dart
final _configIos = UnicoConfig(
    getBundleIdentifier: "Your BundleIdentifier Ios",
    getHostKey: "Your HostKey Ios");

final _configAndroid = UnicoConfig(
    getBundleIdentifier: "Your BundleIdentifier Android",
    getHostKey: "Your HostKey Android");

void initUnicoCamera() {
  // UnicoCheck() возвращает UnicoCheckBuilder — используйте его для цепочки конфигураций и вызова build()
  _unicoCheck = new UnicoCheck(
      listener: this,
      unicoConfigIos: _configIos,
      unicoConfigAndroid: _configAndroid);
}
```

## Реализация UnicoListener

Создайте builder (сгенерированный через интерфейс `UnicoCheckBuilder`), передав контекст и реализацию класса `UnicoListener`. Переопределите методы коллбэков бизнес-логикой вашего приложения:

```dart
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {

  late UnicoCheckBuilder _unicoCheck;

  @override
  void onErrorUnico(UnicoError error) {}

  @override
  void onUserClosedCameraManually() {}

  @override
  void onSystemChangedTypeCameraTimeoutFaceInference() {}

  @override
  void onSystemClosedCameraTimeoutSession() {}
}
```

:::danger[Обязательные методы listener]
Все четыре метода listener, перечисленных выше, должны быть созданы в вашем проекте (даже без какой-либо логики). В противном случае проект не скомпилируется успешно.
:::

## Выбор среды

Выбор между **sandbox** и **production** осуществляется при инициализации. Используйте перечисление `UnicoEnvironment`:

- `UnicoEnvironment.PROD` — production-среда
- `UnicoEnvironment.UAT` — среда staging

```dart
_unicoCheck.setEnvironment(unicoEnvironment: UnicoEnvironment.UAT);
```

Полный список доступных типов среды см. в [Справочнике API > API инициализации](/developers/sdks-and-tools/flutter/api-reference/initialization-api).

## Жизненный цикл

Аутентификация SDK с бэкендом занимает несколько секунд. **Инициализируйте заранее** (при холодном запуске приложения), а не в момент, когда пользователь нажимает кнопку захвата — иначе пользователь ощутит задержку между нажатием и открытием камеры.