dolaz’s diary

変わり続ける。変わらずにいるために。

Kotlin×Androidアプリ(ニフクラmBaaS)

■参考
 https://mbaas.nifcloud.com/doc/current/introduction/quickstart_android.html
 https://qiita.com/nifcloud_mb/items/5b6290977f3147c3bc4f

 上記サイトは若干情報が古めなので下記手順で実施。

■環境
 Android Studio3.5
 NCMB.3.0.3

■プロジェクトの作成
 Android Studioで新規プロジェクトを「空のアクティビティー」で作成。
 「プロジェクトの構成」はデフォルトの設定のまま。

■jarのインポート
 左上の表示を「Android」にし、「app」⇒「モジュール設定を開く」

f:id:dolaz:20190914162537p:plain
 「モジュール」タブ⇒「+」ボタン⇒「JAR/.AARパッケージのインポート」
  project/app/libs配下にダウンロードして解凍しておいた「NCMB.jar」を選択
 「依存関係」タブ⇒「app」⇒「+」ボタン⇒「3モジュール依存関係」⇒「NCMB」を選択(スコープは「implementation」)。
 ※この依存関係の設定をすれば、appの「build.gradle」にNCMB関連の追記は不要。追記してしまうとビルド時に「Program type already present」というエラーが出る。
  

■appの「build.gradle」
 下記だけ追加。

implementation 'com.google.code.gson:gson:2.8.5'

 

■MainActivity.kt
 import文とアプリキー・クライアントキーを追加。
 また、SDKの初期化、起動時の処理を追加。
 ※APP_KEYとCLIENT_KEYは自分のアプリのキーに変更
 ※デバッグ確認の為「plintln()」を入れている。

import com.nifcloud.mbaas.core.NCMB
import com.nifcloud.mbaas.core.NCMBObject

//********** APIキーの設定 **********
const val applicationKey:String = "APP_KEY"
const val clientKey:String = "CLIENT_KEY"

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

//********** SDKの初期化 **********
NCMB.initialize(applicationContext, applicationKey, clientKey)
//▼▼▼起動時に処理される▼▼▼
println("I an here")
// クラスのNCMBObjectを作成
var obj = NCMBObject("TestClass")
// オブジェクトに値を設定
/** 文字列 **/
obj.put("message", "Hello, NCMB!")
/** 配列 **/
obj.addUniqueToList("array", listOf("A","B","C"))
// データストアへの保存を実施
obj.saveInBackground { e ->
if (e != null) {
// 保存に失敗した場合の処理
println("It was failure")
} else {
// 保存に成功した場合の処理
println("It was success")
}
}
//▲▲▲起動時に処理される▲▲▲
}
}

 

■AndroidManifest.xml
 applicationタグに下記を追加。

android:name="com.nifcloud.mbaas.core.NCMBApplicationController"

 

■実行
 実行して、ニフクラ側にテーブルとレコードが追加されていることを確認。