永続化 - 1m-llc/Flutter-KtoK GitHub Wiki

考察

ORMならmoor(3.1.0が最新)、KVSならhive1.x(1.4.2が最新)だが、hiveは先行きが少々不安なため、moorが良いかも。KVSが良いならhive1.xがすでに高速でstableなので選択肢。KVSで速度を考慮しないならS.Prefsも選択肢に入る。

比較表

名称 説明 LINK
sharedpreferences シンプルなKVS。読み書きのメソッドが用意されていない型ではJSONシリアライズが必要。トランザクションの機能がない int
double
bool
String
String配列
LINK
sqflite DB。SQLiteを利用するFlutter公式プラグイン。DateTimeとboolはサポートしていない。 int
num
String
Uint8List
LINK
moor ORM。SQLiteをラップして抽象化したもの。sqfliteを内部で使っているのになぜかsqfliteより先にWeb対応完了している。AndroidのRoomのような型安全でシンプルなAPIで高機能なORMマッピング機能を提供。トランザクション、リレーションにも対応。 Moor supports any Dart type for which you provide a TypeConverter LINK
TypeConverter
hive1 Key-Value。メモリにキャッシュするので高速。100,000件くらいなら余裕らしい。hive1は協力者へ権限移譲。
Hiveは、すべてのプリミティブ型、List、Map、DateTime、およびUint8Listをサポートしています。他のオブジェクトを格納する場合は、オブジェクトをバイナリ形式に変換したり、バイナリ形式に変換したりするTypeAdapterを登録する必要があります。 LINK
hive2→Isar Dart FFIとRustのC interopを使って書き直される。速度向上とメモリ使用量の抑制が期待できる。ベースとなる技術が変わるので v1.x と非互換になる。準備中。 - LINK
Realm NoSQL。パッケージが2つ存在する(realm:パッケージのスコアが低くて採用対象にならない, flutter_realm:メソッドの説明などが不十分どころか書かれてすらいない)。Flutterを含む新たなプラットフォームや言語への対応は2020年8月以降 - realm0.0.1
flutter_realm
⚠️ **GitHub.com Fallback** ⚠️