Introduzione ad Hive, un database per Dart e Flutter

Mattepuffo's logo
Introduzione ad Hive, un database per Dart e Flutter

Introduzione ad Hive, un database per Dart e Flutter

Hive è un database, di tipo key:value, per Dart e Flutter.

Non fermatevi agli esempi che trovate sulla pagina pub.dev, ma andate alla documentazione per iniziare....

Io l'ho testato su un programmino in Dart, e non in una app in Flutter; anche se comunque le cose sono abbastanza simili.

Per installarlo:

dart pub add hive // DART
flutter pub add hive // FLUTTER

Io ho usato direttamente un'adapter personalizzato, ed ho indicato il mio desktop come directory per salvare il db.

Qui sotto un esempio:

import 'package:hive/hive.dart';

void main() async {
  Hive.init("/home/fermat/Scrivania");
  Hive.registerAdapter(PersonAdapter());

  var p1 = Persona()
    ..nome = 'NOME'
    ..eta = 18;

  var p2 = Persona()
    ..nome = 'NOME 2'
    ..eta = 30;

  List<Persona> list = [p1, p2];

  var box = await Hive.openBox('test');
  box.addAll(list);

  box.values.forEach((el) {
    Persona p = el;
    print(p.nome);
  });
}

@HiveType(typeId: 0)
class Persona extends HiveObject {
  @HiveField(0)
  late String nome;

  @HiveField(1)
  late int eta;
}

class PersonAdapter extends TypeAdapter<Persona> {
  @override
  final typeId = 0;

  @override
  Persona read(BinaryReader reader) {
    return Persona()..nome = reader.read();
  }

  @override
  void write(BinaryWriter writer, Persona obj) {
    writer.write(obj.nome);
  }
}

Ci stanno poi altri oggetti/funzioni interessanti, che trovate sempre nella doc.

Enjoy!


Condividi

Commentami!