アプリを繰り返し使ってくれているユーザーに対し、alertViewを表示してiTunes StoreでのReviewに誘導する、という一連の動線を支援するclassです。
実際私の作ったTunesTimerでも、公開して1ヶ月も経つというのに、ほとんどコメントをもらえていませんで、改善できると良いなあと思っていたところでしたので、次回のバージョンアップのために早速組み込んでみました。
Appiraterの良い点は、#defineで色々と定数化してあるので楽ちん、という部分です。初回起動から30日以上経ったり、20回以上使われたらそこで初めてalertViewを出す、みたいな。20回は気が長いなあ、と思ったら
#define APPIRATER_USES_UNTIL_PROMPT 20の 20 を 15 にするだけ。
ただし落とし穴があって、NSStringの文字列まで定数化してしまっているので、そのままでは素直にローカライズできなくて開発初心者の私は泣きました。
こんな感じ。
#define APPIRATER_MESSAGE_TITLE [NSString stringWithFormat:@"Rate %@", APPIRATER_APP_NAME]
ここに NSLocalizedString を記述すると思い切り怒られます。
なので、Appirater.mを書き換えて対処してみました。
まあ、これで一応日本人向けアプリでも導入できるぞ、と。
とここまで書いてみて、「あれ?普通はもっと違うやり方があるのかも?」と急に不安になりました。
もっと普通のやり方があればご教示ください。
はてさて、次のバージョンでの反応が楽しみです。
うざったいからこんなもん表示するな! だったらそもそもくたびれもうけですが(笑)
- (void)showRatingAlert { NSString *messageTitle1 = NSLocalizedString(@"Rate ", @""); NSString *messageTitle2 = NSLocalizedString(@" *", @""); NSString *title = [NSString stringWithFormat:@"%@%@%@", messageTitle1, APPIRATER_APP_NAME, messageTitle2]; NSString *messageBody1 = NSLocalizedString(@"If you enjoy using ", @""); NSString *messageBody2 = NSLocalizedString(@", would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!", @""); NSString *messageBody = [NSString stringWithFormat:@"%@%@%@", messageBody1, APPIRATER_APP_NAME, messageBody2]; UIAlertView *alertView = [[[UIAlertView alloc] initWithTitle:title message:messageBody delegate:self cancelButtonTitle:NSLocalizedString(@"No, Thanks", @"") otherButtonTitles:title, NSLocalizedString(@"Remind me later", @""), nil] autorelease]; self.ratingAlert = alertView; [alertView show]; }
まあ、これで一応日本人向けアプリでも導入できるぞ、と。
とここまで書いてみて、「あれ?普通はもっと違うやり方があるのかも?」と急に不安になりました。
もっと普通のやり方があればご教示ください。
はてさて、次のバージョンでの反応が楽しみです。
うざったいからこんなもん表示するな! だったらそもそもくたびれもうけですが(笑)
0 件のコメント:
コメントを投稿