flutter-hivelisted
Install: claude install-skill noory-code/noory-ai
# Flutter Hive
Lightweight NoSQL local storage. Faster and simpler than SQLite.
---
## Installation
```bash
flutter pub add hive
flutter pub add hive_flutter
flutter pub add dev:hive_generator
flutter pub add dev:build_runner
```
## Initialization
```dart
// main.dart
import 'package:hive_flutter/hive_flutter.dart';
void main() async {
await Hive.initFlutter();
// register adapters (when using code generation)
Hive.registerAdapter(UserAdapter());
// open boxes
await Hive.openBox('settings');
await Hive.openBox<User>('users');
runApp(MyApp());
}
```
---
## Quick Reference
### Simple Key-Value Storage
```dart
final box = Hive.box('settings');
// write
box.put('theme', 'dark');
box.put('language', 'en');
// read
final theme = box.get('theme', defaultValue: 'light');
// delete
box.delete('theme');
// clear all
await box.clear();
```
### Type Adapter (Code Generation)
```dart
import 'package:hive/hive.dart';
part 'user.g.dart';
@HiveType(typeId: 0)
class User extends HiveObject {
@HiveField(0)
late String name;
@HiveField(1)
late int age;
@HiveField(2, defaultValue: false)
bool isPremium = false;
}
```
```bash
dart run build_runner build
```
### Using a Typed Box
```dart
final userBox = Hive.box<User>('users');
// write
final user = User()
..name = 'Kim'
..age = 25;
userBox.add(user); // auto key
userBox.put('user1', user); // manual key
// read
final allUsers = userBox.values.toList();
final user1 = userBox.get('user1')