0
Help us understand the problem. What are the problem?

posted at

updated at

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に入れてアプリを製作しました。

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

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?