
どうも、まつまるです。今回はFlutterのデータベースパッケージHiveを動かしてみます。どうやってデータを保存しているか初心者でも分かるように解説します。
実装してみたのはスイッチのON/OFFをHiveに保存するだけの単純なアプリです。
Hiveについてググると初心者向けのチュートリアル(英語)があるのでそれをベースに説明していきます。
Hiveとは
Hiveの機能は・・・
- 🚀 Cross platform: mobile, desktop, browser
- ⚡ Great performance (see benchmark)
- ❤️ Simple, powerful, & intuitive API
- 🔒 Strong encryption built in
URL:Hiveのサイト
まとめると、クロスプラットフォーム対応で速くてシンプルでセキュリティに強いデータベースパッケージです。
Hiveはデータの保存する場所が”box”と名付けられてます。この”box”は非構造化データなので、データが複雑化してきたときに役立ちます。
ちなみに構造化データの有名どころはSQLです。SQLは複雑なデータの扱いが苦手です。
初心者でデータベースどうしよう・・って方はHiveの方がコードを理解しやすいです。個人的にSQLは見づらい・・・。
Hiveは”box”にデータを保存する!
Hiveの方がより初心者向き?
boxの扱い
まずはboxを扱うための流れを把握しましょう。
【Open Box】
↓
【Get open box】
↓
【Read&Write】
↓
【Close box】
【Open Box】はアプリの立ち上げ時に行います。’settings’はどんな名前を付けてもOKです。
【Get open box】はopend boxを入手します。
【Read&Write】
Write
Map形式でデータを書き込みます。pythonとかだとdictionaryですね。’darkMode’がkeyで、値がvalです。
Read
’darkMode’に入っている値を読み込みます。
【Close box】opend boxを再び使用することが無ければcloseしましょう。
基本的な流れはこんな感じです。
FlutterでHiveを使おう
では、そろそろ冒頭のスイッチON/OFFアプリのコードを見ていきましょう。
Flutterではios、androidと異なるOSに対応しなければならないのでアプリの立ち上げ時にひと手間必要です。
構成画面は以下の通りです。
今までの内容が分かっていれば理解できると思います。box(‘settings’)とbox(‘darkMode’)の関係性は図にしてみました。

コード全容
以下をmain.dartにコピペすれば動作します。