- ニフクラ mobile backend の『ファイルストア機能』を利用して、「撮った写真をクラウドに保存する」内容を実装したサンプルプロジェクトです
- 簡単な操作ですぐに ニフクラ mobile backendの機能を体験いただけます
スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!今回はデータストアを体験します
注1:詳しくはこちらをご覧ください
- MacOS Mojave v10.14.6 (18G103)
- Android studio: 3.4.1
- Simulator: Pixel 2 Android OS Version 10
※上記内容で動作確認をしています
- 下記リンクから会員登録(無料)をします
- 登録ができたら下記リンクからログインします
- 下図のように「アプリの新規作成」画面が出るのでアプリを作成します
- 既に mobile backend を利用したことがある方は左上の「+新しいアプリ」をクリックすると同じ画面が表示されます
- アプリ作成されると下図のような画面になります
- この2種類のAPIキー(アプリケーションキーとクライアントキー)は先ほどインポートしたAndroidStudioで作成するAndroidアプリにニフクラ mobile backendの紐付けるため、あとで使います
- 動作確認後に写真(画像)が保存される場所も確認しておきましょう
- 下記リンクをクリックしてプロジェクトをダウンロードします
- https://github.com/NIFCLOUD-mbaas/android_camera_demo/archive/master.zip
- ダウンロードしたプロジェクトを解凍します
- AndroidStudio を開きます、「Open an existing Android Studio project」をクリックして解凍したプロジェクトを選択します
- プロジェクトを開きます
※このサンプルアプリには既にSDKが実装済み(下記手順)となっています。(ver.3.0.2)
最新版をご利用の場合は入れ替えてご利用ください。
- SDKダウンロード
SDKはここ(SDK リリースページ)から取得してください.
- NCMB.jarファイルがダウンロードします。
- SDKをインポート
- app/libsフォルダにNCMB.jarをコピーします
- 設定追加
- app/build.gradleファイルに以下を追加します
dependencies {
implementation 'com.google.code.gson:gson:2.3.1'
implementation files('libs/NCMB.jar')
}
- androidManifestの設定
- タグの直前に以下のpermissionを追加します
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- AndroidStudio で MainActivity.java を開きます
- ディレクトリはデフォルトで「Android」が選択されていますので、「Project」に切り替えてから探してください
- APIキー(アプリケーションキーとクライアントキー)の設定をします
- それぞれ
YOUR_APPLICATION_KEY
とYOUR_CLIENT_KEY
の部分を書き換えます - このとき、ダブルクォーテーション(
"
)を消さないように注意してください!
- エミュレーターでアプリをビルドします
- 失敗する場合は一度「Clean Project」を実行してから再度ビルドしてください
- アプリが起動したら
- 「CAMERA」ボタンをタップして、写真を撮影します
- 「保存」ボタンをタップして、保存します
- 今回はファイル名固定しています:
test.png
- ニフクラ mobile backend 上に画像が保存されると、アプリの画面に画像表示されます
- 保存に成功したら、ニフクラ mobile backend の管理画面から「ファイルストア」を確認してみましょう!
- 簡単に写真がクラウドに保存できました
サンプルプロジェクトに実装済みの内容のご紹介します。
activity_main.xml
でデザインを作成し、MainActivity.java
にロジックを書いています
- ファイルストアを利用するには、SDKが提供する
NCMBFile
を使用します - ファイルのアップロードを行うには、このクラスが提供する
saveInBackground
メソッドを利用します(非同期処理) - ファイル名を固定しているため、新しくファイル(画像)を保存すると上書きされます
file = new NCMBFile("test.png", dataByte, acl);
file.saveInBackground(new DoneCallback() {
@Override
public void done(NCMBException e) {
String result;
if (e != null) {
//保存失敗
} else {
//保存成功
}
- ファイルストアに保存したものを取得するには、
fetch
メソッドを利用します(同期処理)fetchInBackground
メソッドでの非同期処理も利用可能です
- ファイルの取得時には、ファイル名を先に取得する必要があります(今回はファイル名固定:
test.png
)
file = new NCMBFile("test.png");
file.fetchInBackground(new FetchFileCallback() {
@Override
public void done(byte[] dataFetch, NCMBException er) {
if (er != null) {
//失敗処理
} else {
//成功処理
}
}
- ニフクラ mobile backend のドキュメント(ファイルストア(Android)) をご用意していますので、ご活用ください