クイックスタート

お待たせしました。さあ、最高にクールなFlutterのデータベースを使い始めましょう!

この記事では、簡潔にコードを書いていきます。

1. 依存関係を追加する

Isarを使用する前に、いくつかのパッケージを pubspec.yaml に追加する必要があります。pubを使用する事で、面倒な作業を簡単に済ませることが出来ます。

dart pub add isar:^4.0.3 isar_flutter_libs:^4.0.3 --hosted-url=https://pub.isar-community.dev

2. クラスの注釈(アノテーション)

あなたの使用するコレクションクラスに @collection でアノテーションを付け、Id フィールドを設定します。

import 'package:isar/isar.dart';

part 'user.g.dart';

@collection
class User {
  late int id;

  String? name;

  int? age;
}

idはコレクション内のオブジェクトを一意に識別して、後で再び見つけられるようにします。

3. コード生成ツールの実行

以下のコマンドを実行して、build_runnerを起動します。:

dart run build_runner build

4. Isarインスタンスを開く

新規のIsarインスタンスを開き、コレクションのスキーマを渡します。必要に応じて、インスタンス名とディレクトリを指定することができます。

final dir = await getApplicationDocumentsDirectory();
final isar = await Isar.openAsync(
  schemas: [UserSchema],
  directory: dir.path,
);

5. 書き込みと読み込み

Isarインスタンスを開いたら, コレクションを利用することができます.

基本的なCRUD操作は、全て IsarCollection を介して行う事が出来ます。

final newUser = User()
  ..id = isar!.users.autoIncrement()
  ..name = 'Jane Doe'
  ..age = 36;

await isar!.writeAsync((isar) {
  return isar.users.put(newUser); // 挿入と更新
});

final existingUser = isar!.users.get(newUser.id); // 取得

if (existingUser != null) {
  await isar!.writeAsync((isar) {
    return isar.users.delete(existingUser.id); // 削除
  });
}

その他の資料

視覚的に学ぶ方が好みであれば、Isarを始めるためにこれらの動画をぜひご覧ください: