Skip to content

[古い記事]NCMBを使ってアプリのバージョンアップをせずにマスターデータを更新する その1

Posted in 技術記事


実行環境
Windows7 Professional 64bit
Unity5.4.1f1
C#
Android
NCMB SDK v2.2.0


NCMBを使ってアプリのバージョンアップをせずにマスターデータを更新する
その1(今回) その2 その3 その4


アプリ内のマスターデータ(CSV)をAPKのアップデート無しで更新出来るようにしたいと思っていたところ、NCMB(ニフティクラウド mobile backend)とやらが良さそうなので実装してみました。

これを利用すれば、サーバーの知識がなくてもファイルやデータの保存・更新・ダウンロードができるため、「サーバーに最新のマスターデータを置く→ユーザーが各自ダウンロードして内部データを更新」ということが簡単に出来ます。

他にもプッシュ通知や会員認証など色々な機能がありますが、今回は使いません。

公式サイト
mBaaSでサーバー開発不要! | ニフティクラウド mobile backend

 

NCMBを導入する

とてもわかり易いサイト様がありますのでそちらを参考にして下さい(丸投げ)

紹介~導入
ニフティクラウドモバイルバックエンドでデータストア機能を使ってみた【Unity】【NCMB】 – (:3[kanのメモ帳]

 

ファイルストアにアップロードする

データストア機能は1行程度のデータをやり取りするのには便利ですが、マスターデータのような大きなものを扱うのには向いていません。代わりにファイルストア機能を利用します。

公式マニュアルが結構親切なので今回も丸投げです。

アップロードを行うのはユーザーではなく作者(自分)なので、スクリプトではなくブラウザからファイルをアップロードします。

公式マニュアル
ファイルストア (Unity) : 基本的な使い方 | ニフティクラウド mobile backend

MIMEタイプについては、今回利用するのがCSVファイルなので「text/comma-separated-values」です。

参考
MIMEタイプ一覧

パーミッションについては一見ちゃんと設定しないとダメなように見えますが、そもそもアプリ側から処理をしなければいいのでデフォルトのままにしました。

 

ファイルストアからダウンロードする

ここからはアプリ側の設計です。たったこれだけでサーバーから非同期でダウンロードしてコールバックまで設定できます。

例によって公式マニュアルより。

using NCMB;
NCMBFile file = new NCMBFile ("ファイル名"); //アップロードしたファイル名を入れる
file.FetchAsync ((byte[] fileData, NCMBException error) => { //ダウンロードを開始する命令。
if (error != null) {
//エラーが起こったときの処理を入れる。
} else {
//正常にダウンロードが完了した時の処理を入れる。
}
});

ダウンロード後の処理

その2に続きます。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です