XamarinはC#を使ったクロスプラットフォームなスマートフォンアプリ開発環境です。企業向けのアプリ開発などで利用されることが多いようです。
NCMBではC#を使った開発環境としてUnityに対応しています。しかし、そちらはiOS/Android SDKをラッピングしているので、Xamarinでそのまま利用できません。C#のみで実装する必要があります。
ここでは現在開発中のC#用SDK(コミュニティSDK)の使い方を紹介します。今回はポインターの使い方について解説します。
インストールについて
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
データストアのリレーション
ポインターの保存
ポインターを利用する際には、オブジェクトをそのままデータストアにセットして保存してください。
var item1 = new NCMBObject("QueryTest1"); item1.Set("message", "Test message"); item1.Set("number", 500); await item1.SaveAsync(); var item2 = new NCMBObject("QueryTest2"); item2.Set("message", "Test message"); item2.Set("number", 500); item2.Set("obj", item1); // ← オブジェクトを適用 await item2.SaveAsync();
ポインターの取得
ポインターのデータを取得する際には Include
メソッドを使います。
var query = new NCMBQuery("QueryTest2"); query .EqualTo("objectId", item2.Get("objectId")) .Include("obj"); var obj = await query.FetchAsync();
そうすると obj
カラムの返却値がNCMBObjectになります。
obj.Get("objectId") == item2.Get("objectId"); // => true var item3 = (NCMBObject) obj.Get("obj"); item3.Get("objectId") == item1.Get("objectId"); // => true
ポインターを使うことでデータストアをRDBMS風に利用できますので、ぜひお試しください。
コードについて
コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。
まとめ
NoSQL型のデータベースではリレーションの利用は一般的ではありません。ただ、ユーザデータやデータストアの相互連携には必要な機能でしょう。ぜひポインターの使い方をマスターしてください。