Flutter Hiveの使い方のメモ


Flutterで日記アプリを作りHiveを使ったので使い方をメモする。

本題 日記アプリを作ったのでhiveの使い方をメモします。記事の内容について私は責任を取りません。

作ったアプリ

を参考にしました。

まず

yaml pubspec.yaml
hive: ^2.0.6
hive_flutter: ^1.1.0

pubspecに追加。

hiveの初期化

dart main.dart
Future<void> main() async {
  await Hive.initFlutter();
  Box? box = await Hive.openBox('box');
}

使い方

box.put("key",content);
box.putAt(index,content);
box.delete("key");
box.deleteAt(index);
box.get(index,default);
box.getAt(index);
box.put("key",content);
box.putAt(index,content);

atがあればbox内のindex列目のcontentを取得、削除などする。
atがなければbox内のkey列のcontentを取得、削除などする。

box.key(index)
//index列目のkeyを取得
box.containsKey("key");
//keyが含まれているか

csvに出力する

import 'dart:async';
import 'dart:io';
import 'package:hive/hive.dart';
class exportcsv {
  final now = DateTime.now();
  Future<void> export(Box box,String keyLineName,String contentLineName) async {
    

    String result = box.toMap().toString();
    result = result.replaceAll("{", "");
    result = result.replaceAll(",", "\n");
    result = result.replaceAll(":", ",");
    result = result.replaceAll("}", "");
    result = "$keyLineName\n" + $contentLineName;
    File file =
        File.fromUri(Uri.file("file path"));
    file.writeAsString(result, flush: true);
  }
}


型はclassをインスタンス化しcontentにそれを入れる。
型の作り方

yaml pubspec.yaml
dev_dependencies:
  hive_generator: ^1.1.1
  build_runner: ^2.1.5
dart kata.dart
import 'package:hive/hive.dart';

part 'Person.g.dart';
//class名と一致させる

@HiveType(typeId: 1)
class Person {
  @HiveField(0)
  String name;

  @HiveField(1)
  int age;

  User({required this.name, required this.age});
}

flutter packages pub run build_runner build をする。

import "Person.g.dart";
Future<void> main() async {
  await Hive.initFlutter();
  Hive.registerAdapter(PersonAdapter());
  Box? box = await Hive.openBox('box');
}

あとはPersonをインスタンス化しcontentに入れるだけ

私はKeyを日付に、日記の内容をcontentに入れてアプリを製作しました。

最後まで読んでいただきありがとうございます。アプリダウンロードしてみてください!