Hexabase(ヘキサベース)は企業向けのBaaS(Backend as a Service)を提供しています。認証やデータストア、ファイルストレージ、リアルタイム通知などの機能があり、企業向けのシステム開発に必要な機能をまるっと提供しています。
APIはREST APIとGraphQLを提供しています。そのAPIをラップしたSDKも開発を進めています。SDKは現在、TypeScriptとDart向けに開発しています。Dart向けのSDKは、もちろんFlutterでも利用できます。
この記事ではFlutter SDKにおいて、ワークスペース・プロジェクト・データストアの取得方法が簡単になった件を紹介します。
パッケージとソースコード
パッケージはpub.devで公開しています。
ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseです。
hexabase/hexabase-dart: Hexabase SDK for Dart & Flutter
インストール
インストールは dart pub get
で行えます。
dart pub get hexabase
インポート
SDKをインポートします。
import 'package:hexabase/hexabase.dart';
初期化
まずインスタンスを作成します。
var client = Hexabase();
別なファイルで再度インポートした場合には、以下でインスタンスを取得してください。
var client = Hexabase.instance;
ワークスペースについて
ワークスペースはHexabaseの中で、最上位のオブジェクトです。従来、ワークスペースを取得する際にはワークスペースIDを使っていました。ワークスペースIDは 6513e1c97f90e97937eb9eef
のようなユニークな文字列です。
await client.setWorkspace("6513e1c97f90e97937eb9eef");
このワークスペースIDはHexabase管理画面のURLから取得できます。
https://app.hexabase.com/h/6513e1c97f90e97937eb9eef // ← このID
これでは分かりづらいので、ワークスペース名を使って取得できるようになりました。
await client.setWorkspace("my_workspace");
このワークスペース名は、管理画面で設定するものです。
プロジェクトについて
ワークスペースは複数のプロジェクトを保有します。従来、このプロジェクトもプロジェクトIDを使って取得していました。
var project = await client.currentWorkspace!.project("5f9e1c97f90e97937eb9eef");
こちらも同じく、管理画面で設定するプロジェクト名が利用できます。
var project = await client.currentWorkspace!.project("my_project");
データストアについて
プロジェクトは複数のデータストア(RDBMSのテーブルに相当)を保有します。データストアもデータストアIDを使って取得していました。
var datastore = await project.datastore("5f9e1c97f90e97937eb9eef");
データストア名を使って取得できるようになりました。
var mainTable = await project.datastore("MainTable");
このように自分で設定した名前がそのまま使えるので、開発がスムーズに進められるでしょう。実際の流れは以下のようになります。
import 'package:hexabase/hexabase.dart';
var client = Hexabase();
await client.setWorkspace("my_workspace");
var project = await client.currentWorkspace!.project("my_project");
var mainTable = await project.datastore("MainTable");
var item = await mainTable.item();
まとめ
Hexabase Dart/Flutter SDKを使えば、モバイルアプリやWebアプリを素早く開発できるようになります。2024年6月現在絶賛開発を進めていますので、ぜひ試していただいてフィードバックいただければ嬉しいです!