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をご利用ください!