ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Flutter SDK(非公式)の使い方【ロールの使い方】

f:id:mbaasdevrel:20200110154553p:plain 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をご利用ください!

ncmb | Dart Package

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。