LoginSignup
0
0

Hexabase Flutter SDKの使い方(リアルタイム通知)

Last updated at Posted at 2024-03-12

Hexabase(ヘキサベース)は企業向けのBaaS(Backend as a Service)を提供しています。認証やデータストア、ファイルストレージ、リアルタイム通知などの機能があり、企業向けのシステム開発に必要な機能をまるっと提供しています。

APIはREST APIとGraphQLを提供しています。そのAPIをラップしたSDKも開発を進めています。SDKは現在、TypeScriptとDart向けに開発しています。Dart向けのSDKは、もちろんFlutterでも利用できます。

この記事ではFlutter SDKについてインストールと、データストアのアイテムにリアルタイム通知について解説します。

パッケージとソースコード

パッケージはpub.devで公開しています。

hexabase | Flutter Package

ソースコードは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;

アイテムの作成

データストア(クラウドデータベース)の行相当のデータがアイテムです。以下のようにして、新しいアイテムを作成します。

await client.setWorkspace('YOUR_WORKSPACE_ID');
var project = await client.currentWorkspace.project(id: 'YOUR_PROJECT_ID');
var datastore = await project.datastore(id: 'YOUR_DATABASE_ID');
// アイテムを作成
var item = await datastore.item();
// 保存しておく
await item.save();

購読する

このアイテムに対するコメント追加の操作で通知が行われます。以下のようにして、購読します。

item.subscribe('update', (itemSubscription) {
	// itemSubscription.comment にコメントが入ります
	// itemSubscription.item にアイテムが入ります
	// itemSubscription.user にユーザーが入ります
});

コメントの作成

新しいコメントは、 item.history() で作成します。 set で値(コメント本文)を設定し、 save で保存します。この操作で、該当アイテムを購読しているユーザーに対して通知が行われます。

var history = item.history();
history.set('comment', 'test');
await history.save();

通知は自分自身にも行われます。

購読を停止する

購読を停止するには、 unsubscribe を使います。

item.unsubscribe(actionName);

通知のプロトコル

通知はSingralRを使っており、WebSocketで通信を行います。JavaScript SDKでも、Flutter SDKでも同じように通知を受け取れます。

まとめ

リアルタイム通知機能を使えば、チャットであったりコラボレーション機能を実装できます。ぜひ、Webアプリケーション開発に役立ててください。

HexabaseのFlutter SDKを使って、堅牢なWebアプリケーションを開発してください。

hexabase | Dart package

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0