NCMBでは各種プラットフォーム向けにSDKを提供しています。iOSであればObjective-CとSwiftがあります。Android向けにはこれまでJava SDKのみでしたが、現在Kotlin向けにもSDKを開発中です。
まだデベロッパープレビューの段階ですが、先日v0.2.0をリリースしましたので、それを使ってデータを保存してみました。
インストール
Android Studioでプロジェクトを開き、以下の手順でSDKをインストールしてください。
- app/libsフォルダにNCMB.jarをコピーします
- app/build.gradleファイルに以下を追加します
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'com.google.code.gson:gson:2.3.1'
api files('libs/NCMB.jar')
//同期処理を使用する場合はこちらを追加していただく必要があります
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9'
}
クイックスタート
AndroidManifest.xmlの編集
<application>タグの直前に以下のpermissionを追加します。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
初期化
ActivityのonCreateメソッド内に以下を記載します。
NCMB.initialize(this.getApplicationContext(),"YOUR_APPLICATION_KEY","YOUR_CLIENT_KEY");
- 利用する機能に合わせて使用するライブラリのimport
import com.nifcloud.mbaas.core.NCMB //全機能必須
import com.nifcloud.mbaas.core.NCMBCallback //非同期処理を行う場合
import com.nifcloud.mbaas.core.NCMBException //例外処理を行う場合
import com.nifcloud.mbaas.core.NCMBObject //データストアを利用する場合
import com.nifcloud.mbaas.core.NCMBUser //会員管理を利用する場合
import com.nifcloud.mbaas.core.NCMBGeoPoint //位置情報を利用する場合
import com.nifcloud.mbaas.core.NCMBQuery //検索機能を利用する場合
データ保存の基本
一番基本となるデータ保存は次のようになります。これは同期的に保存しています。
val obj = NCMBObject("TestClass")
obj.put("string", "Hello, NCMB!") // 文字列
obj.save()
数字・真偽値
数字や真偽値であれば、文字列と同じように指定します。
obj.put("number", 100) // 数値
obj.put("boolean", true) // 真偽値
位置情報
位置情報を保存する際には専用のNCMBGetPointクラスを使います。
val geo = NCMBGeoPoint(35.6666269, 170.765607)
obj.put("geo", geo)
日時
v0.2.0の時点では日付はJSONObjectで指定する必要があります。将来的にはDate/DateTime/LocalDate/LocalDateTimeなどに対応できるはずです。
val date = JSONObject()
date.put("__type", "Date")
date.put("iso", "2014-06-03T11:28:30.348Z")
obj.put("date", date) // 日付
ACL
アクセス管理を行うACLは専用のクラスNCMBAclを使います。さらにsetAclという専用のメソッドを使って設定します。
val acl = NCMBAcl()
acl.publicReadAccess = true
acl.publicWriteAccess = false
obj.setAcl(acl)
配列
配列はJSONArrayを使います。
val array = JSONArray()
array.put(1)
array.put(2)
array.put("1")
obj.put("array", array) // 配列
オブジェクト
オブジェクトは日付と同じでJSONObjectを使います。
val o = JSONObject()
o.put("a", "b")
o.put("c", 100)
obj.put("object", o) // オブジェクト
まとめ
データストアではこの他にもポインター(別なNCMBObject)やリレーションなども指定できます。それらのデータも近々対応できるでしょう。Kotlinアプリを開発する際に、ぜひ試してみてください。
NIFCLOUD-mbaas/ncmb_kotlin: NIFCLOUD mobile backendのKotlin SDK