---
title: 初期化
canonical: https://developer.unico.io/ja/dual-api/developers/sdks-and-tools/flutter/initialization
locale: ja
generated_by: markdown-export
---

## Where to initialize

SDKは**アプリケーションの読み込み時**に初期化してください。通常は`main()`またはエントリウィジェットの`initState()`で行います。キャプチャボタンのクリック時に初期化**しない**理由については、[ベストプラクティス](/developers/sdks-and-tools/flutter/resources)を参照してください。

## Embedding credentials

オンボーディングチームから提供された認証情報を使用して、両プラットフォームの`UnicoConfig`を実装します：

```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);
}
```

## Implement UnicoListener

コンテキストと`UnicoListener`クラスの実装を提供して、ビルダー（`UnicoCheckBuilder`インターフェースを通じて生成）を作成します。アプリケーションのビジネスロジックでコールバックメソッドをオーバーライドします：

```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[必須リスナーメソッド]
上記の4つのリスナーメソッドはすべて、プロジェクトに作成する必要があります（ロジックがなくても）。そうしないと、プロジェクトが正常にコンパイルされません。
:::

## Environment selection

**サンドボックス**と**本番環境**の選択は初期化時に行います。`UnicoEnvironment`列挙型を使用してください：

- `UnicoEnvironment.PROD` — 本番環境
- `UnicoEnvironment.UAT` — ステージング環境

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

利用可能な環境タイプの完全なリストについては、[APIリファレンス > 初期化API](/developers/sdks-and-tools/flutter/api-reference/initialization-api)を参照してください。

## Lifecycle

バックエンドとのSDK認証には数秒かかります。キャプチャボタンをタップしたときではなく、**早期に初期化**してください（アプリのコールドスタート）。そうしないと、ユーザーはタップからカメラが開くまでの遅延を感じます。