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;
ステータスの考え方
業務システムに限りませんが、データでステータス管理することは良くあります。例えばタスク管理の場合、以下のようになるでしょう。
ステータスとしては、以下の3段階があると考えられます。
- 登録済み
- 作業中
- 完了
それぞれのステータスを変更する際のアクション名は以下になります。
- 登録済み → 作業中
作業開始する - 作業中 → 登録済み
差し戻す - 作業中 → 完了
完了する
Hexabaseでは、この「作業開始する」「差し戻す」に該当するアクションを設定し、API経由で実行することでデータのステータスを変更できます。
データストアの準備
まず登録しているデータストアを取得します。そのため、最初にデータストアを管理するプロジェクトを作成します。
var project = client.project(id: "PROJECT_ID");
var datastore = project.datastore(id: "DATASTORE_ID");
データストアからデータ取得
データストアから既存のデータを取得します。
var items = await datastore.items();
検索条件を付与する
検索条件を利用する場合にはクエリーを取得してください。
var query = datastore.query();
例えば最初の10件を取得する場合には、次のように指定します。
query.page(1).per(10);
他にも様々な条件が指定できます。
データの詳細を取得する
ステータス情報を取得するため、データの詳細を取得します。
var item = items[0];
await item.getDetail();
実行できるアクションを取得する
ステータス変更は、現在のステータスに合わせて実行できるアクションが指定されます(管理画面にて作成できます)。それを取得するのが actions
メソッドです。
item.actions().map((action) {
print(action.nameLabel);
});
例えば 実行中にする
や 完了にする
などのアクションが取得できます。
アクションを指定する
ステータス変更のアクションを指定するのは action
メソッドです。
var actions = item.actions();
item.action(actions[0]);
設定したら、後は保存するだけです。
await item.save();
これでアイテムのステータスが更新されます。
まとめ
Hexabase Flutter SDKを使えば、データのステータス管理を手軽に、分かりやすく実現できます。
Dart SDKはFlutterでも利用できます。Flutterで使えると言うことは、iOS/Androidといったスマートフォンアプリやタブレットアプリはもちろん、Webやデスクトップアプリ開発でも利用できます。ぜひHexabaseをDart SDKとともに活用してください。