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

クエリのインスタンス作成

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

ncmb | Dart Package

中津川 篤司

中津川 篤司

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