---
title: Inicialização
canonical: https://developer.unico.io/pt-BR/dual-api/developers/sdks-and-tools/flutter/initialization
locale: pt-BR
generated_by: markdown-export
---

## Onde inicializar

Inicialize o SDK no **carregamento da aplicação** — geralmente no `main()` ou no `initState()` do widget de entrada. Consulte [Boas práticas](/developers/sdks-and-tools/flutter/resources) para detalhes sobre por que você **não deve** inicializar no clique do botão de captura.

## Configurando credenciais

Instancie um objeto `UnicoConfig` para cada plataforma com as credenciais fornecidas pelo time 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() retorna um UnicoCheckBuilder — use-o para encadear a configuração e chamar build()
  _unicoCheck = new UnicoCheck(
      listener: this,
      unicoConfigIos: _configIos,
      unicoConfigAndroid: _configAndroid);
}
```

## Implementar UnicoListener

Implemente a interface `UnicoListener` na sua classe de estado do widget e sobrescreva os métodos de callback com a lógica de negócio da sua aplicação:

```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 obrigatórios]
Todos os quatro métodos de listener acima devem ser criados no seu projeto (mesmo sem nenhuma lógica). Caso contrário, o projeto não compilará com sucesso.
:::

## Seleção de ambiente

A escolha de ambiente é feita durante a inicialização. Use o enum `UnicoEnvironment`:

- `UnicoEnvironment.PROD` — ambiente de produção
- `UnicoEnvironment.UAT` — ambiente de homologação

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

Para a lista completa de tipos de ambiente disponíveis, consulte [Referência de API > API de Inicialização](/developers/sdks-and-tools/flutter/api-reference/initialization-api).

## Ciclo de vida

A autenticação do SDK com o backend leva alguns segundos. **Inicialize antecipadamente** (cold start da aplicação), não quando o usuário tocar no botão de captura — caso contrário, o usuário experimenta lentidão entre o toque e a abertura da câmera.