XamarinはC#を使ったクロスプラットフォームなスマートフォンアプリ開発環境です。企業向けのアプリ開発などで利用されることが多いようです。
NCMBではC#を使った開発環境としてUnityに対応しています。しかし、そちらはiOS/Android SDKをラッピングしているので、Xamarinでそのまま利用できません。C#のみで実装する必要があります。
ここでは現在開発中のC#用SDK(コミュニティSDK)の使い方を紹介します。今回はデータストアのインクリメント、配列に対するAdd/AddUnique/Removeの使い方を紹介します。
インストールについて
C# SDKはNuGetで公開していますので、Visual Studioなどでインポートできます。
使い方
使い方はまず、NCMBClientを読み込みます。
using NCMBClient;
初期化
初期化は次のようにします。アプリケーションキー、クライアントキーは自分のものに変更してください。
var applicationKey = "70d...934"; var clientKey = "4d0...dff"; new NCMB(applicationKey, clientKey);
初期化さえ終われば、次のようなオブジェクトが利用できます。
- NCMBObject
データストアのオブジェクト - NCMBQuery
データストア、会員管理、ロール、Installation、ファイルストア検索用 - NCMBAcl
権限管理用 - NCMBUser
会員管理用 - NCMBRelation
データストアのリレーション - NCMBInstallation
デバイストークン管理用クラス - NCMBGeoPoint
位置情報を扱うクラス
インクリメント
インクリメントは数字を足して保存するものです。データストア上のデータに対して加算(または減算)するので、複数箇所からの更新にも利用できます。コードで書くと次のようになります。
var item = new NCMBObject("DataStoreTest"); item.Set("message", "Hello"); item.SetIncrement("num", 1); item.Save(); item.Fetch(); item.GetInt("num"); // -> 1 item.SetIncrement("num", 2); item.Save(); item.Fetch(); item.GetInt("num"); // -> 3
配列の追加
配列で保存しているカラムに対してデータを追加するのが Add
メソッドになります。データストア上のデータに対して値を追加するので、複数箇所からの更新にも利用できます。コードで書くと次のようになります。
var item = new NCMBObject("DataStoreTest"); item.Set("message", "Hello"); item.Add("num", "1"); item.Save(); item.Fetch(); item.Get("num"); // -> ["1"] item.Add("num", 2); item.Save(); item.Fetch(); item.Get("num"); // -> ["1", 2]
配列の追加(ユニーク)
Addは追加していくだけですが、AddUniqueを使うと重複した値は排除できます。ユニークな配列を作る場合はこちらを使ってください。
var item = new NCMBObject("DataStoreTest"); item.Set("message", "Hello"); item.AddUnique("num", 1); item.Save(); item.Fetch(); item.Get("num"); // -> [1] var numbers = new int[2] { 1, 2 }; item.AddUnique("num", numbers); item.Save(); item.Fetch(); item.Get("num"); // -> [1, 2]
配列の削除
配列の中から特定の値を削除する場合には Remove
を使ってください。これもまたサーバ側のデータに対して実行される処理になります。
var item = new NCMBObject("DataStoreTest"); item.Set("message", "Hello"); var numbers = new int[3] { 1, 2, 3 }; item.Add("num", numbers); item.Save(); item.Fetch(); item.Get("num"); // -> [1, 2, 3]; item.Remove("num", 3); item.Save(); item.Fetch(); item.Get("num"); // -> [1, 2]
コードについて
コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。
まとめ
今回紹介した SetIncrement
、Add
、AddUnique
、Remove
はすべてサーバ側で処理を行います。同時に複数箇所から更新をかける際に、上書きを避けられるので便利です。ぜひ使いこなしてください。