---
title: Initialisation
canonical: https://developer.unico.io/fr/dual-api/developers/sdks-and-tools/flutter/initialization
locale: fr
generated_by: markdown-export
---

## Où initialiser

Initialisez le SDK au **chargement de l'application** — généralement dans `main()` ou dans `initState()` de votre widget d'entrée. Consultez [Bonnes pratiques](/developers/sdks-and-tools/flutter/resources) pour comprendre pourquoi vous ne devez **pas** initialiser lors du clic sur le bouton de capture.

## Intégration des identifiants

Instanciez un objet `UnicoConfig` pour chaque plateforme avec les identifiants fournis par l'équipe 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() retourne un UnicoCheckBuilder — utilisez-le pour chaîner la configuration et appeler build()
  _unicoCheck = new UnicoCheck(
      listener: this,
      unicoConfigIos: _configIos,
      unicoConfigAndroid: _configAndroid);
}
```

## Implement UnicoListener

Implémentez l'interface `UnicoListener` dans votre classe d'état de widget et surchargez les méthodes de callback avec la logique métier de votre application :

```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() {}
}
```

:::warning[Méthodes du listener obligatoires]
Les quatre méthodes du listener ci-dessus doivent être créées dans votre projet (même sans aucune logique). Sinon, le projet ne compilera pas avec succès.
:::

## Sélection de l'environnement

Le choix de l'environnement s'effectue lors de l'initialisation. Utilisez l'enum `UnicoEnvironment` :

- `UnicoEnvironment.PROD` — environnement de production
- `UnicoEnvironment.UAT` — environnement UAT

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

Pour la liste complète des types d'environnements disponibles, consultez [API Reference > Initialization API](/developers/sdks-and-tools/flutter/api-reference/initialization-api).

## Cycle de vie

L'authentification du SDK avec le backend prend quelques secondes. **Initialisez tôt** (au démarrage à froid de l'application), et non lorsque l'utilisateur appuie sur le bouton de capture — sinon l'utilisateur perçoit un délai entre l'appui et l'ouverture de la caméra.