ニフクラ 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');

会員登録(ID/パスワード)

ID、パスワードを用いた会員登録は次のように行います。

var user = NCMBUser();
user
  ..set('userName', 'aaa')
  ..set('password', 'bbb');
await user.signUpByAccount();

会員登録(メールアドレス/パスワード)

メールアドレスで会員登録を行う場合には、まず会員登録用のメールを送信します。

await NCMBUser.requestSignUpEmail('atsushi@moongift.jp');

これでメールが送信されるので、メールにあるリンクからパスワードを登録します。

ログイン

ID/パスワードを使ったログイン

ID/パスワードを使ったログイン処理は次のようになります。

var user2 = await NCMBUser.login('aaa', 'bbb');

メールアドレス/パスワードを使ったログイン

メールアドレス/パスワードを使ったログイン処理は次のようになります。

var user = await NCMBUser.loginWithMailAddress(mailAddress, password);

ソーシャルサービスを使ったログイン

Facebook、Twitter、GoogleそしてSign in with Appleを使ったログインはloginWithを使います。プロバイダごとに必要な情報が異なりますので注意してください。

var data = {
  'id': facebook_id,
  'access_token': accessToken,
  'expiration_date': expiration_date
};
var user = await NCMBUser.loginWith('facebook', data);

必要なパラメータはREST API リファレンス : 会員登録 | ニフクラ mobile backendを参考にしてください。

匿名認証

匿名認証は次のようになります。引数としてUUIDを与えると、そのUUIDをキーとして認証します。UUIDを保存しておくことで、同じ会員情報を繰り返し利用できます。

var user = await NCMBUser.loginAsAnonymous();

現在のログイン情報を得る

ログインすると、その情報は SharedPreferences に保存されます。このデータを復元するのが次の処理です。

var user = await NCMBUser.CurrentUser();

会員の取得

一人の会員情報を取得する際には fetch メソッドを使います。自分自身の情報をクラウドから取得し直すのにも便利です。

await user.fetch();

会員を検索する

会員を検索する際には query メソッドでNCMBQueryを取得して行ってください。

var query = NCMBUser.query();
var users = await query.fetchAll();

ログアウト

ログアウト処理は次のようになります。SharedPreferencesの情報を削除します。

await NCMBUser.logout();

コード

コードはオープンソースで、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」活動をスタート。