スマホアプリ開発のブログ

【monaca】アプリ公開前にこれだけはやっておこう!【あとで困ります】

こんにちは、オサムです。

 

この記事ではスマホアプリを公開する前にやっておいたほうがよいことを書いています。

 

「monaca×ニフクラmobile backend」で作ったアプリを公開しようとしている人向け、です。

 


 

1. 障害調査用にExceptionはデータストアに保存する


アプリを開発しているときはmonacaのデバッガーでアプリの不具合を見つけることができますが、公開してからはアプリがちゃんと動いているかを、確認するすべがありません。

 

開発環境では問題なく動いていても、ユーザーは色んな機種のスマホやタブレットを使っていますし、iOSやandroidのバージョンによってもアプリの挙動が変わることもあります。

 

ユーザーの端末で想定外のエラーが出ているのにも関わらず、何も気づけないというのは、開発している側にとっても不安で仕方がないですよね。

 

なので、アプリを公開する前には、障害調査用にExceptionをデータストアに保存するようにしておきましょう。

 

具体的な手順はまず、事前にncmbで「SystemErrorLog」というデータストアを作っておきます。

 

そして、以下のようなソースを実装します。

/* --------- [共通] システムエラー履歴追加----------- */
function addSystemErrorLog(e, functionname) {
console.log("function " + arguments.callee.name + " start");

 

var errorMessage = "";
if (functionname) {
errorMessage = functionname + "\n";
}
if (e.stack) {
errorMessage += e.stack + "\n";
}

 

// NCMB.Objectのサブクラスを生成
var SystemErrorLog = ncmb.DataStore("SystemErrorLog");
// クラスの新しいインスタンスを生成
var systemerrorlog = new SystemErrorLog();

 

systemerrorlog.set("userObjectId", currentLoginUser.objectId);
systemerrorlog.set("error", errorMessage);
systemerrorlog.set("userAgent", navigator.userAgent);

 

systemerrorlog.save()
.then(function (results) {
//ログアウト処理
})
.catch(function (error) {
//ログアウト処理
});
console.log("function " + arguments.callee.name + " end");
}

 

Exceptionをcatchした部分で

.catch(function (error) {
   var fn = arguments.callee.name;
addSystemErrorLog(error, fn);
  }

と呼べばOKです。

 

こうしておくと、どのOS/バージョンで、どんなExceptionが出ているかを、開発側でも把握することができます。

 

2. アプリ紹介用サイトを作成する


せっかくアプリを公開するなら、たくさんの人に使ってもらったほうが嬉しいですよね。なので、アプリ紹介用のサイトは必ず作るようにしましょう。

 

参考までに、僕が作ったStacaの紹介サイトです。
Stacaの紹介サイト

 

通常、アプリは「AppStore」や「GooglePlay」で検索してダウンロードしてもらうことが多いのですが、Google検索経由からもヒットするようにサイトを作っておけば、さらに多くのアプリユーザーを増やすことができます。

 

利用規約やプライバシーポリシーはサイト側に書いておいてアプリからリンクしておけば、規約を更新するときにわざわざアプリをリリースし直す必要もありません。

 

一度もサイトを作ったことがない人には面倒かもしれないですが、ぜひ作っておきましょう。

 

ちなみに、僕がサイトを作るときに使っているのは以下です。

 

ドメインを取得する

ムームードメイン

 

レンタルサーバを借りる

ロリポップ!

 

WordPressでサイトを作る

WordPress

 

3 .問い合わせ用のメールアドレスを準備しておく


ドメインを取ったらついでに問い合わせ用のメールアドレスも作っておきましょう。アプリを公開した後は、必ずと言っていいほどユーザーからの問い合わせがきますので。

 

問い合わせの内容は「アプリの使い方を教えてほしい」といったことから、「アプリの改善要望」であったり「不具合の報告」など、さまざまです。

 

特に不具合の報告をしてくれるユーザーはありがたいです。だって、そのユーザーだけでなく、他のユーザーも不具合の影響を受けている可能性が高いのですから。自慢にはならないですが、Stacaでも何度も不具合報告があり、そのたびに修正して影響を最小限にとどめることができています。

 

アプリの品質向上のためにも、問い合わせ用メールアドレスは必ず設置しておきましょう。

 

4. [NCMB]開発専用のデータストアを作っておく


アプリを公開するまではNCMBのデータストアは1つだけでよいのですが、公開するとそのデータストアには本番データが入ることになります。

 

アプリ公開後にアプリを修正してテストするためには、本番用のデータストアを使うわけにはいかないため、開発用のデータストアをもう一つ作っておく必要があります。

 

「ニフクラmobile backend」の管理コンソールで「+新しいアプリ」を選ぶと、新たにアプリを作ることができますので、本番と同じ構成で開発用のデータストアを作っておきましょう。

 

あと本番用か開発用かの見分けがつくよう、アプリ設定でカラーテーマを変えておくと便利です。

 

本番用

【monaca】アプリ公開前にこれだけはやっておこう!【あとで困ります】

 

開発用

【monaca】アプリ公開前にこれだけはやっておこう!【あとで困ります】

 

5. [monaca]ひとつのソースで本番/開発を切り替える

 

本番用と開発用ではニフクラのアプリケーションIDやadmobのIDを変える必要があるのですが、2種類のソースを作るのはメンテナンスが面倒です。

 

なのでソースの冒頭で環境を切り替えられるようにしておきましょう。

 

var env;
//------------------------------リリース時にコメントアウト------------------------//
env = "develop";
//--------------------------------------------------------------------------------//

 

if (env == "develop") {
// ニフクラ設定
var applicationID = "xxx";
var appKey = "xxx";
var clientKey = "xxx";

 

// admob設定
var admob_istesting = true;
var android_banner = 'ca-app-pub-xxxx';
var android_interstitial = 'ca-app-pub-xxxx';
var android_reward = 'ca-app-pub-xxxx';
var ios_banner = 'ca-app-pub-xxxx';
var ios_interstitial = 'ca-app-pub-xxxx';
var ios_reward = 'ca-app-pub-xxxx';
// PUSHERログ設定
Pusher.logToConsole = true;
var pusherId = 'xxx';

 

} else {
// ニフクラ設定
var applicationID = "xxxx";
var appKey = "xxxx";
var clientKey = "xxxx";

 

// admob設定
var admob_istesting = false;
var android_banner = 'ca-app-pub-xxxx';
var android_interstitial = 'ca-app-pub-xxxx';
var android_reward = 'ca-app-pub-xxxx';
var ios_banner = 'ca-app-pub-xxxx';
var ios_interstitial = 'ca-app-pub-xxxx';
var ios_reward = 'ca-app-pub-xxxx';

 

// PUSHERID
var pusherId = 'xxxx';
}

 

こんな感じで書いておけば、ひとつのソースでまとめられます。

 

リリースのときだけ、「env」行をコメントアウトすればOKです。

 

6. まとめ


以上、僕がアプリ公開前にやっていることの紹介でした。

 

これからアプリを公開しようと思っている人の参考になれば嬉しいです。

 

 

PR




PR


HOME スマホアプリ開発ブログ SE入門講座 無料スクールまとめ フリーSE案件サイト SEおすすめ書籍