FlutterはDartで書かれたフレームワークになります。元々iOSやAndroidといったスマートフォン向けでしたが、今ではWebやWindows、macOSといったマルチプラットフォームで動作します。Flutter/Dartを覚えることで、多くの環境に対してアプリケーション開発が可能になります。
NCMBでは公式SDKを提供していませんが、非公式に開発を進めているFlutter SDKがあります。元々ベータとして0.1系でしたが、大幅な機能変更に合わせて v2 になりました。
この記事では、初期化の方法とデータストアをより深く使いこなすための処理を紹介します。
インストール
pubspec.yaml を編集します。
dependencies: ncmb: ^2.0.2
そして dart pub get
でインストールできます。
使い方
任意のファイル上でライブラリを読み込みます。
import 'package:ncmb/ncmb.dart';
そしてNCMBオブジェクトを初期化します。
NCMB('APPLICATION_KEY', 'CLIENT_KEY');
基本的な使い方
まずは基本的なHello worldをデータストアに保存してみます。まずデータストアのオブジェクトを作ります。
var item = NCMBObject('Item')
そして値をセットします。これは set
メソッドを使います。
item.set('message', 'Hello World');
Dartの書き方として、キーチェーンメソッドはドット2つで繋ぎます。つまり次のような書き方で連続した値の設定が可能です。
item ..set('message', 'Hello World') ..set('number', 1) ..set('array', [1, 2, 3]);
そして保存します。async/awaitで保存可能です。
await item.save();
これでデータが保存できました。データの取得は get
メソッドになります。
print(item.get('message')); // -> Hello, world
インクリメント
数字をカウントアップするインクリメントの使い方です。
item.set('number', 2); // +2されます
配列に追加
配列のフィールドに対して値を追加します。追加する値は配列でも指定できます。
var item = new NCMBObject('Item') ..set('ary', ['a']); await item.save(); item.add('ary', '4'); await item.save(); await item.fetch(); item.get('ary'); // -> ['a', '4']
配列から削除
配列のフィールドに対して一致する値を削除します。削除する値は配列でも指定できます。
var item = new NCMBObject('Item') ..set('ary', ['a', 'b', 'c', 'd']); await item.save(); item.remove('ary', ['a', 'e']); await item.save(); await item.fetch(); item.get('ary'); // -> ['b', 'c', 'd']
配列にユニークに追加
配列のフィールドに対して値を追加する点はaddと同じです。ただしユニークな値のみ追加されます。追加する値は配列でも指定できます。
var item = new NCMBObject('Item') ..set('ary', ['a', 'b', 'c', 'd']); await item.save(); item.addUnique('ary', ['a', 'e']); await item.save(); await item.fetch(); item.get('ary'); // -> ['a', 'b', 'c', 'd', 'e']
コード
コードはオープンソースで、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をご利用ください!