sembast を試す
Flutter でモバイルだけでなくデスクトップや Web などマルチプラットフォームに対応している NoSQL データベースライブラリ sembast を使ってみたのでメモ.
JSON から DB をつくる
Section titled “JSON から DB をつくる”DB から JSON への export,import に対応しているんだけどそれなりにしないと import できない.
import 'package:sembase/utils/semast_import_export.dart';
var stores = { 'name': 'message' 'keys': keys, 'values': values,};var data = { 'sembase_export': 1, 'version': 1, stores: [stores],};var db = await importDatabase(data, databaseFactory, 'mydata.db');var store = stringMapStoreFactory.store('message');var finder = Finder(filter: Filter,matches('message', query);var records = store.find(_db, finder: finder);records.then((value) => setState(() => _records.addAll(value.map((e)=>e.value).toList())));マルチプラットフォーム対応
Section titled “マルチプラットフォーム対応”DB を作成するときにモバイルと Web とかで databaseFactory が違うんだけど作者がええかんじにする utils を公開しているのでこれを使う.
tekartik/app_flutter_utils.dart
import 'package:tekartik_app_flutter_idb/app_sembast.dart';
var packageName = 'net.hugahuga.hogehoge';var databaseFactory = getDatabaseFactory(packageName: packageName);var db = await importDatabase(data, databaseFactory, 'mydata.db');これまで sqflite 使っていたけど Web に対応してないし,これを機に sembast にしてもいいかも. Realm が Dart 対応を進めてるらしいのでそれの動向も気になる.