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');
クエリのインスタンス作成
クエリはNCMBQueryを使います。引数はクラス名です。
var query = NCMBQuery('Item')
そして検索条件を指定します。
query.equalTo('name', 'value);
v2.0.1時点でクエリのオペランドは下記を用意しています。
- equalTo(String key, Object value)
- notEqualTo(String key, Object value)
- lessThan(String key, Object value)
- lessThanOrEqualTo(String key, Object value)
- greaterThan(String key, Object value)
- greaterThanOrEqualTo(String key, Object value)
- inValue(String key, Object value)
- notInValue(String key, Object value)
- exists(String key, {bool value = true})
- regex(String key, String value)
- inArray(String key, Object value)
- notInArray(String key, Object value)
- allInArray(String key, Object value)
条件を設定したら fetch または fetchAll で検索を実行します。fetchは最初の一件目の結果だけを返します。
var ary = await query.fetchAll();
その他利用できる条件
次のようなメソッドもあります。必要に応じて利用してください。
- include(String className)
- order(String key, {bool descending = true})
- limit(int number)
- skip(int number)
特殊なクラスのクエリ
会員、ロール、プッシュ、デバイストークン、ファイルストアに対するクエリは次のように取得します。利用法はデータストアのクエリと同じです。
- NCMBUser.query()
- NCMBRole.query()
- NCMBPush.query()
- NCMBInstallation.query()
- NCMBFile.query()
コード
コードはオープンソースで、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をご利用ください!