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

## Tempat melakukan inisialisasi

Inisialisasi SDK saat **aplikasi dimuat** — biasanya di `main()` atau di `initState()` widget entri Anda. Lihat [Praktik terbaik](/developers/sdks-and-tools/flutter/resources) untuk detail mengapa Anda sebaiknya **tidak** menginisialisasi pada klik tombol pengambilan.

## Menyematkan kredensial

Implementasikan `UnicoConfig` untuk kedua platform dengan kredensial yang disediakan oleh tim 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() mengembalikan UnicoCheckBuilder — gunakan untuk merangkai konfigurasi dan memanggil build()
  _unicoCheck = new UnicoCheck(
      listener: this,
      unicoConfigIos: _configIos,
      unicoConfigAndroid: _configAndroid);
}
```

## Mengimplementasikan UnicoListener

Buat builder (dihasilkan melalui antarmuka `UnicoCheckBuilder`), dengan menyediakan konteks dan implementasi kelas `UnicoListener`. Override metode callback dengan logika bisnis aplikasi Anda:

```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[Metode listener wajib]
Keempat metode listener di atas harus dibuat di proyek Anda (bahkan tanpa logika apa pun). Jika tidak, proyek tidak akan berhasil dikompilasi.
:::

## Pemilihan lingkungan

Pilihan antara **sandbox** dan **production** dibuat selama inisialisasi. Gunakan enum `UnicoEnvironment`:

- `UnicoEnvironment.PROD` — lingkungan produksi
- `UnicoEnvironment.UAT` — lingkungan staging

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

Untuk daftar lengkap jenis lingkungan yang tersedia, lihat [API Reference > Initialization API](/developers/sdks-and-tools/flutter/api-reference/initialization-api).

## Siklus hidup

Autentikasi SDK dengan backend membutuhkan beberapa detik. **Inisialisasi lebih awal** (cold start aplikasi), bukan saat pengguna mengetuk tombol pengambilan — jika tidak, pengguna akan mengalami jeda antara ketukan dan pembukaan kamera.