Hiveって?
ローカルの保存領域においてデータベースを使用するためのライブラリ(パッケージ)。
パッケージのインストール
FlutterにおいてHiveを使用するには下記のパッケージを使用します。
ターミナルにて下記のコマンドを入力
flutter pub add hive
flutter pub get
pubspec.yamlの中に下記が追加される。
hive: ^2.2.1
下準備
まず初めにmain関数内にてhiveの初期化を行う。
void main() async {
await Hive.initFlutter();
runApp(const MyApp());
}
今回はユーザーの個人情報を保存する例で説明する。
まず初めにユーザーの情報を取り扱うモデルを作成する。
まずはユーザー情報を取り扱うためのモデルファイル
user_info.dart
import 'package:hive/hive.dart';
//Entity生成用
part 'user_info.g.dart';
//モデルごとの識別子の設定
@HiveType(typeId: 1)
class UserInfo {
const UserInfo({
this.name,
this.birthday,
});
//typeId:1に保存されるデータのプロパティ番号0
@HiveField(0)
final String name;
//typeId:1に保存されるデータのプロパティ番号1
@HiveField(1)
final DateTime birthday;
}
- Adapterを作成する
以下のコマンドでAdapterを自動生成してもらう。
$ flutter pub run build_runner build
次に,モデルオブジェクトをバイナリ形式に変換して取り扱うためのTypeAdapterを使用するためにmain.dart内で下記の関数を呼ぶ
Hive.registerAdapter(UserInfoAdapter());
使用方法
- 保存と読み込み
final userInfo = UserInfo('OREO', DateTime(1998, 11, 10, 12, 10);)
final box = await Hive.openBox<UserInfo>('userInfo');
//Hiveへ保存
box.add(userInfo);
//読み込み
final userInfos = box.values.toList();