永続化 - 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 |