[基礎知識]DB操作を実現するパッケージ

Flutterを使ったスマートフォンアプリでデータベースを利用する場合、一般的に人気のある手法やデータベースには以下のものがあります。

1.SQLite:

  • 説明: 軽量なSQLデータベース。Flutterアプリに組み込むことが容易で、オフラインデータの保存に適しています。
  • パッケージ: sqflite系パッケージ(sqflite_common_ffi、sqflite)が一般的に使用されます。
  • 参考: sqflite documentation

2.Hive:

  • 説明: NoSQLデータベースで、高速かつキー・バリュー型のデータベースです。シリアライズ不要で、シンプルなデータ保存が可能です。
  • パッケージ: hive パッケージが人気です。
  • 参考: hive documentation

3.Moor (drift):

  • 説明: 強力な型安全なSQLライブラリ。SQLiteの上に構築されており、より高レベルのAPIを提供します。
  • パッケージ: drift パッケージがよく使われます。
  • 参考: drift documentation

4.Firebase Firestore:

  • 説明: Googleが提供するクラウドNoSQLデータベース。リアルタイムデータの同期やクラウド機能が強力です。
  • パッケージ: cloud_firestore パッケージが一般的です。
  • 参考: cloud_firestore documentation

5.ObjectBox

  • 説明: 高速なオブジェクトデータベース。スキーママイグレーションが容易で、非常にパフォーマンスに優れています。
  • パッケージ: objectbox パッケージが利用されます。
  • 参考: objectbox documentation

6.Realm

  • 説明: モバイルに特化したデータベースで、高速なデータアクセスとリアルタイムのデータ同期が特徴です。
  • パッケージ: Flutter用の公式パッケージはまだないが、サードパーティによるサポートがあります。
  • 参考: realm.io

7.Floor

  • 説明: SQLiteの上に構築されたオブジェクトリレーショナルマッピング(ORM)ライブラリ。タイプセーフでコードジェネレーションを活用します。
  • パッケージ: floor パッケージが利用されます。
  • 参考: floor documentation

8.Sembast

  • 説明: シンプルで構造化されたNoSQLデータベース。ファイルベースで、オフラインファーストのアプリケーションに適しています。
  • パッケージ: sembast パッケージが利用されます。
  • 参考: sembast documentation

9.Isar

  • 説明: 高性能なデータベースで、Flutterに特化した設計。リアルタイムクエリやオフライン対応が強み。
  • パッケージ: isar パッケージが利用されます。
  • 参考: isar documentation

10.Amplify Datastore (AWS)

  • 説明: AWSのAmplifyフレームワークの一部。クラウドベースのデータ同期が特徴で、オフライン対応もあります。
  • パッケージ: amplify_flutter パッケージ内で利用可能です。
  • 参考: Amplify Datastore documentation

これらのデータベースは、それぞれ異なる強みや特徴を持っています。
例えば、
パフォーマンスを重視する場合:ObjectBoxやIsar
クラウド同期を重視する場合:Firebase FirestoreやAmplify Datastore
等が開発手法として採用されることが多いようですので、アプリの特定のニーズや要件に応じて適切なものを選択することが重要です。

11.IDB (IndexedDB)

IndexedDBは、ブラウザベースのデータベース技術であり、対応するブラウザが動作する環境であれば利用可能です。
特にモダンなブラウザを使用することで、IndexedDBのフル機能を活用することが可能です。

Windows環境でのIndexedDB

Windows上で動作する主要なブラウザ(Chrome, Firefox, Edge, Operaなど)はすべてIndexedDBをサポートしています。したがって、Windows環境でWebアプリケーションを開発する際、IndexedDBを問題なく使用できます。

Android環境でのIndexedDB

Androidデバイスでも、ChromeやFirefoxなどのモダンブラウザを使用すればIndexedDBを利用できます。多くのAndroidユーザーはデフォルトでChromeを使用しており、ChromeはIndexedDBに完全対応しています。

パッケージ:

以下のパッケージを使用すると、WebView内でJavaScriptのコードを実行したり、Flutterアプリと連携したりすることができます。

・webview_flutter:(IndexedDBに対応するWebViewの利用)
IndexedDBはブラウザベースの技術ですので、Flutterアプリケーション内でWebViewを使用してIndexedDBにアクセスします。以下のFlutterパッケージを使用します。 

・flutter_webview_plugin:(WebView内でIndexedDBを使用する)
WebView内でJavaScriptを使用してIndexedDBにアクセスすることができます。FlutterアプリとWebView内のJavaScript間で通信するためには、以下のパッケージを使用します。

コメントを残す