---
title: Inicialización
canonical: https://developer.unico.io/es/dual-api/developers/sdks-and-tools/flutter/initialization
locale: es
generated_by: markdown-export
---

## Dónde inicializar

Inicialice el SDK en la **carga de la aplicación** — generalmente en `main()` o en `initState()` de su widget de entrada. Consulte las [Mejores prácticas](/developers/sdks-and-tools/flutter/resources) para más detalles sobre por qué **no** debe inicializar al hacer clic en el botón de captura.

## Incorporación de credenciales

Instancie un objeto `UnicoConfig` para cada plataforma con las credenciales proporcionadas por el equipo de 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() devuelve un UnicoCheckBuilder — úselo para encadenar la configuración y llamar a build()
  _unicoCheck = new UnicoCheck(
      listener: this,
      unicoConfigIos: _configIos,
      unicoConfigAndroid: _configAndroid);
}
```

## Implementar UnicoListener

Implemente la interfaz `UnicoListener` en su clase de estado del widget y sobreescriba los métodos de callback con la lógica de negocio de su aplicación:

```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étodos de listener obligatorios]
Los cuatro métodos de listener anteriores deben crearse en su proyecto (incluso sin ninguna lógica). De lo contrario, el proyecto no compilará correctamente.
:::

## Selección de entorno

La elección de entorno se realiza durante la inicialización. Utilice el enum `UnicoEnvironment`:

- `UnicoEnvironment.PROD` — entorno de producción
- `UnicoEnvironment.UAT` — entorno de UAT

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

Para la lista completa de tipos de entorno disponibles, consulte [Referencia de API > API de Inicialización](/developers/sdks-and-tools/flutter/api-reference/initialization-api).

## Ciclo de vida

La autenticación del SDK con el backend toma algunos segundos. **Inicialice tempranamente** (arranque en frío de la aplicación), no cuando el usuario toca el botón de captura — de lo contrario, el usuario experimenta un retraso entre el toque y la apertura de la cámara.