Skip to main content

Drift

このドキュメントではDriftで何ができるのか、どのように使うのかを紹介しています。

tip

このドキュメントはDriftの公式ドキュメントを日本語訳し、注釈を付けたドキュメントです。

Welcome to Drift

DriftはDartやFlutterアプリケーションのためのリアクティブな永続化ライブラリです。
sqlite3sqflitesql.jsのようなデータベースライブラリの上に構築され、以下のような追加機能を提供します:

  • 型安全: 手動でSQLクエリを書き、それが返すList<Map<String, Dynamic>>をパースする代わりに、Driftは行を好みのオブジェクトに変換します。
  • Streamクエリ: Driftを使えば、追加作業なしでクエリをwatchすることができます。どのようなクエリもStreamにすることができ、基になるデータが変更されると通知します。
  • フルエントクエリ: DriftはDart APIを生成し、クエリを書いて自動的に結果を得ることができます。select(users).wathc()ですべてのユーザーの更新リストを取得できます。SQLを書く必要も、行を解析する必要もありません。
  • 型安全なSQL: SQLを書きたい場合でも大丈夫です! DriftにはSQLパーサーとアナライザが内蔵されています。コンパイル時にクエリを解析し、どのカラムを返すかを判断し、行を表すDartコードを生成することができます。
  • マイグレーションユーティリティ: .createAllTables()のようなユーティリティ関数のおかげで、Driftはマイグレーションを簡単に書くことができます。手動でCREATE TABLE文を記述し、更新し続ける必要はありません。

その他にも様々な機能があります!
Driftはデータを挿入する前に検証するので、SQLエラーコードだけでなく有益なエラーメッセージを受け取ることができます。もちろんトランザクションやDAOもサポートしています。効率的なバッチ挿入文も、挙げればきりがありません。

Getting Started

Driftを始めるには、セットアップガイドに従ってください。依存関係の設定からデータベースクラスの作成、コードの生成まで、すべてのことが説明されています。

また、Driftを使い始める開発者向けのページもいくつかリンクされているので、まずは興味のある分野から調べてみるといいかもしれません。