NCMBは複数のプラットフォーム向けにSDKを提供しています。一番最新のSDKとしてKotlin SDKで、従来のJava SDKとはまた違った、Kotlinらしい書き方で使えるSDKとなっています。
今回はそんなKotlin SDKを使ってプッシュ通知を受け取るまでの流れを紹介します。
セットアップ
Androidの場合はFirebaseにてプロジェクトを作成します。そして、Cloud Messagingを有効にしてAndroid用の設定をウィザードで進めます。最終的にgoogle-services.jsonがダウンロードできます。
また、プロジェクトの設定で新しい秘密鍵を作成、ダウンロードします。この秘密鍵はNCMBの管理画面にてAndroid用プッシュ通知のファイルとしてアップロードしてください。
Androidの設定
SDKのインストール
GitHubのリポジトリからNCMB.(バージョン).zipをダウンロードして展開します。NCMB.jarができるので、これを app/libs
の中に配置します。
google-services.jsonの配置
app/
に先ほどのgoogle-services.jsonを保存します。
build.gradleの編集
以下を追加します。バージョンは最新版を追加するようにしてください。バージョンはAndroid プロジェクトに Firebase を追加する | Firebase Documentationにて確認できます。
buildscript {
// 省略
dependencies {
classpath "com.android.tools.build:gradle:7.0.0"
// 追加
classpath "com.google.gms:google-services:4.3.4"
}
}
app/build.gradleの編集
以下を追記します。
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services' //追加
}
依存ライブラリを追加します。
dependencies {
// 省略
implementation 'com.google.code.gson:gson:2.3.1'
api files('libs/NCMB.jar')
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation platform('com.google.firebase:firebase-bom:28.4.0') //追加
implementation 'com.google.firebase:firebase-messaging-ktx' //追加
implementation 'com.google.firebase:firebase-analytics-ktx' //追加
implementation 'com.google.android.gms:play-services-base:17.6.0' //追加
}
各build.gradleをSyncして、ライブラリをインストールします。
app/src/main/AndroidManifest.xmlの編集
manifestタグの直下にusers-permissionを追加します。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.moongift.ncmb.pushdemo">
<!-- 以下を追加 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
applicationタグの下にserviceタグと、meta-dataタグを追加します。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PushDemo">
<!-- 追加 -->
<service
android:name="com.nifcloud.mbaas.core.NCMBFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<!-- プッシュ通知タップ時に起動するActivityの設定 ※必須の設定 -->
<meta-data android:name="openPushStartActivity" android:value=".MainActivity"/>
<!-- プッシュ通知のchannel idの設定 default(com.nifcloud.mbaas.push.channel)-->
<meta-data android:name="ChannelId" android:value="com.nifcloud.mbaas.push.channel"/>
<!-- プッシュ通知のchannel名の設定 default(NCMB Push Channel) -->
<meta-data android:name="ChannelName" android:value="NCMB Push Channel"/>
<!-- プッシュ通知のchannel 説明の設定 default(com.nifcloud.mbaas.push.channel) -->
<meta-data android:name="ChannelDescription" android:value="com.nifcloud.mbaas.push.channel"/>
MainActivity.ktの作成
MainActivity.ktにてSDKをインポートします。
import com.nifcloud.mbaas.core.NCMB
SDKを初期化し、さらにプッシュ通知用の機能も初期化します。
NCMB.initialize(this, "YOUR_APPLICATION_KEY", "YOUR_CLIENT")
NCMB.initializePush(this.applicationContext)
これでプッシュ通知の送信準備が整いました。アプリを起動すると、NCMBの管理画面にてInstallationクラスにデータが追加されているのを確認できます。
プッシュ通知を送信する
NCMBの管理画面でプッシュ通知を送信します。送信先としてAndroidを選んでください。
まとめ
Androidのプッシュ通知の場合、Firebaseでプロジェクトを作成することと、build.gradleの修正、Kotlinファイルの作成が必要です。手順さえ覚えてしまえば簡単に実装できますので、ぜひKotlinアプリにもプッシュ通知を実装してください。