FlutterはDartで書かれたフレームワークになります。元々iOSやAndroidといったスマートフォン向けでしたが、今ではWebやWindows、macOSといったマルチプラットフォームで動作します。Flutter/Dartを覚えることで、多くの環境に対してアプリケーション開発が可能になります。
NCMBでは公式SDKを提供していませんが、非公式に開発を進めているFlutter SDKがあります。元々ベータとして0.1系でしたが、大幅な機能変更に合わせて v2 になりました。
この記事では、初期化の方法とデータのアクセスコントロールを行うロールの使い方を紹介します。
インストール
pubspec.yaml を編集します。
dependencies: ncmb: ^2.0.1
そして dart pub get
でインストールできます。
使い方
任意のファイル上でライブラリを読み込みます。
import 'package:ncmb/ncmb.dart';
そしてNCMBオブジェクトを初期化します。
NCMB('APPLICATION_KEY', 'CLIENT_KEY');
ロールのインスタンス作成
ロールはNCMBRoleを使います。引数はロール名です。
var role = NCMBRole('Admin')
ロールにロールを追加する
ロールは入れ子の構成にできます。追加する際にはあらかじめ保存しておいてください。
var role2 = NCMBRole('Member'); await role2.save(); role.addRole(role2); await role.save();
ロールにユーザを追加する
同様にロールの中にユーザを追加できます。こちらの場合もユーザをあらかじめ作成済みとしてください。
var user = NCMBUser(); user ..set('userName', 'aaa${i}') ..set('password', 'bbb'); await user.signUpByAccount(); role.addUser(user); await role.save();
ロールの取得
ロールを取得する際には検索またはfetchを使います。
var role = NCMBRole('Admin') role.set('objectId', 'aaa'); await role.fetch();
検索は query メソッドで取得してください。
var query = NCMBRole.query(); var roles = await query.fetchAll();
ロールに含まれるロールの取得
ロールに含まれているロールを取得するには fetchRole
を使います。
var roles = await role.fetchRole();
ロールに含まれるユーザの取得
ロールに含まれているユーザを取得するには fetchUser
を使います。
var roles = await role.fetchUser();
ロールの削除
ロールの削除は delete
を使います。
await role.delete();
ロールからロールを削除する
特定のロールを除外するには removeRole
を使います。
role.removeRole(role1);
ロールからユーザを削除する
特定のユーザをロールから削除するには removeUser
を使います。
role.removeUser(role1);
コード
コードはオープンソースで、GitHub上で公開しています。ライセンスはMIT Licenseになります。
NCMBMania/ncmb-dart: NCMB library for Dart and Flutter.
Flutter依存の部分を削除していますので、純粋なDartライブラリとして利用可能です。また、ネイティブアプリ部分も削除していますので、Flutter for Webでも利用可能です。
まとめ
Flutterを覚えればiOS、Androidアプリともに一つのコードで書けるようになります。DartはJavaScriptライクな言語で、JavaScriptをマスターしている人であれば、それほど苦労せずにDartを書けるようになるでしょう。ぜひFlutterを使ったアプリ開発にNCMBをご利用ください!