- 本サンプルは不具合がある場合、issue等から報告いただくようにお願いいたします
- 作成日:2018/6(更新日:2021/6)
- ニフクラ mobile backend の『会員管理機能』を利用して、Androidアプリにログイン機能を実装したサンプルアプリです
- 簡単な操作ですぐに ニフクラ mobile backend の機能を体験いただけます
スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!
注1:詳しくはこちらをご覧ください
- ユーザ名・パスワード認証
- メールアドレス・パスワード認証
- SNSアカウントでの認証
- 匿名認証
本サンプルアプリは、ユーザ名・パスワードでの認証方法について説明していきます。
- MacOS Monterey version 12.5
- Android Studio Chipmunk | 2021.2.1 Patch 2
- Pixel 2 - Android 13 (Simulator)
- KotlinSDK v1.2.0
※上記内容で動作確認をしています。
- 下記リンクから会員登録(無料)をします
- 登録ができたら下記リンクからログインします
- 下図のように「アプリの新規作成」画面が出るのでアプリを作成します
- 既に mobile backend を利用したことがある方は左上の「+新しいアプリ」をクリックすると同じ画面が表示されます
- アプリ作成されるとAPIキー(アプリケーションキーとクライアントキー)が発行されます
- この2種類のAPIキーはこの後ダウンロードするサンプルアプリと ニフクラ mobile backend を紐付けるため、あとで使います。
- ついでに、この後動作確認で会員情報が保存される場所も確認しておきましょう
- 下記リンクをクリックしてプロジェクトをダウンロードします * https://github.com/NiFCloud-mbaas/KotlinLoginApp/archive/master.zip
- ダウンロードしたプロジェクトを解凍します
- AndroidStudio を開きます、「Open an existing Android Studio projct」をクリックして解凍したプロジェクトを選択します
- プロジェクトが開かれます
※このサンプルアプリには既にSDKが実装済み(下記手順)となっています。(ver.1.2.0)
最新版をご利用の場合は入れ替えてご利用ください。
- SDKダウンロード
SDKはここ(SDK リリースページ)から取得してください.
- NCMB.jarファイルがダウンロードします。
- 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の設定
- タグの直前に以下のpermissionを追加します
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- AndroidStudio で MainActivity.kt を開きます
- ディレクトリはデフォルトで「Android」が選択されていますので、「Project」に切り替えてから探してください
- APIキー(アプリケーションキーとクライアントキー)の設定をします
- それぞれ
YOUR_APPLICATION_KEY
とYOUR_CLIENT_KEY
の部分を書き換えます - このとき、ダブルクォーテーション(
"
)を消さないように注意してください
-
エミュレーターでアプリをビルドします
-
失敗する場合は一度「Clean Project」を実行してから再度ビルドしてください
-
画面に従い新規登録、ログインを実施してみましょう
-
-
ニフクラ mobile backend 側を確認すると、会員管理データが保存されたことを確認できます
import com.nifcloud.mbaas.core.NCMB
import com.nifcloud.mbaas.core.NCMBUser
- MainActivity.kt の
OnCreate
メソッドに実装しています
override fun onCreate(savedInstanceState: Bundle?) {
<省略>
//**************** APIキーの設定とSDKの初期化 **********************
NCMB.initialize(this, "YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY")
}
- SDKが提供する
NCMBUser
クラスが会員管理を操作するためのクラスです - このクラスが提供する
signUpInBackground
メソッドを利用し、新規登録を行います(非同期処理) - 設定したユーザ名(userName)とパスワード(password)で会員登録を行います
fun signup() {
<省略>
// TODO: Implement your own signup logic here.
//NCMBUserのインスタンスを作成
val user = NCMBUser()
//ユーザ名を設定
user.userName = name
//パスワードを設定
user.password = password
try {
user.signUp()
android.os.Handler().postDelayed(
{
// On complete call either onSignupSuccess or onSignupFailed
// depending on success
onSignupSuccess()
// onSignupFailed();
progressDialog.dismiss()
}, 3000)
}
catch(e: NCMBException){
//会員登録時にエラーが発生した場合の処理
onSignupFailed()
progressDialog.dismiss()
}
}
NCMBUser
クラスが提供するloginInBackground
メソッドを利用し、ログインします(非同期処理)- 設定したユーザ名(userName)とパスワード(password)でログインを行いま
fun login() {
<省略>
// TODO: Implement your own authentication logic here.
//ユーザ名とパスワードを指定してログインを実行
try {
var user = NCMBUser()
user.userName = name
user.password = password
try{
user.login(user.userName,user.password)
android.os.Handler().postDelayed(
{
// On complete call either onLoginSuccess or onLoginFailed
onLoginSuccess()
// onLoginFailed();
progressDialog.dismiss()
}, 3000)
}
catch(e:NCMBException){
//エラー時の処理
onLoginFailed()
progressDialog.dismiss()
}
} catch (e: NCMBException) {
e.printStackTrace()
}
}
NCMBUser
クラスが提供するlogout
メソッドを利用し、ログアウトを行います(非同期処理)
var user = NCMBUser()
if (user != null && user.getCurrentUser() != null) {
user.logout()
}
データ保存・データ検索・会員管理・プッシュ通知などの機能を実装したい場合は、以下のドキュメント(Android for Java)もご参照ください。
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request :D
MITライセンス
NIFCLOUD mobile backendのAndroid SDKのライセンス