読者です 読者をやめる 読者になる 読者になる

自宅プログラマーの憂鬱

Since 2013。個人でアプリ作っています。

iOSアプリリジェクト: iPhoneのアイコンを許可なく使ってはいけない

f:id:ihatomo:20170323143649p:plain

練習カメラは、一度リジェクトされたのですが、原因はこちら。
操作説明の画面で、iPhoneの絵を貼ったのですが、これがAppleさんの公式のアイコンに酷似していた。

例えばコレ。

f:id:ihatomo:20170323144220p:plain

詳細はこちらの5項をご覧ください。アイコンを使用するには、Agreementを結ばなければならず、しかも各iPhoneのとなりに、どのiPhoneのモデルなのかをテキストで書かなければならないです。というわけで、Appleさんの公式アイコンに似ても似つかないマンガに変更して審査をパスしましたとさ。やれやれ。

iOSアプリリジェクト: iPhoneのアイコンを許可なく使ってはいけない

f:id:ihatomo:20170323143649p:plain

練習カメラは、一度リジェクトされたのですが、原因はこちら。
操作説明の画面で、iPhoneの絵を貼ったのですが、これがAppleさんの公式のアイコンに酷似していた。

例えばコレ。

f:id:ihatomo:20170323144220p:plain

なので、Appleさんの公式アイコンに似ても似つかないマンガに変更して審査をパスしましたとさ。やれやれ。

「練習カメラ」アプデ:UIImagePickerで録画ファイルを消すと次回起動できなくなる

ちょっとほったらかしにしていたら、動作不具合が起きていて焦ってアプデしました。アプデといっても、ソースコードもほぼ書き直して作り直し。そんなに難しくないだろうと思ったらやっぱり結構ハマりました。しばらく、このお話をします。まずは、撮ったファイルを消すお話。

このカメラアプリは、楽器やゴルフなどを録画してチェックを繰り返す目的としているものなので、録画したファイルを保存しないようにしています。保存したいときだけ、保存ボタンをタップする仕組み。そうすると、録画=>再生=>録画=>再生と繰り返すことになるのですが、これほっとくと録画ファイルがどんどんどんどん溜まってしまいにはストレージを食いつぶしてしまいます。なので、保存しないファイルはこまめに消さないといけない。というわけで、こちらがその事を書いたエントリーです。

iPhone動画カメラアプリは、撮ったファイルが自動で消えない - 自宅プログラマーの憂鬱

だがしかし、、、今回の不具合はここで起きていました。何と、撮ったファイルを消した状態で再度UIPickerControllerを [self presentViewController:imagePicker animated:NO completion:nil]; とやると、前回録画したファイル名と一緒にFile not found! エラーが出てクラッシュします。いや、もう、これから新しい録画したいんだけどさ、、、。

というわけで、消しちゃいけなくなっていることがわかりました。でも消さないとフォルダーは膨らんでいくわけだし、、。というわけで、溜まっているVideoは消すけど、さっき撮ったのだけは残すという処理に変更。

NSString *pathToVideo;

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSURL *videoURL  = [info valueForKey:UIImagePickerControllerMediaURL];
    pathToVideo = [videoURL path];
    //PickerControllerを閉じる
    [self dismissViewControllerAnimated:YES completion:nil];
    以下略
}

-(void) deleteFile
{
    NSLog (@"videoPath=%@", pathToVideo);
    //録画ファイルを消す
    NSString *tempDir = [self temporaryDirectory];
    NSArray *imgFileNames = [self fileNamesAtDirectoryPath:[self temporaryDirectory] extension:@"MOV"];
    for (NSString *fileName in imgFileNames) {
        NSLog (@"消去 %@", fileName);
        NSString *filePath = [tempDir stringByAppendingPathComponent:fileName];
        if   (![filePath isEqualToString:pathToVideo]){
            [self removeFilePath:filePath];
        }
    }
    imgFileNames = [self fileNamesAtDirectoryPath:[self temporaryDirectory] extension:@"MOV"];
    for (NSString *fileName in imgFileNames) {
        NSLog (@"まだ残ってる %@", fileName);
    }
}

- (BOOL)removeFilePath:(NSString*)path
{
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    return [fileManager removeItemAtPath:path error:NULL];
}


これで解決。やれやれ。

3月ですね

12月と3月は稼ぎどき。何故ならインターネット(に限らないんだろうけど、私に関係あるのはネットだけなので)の広告クリック単価が上がるから。私は、この現象を確変入ったと呼んでいる。12月はクリスマス&年末商戦なのでわかる。でも3月って新年度対策ではなくて、明らかに年度末の広告予算消化だ。一般企業なのにお役所みたいだ。
ネットの広告費は、ビッド(入札)で決まる。検索語などの表示条件にマッチした時、最高値で入札しているものから表示される。つまり年度末に皆が予算消化で広告を出稿すると、同じ広告でも単価が上がってしまう事になる。高い時と安い時では倍くらい違う。これは明らかに勿体無い。
お前は儲かるからいいじゃん!?ってお思いの方も多いと思うのですが、そうじゃないんですよ。この反動がガクっと来るの。1月と4月、あと10月は新たに広告予算組み直すから、収入がガクンと減る。12月にうへへへ、今月は儲かったぜ!とか言って調子に乗っていると、後で痛い目にあうの繰り返し。少しは学習しろって話なんだけどね。やれやれ。

Apple search Adsに広告出してみたら凄いことになった件

すみません、タイトルはちょっと煽りです。

Smart MetronomeのDL数は、日本がほとんどで米国では日本の1/100程度しかなかったのですが、これは米国APP Storeでのmetronomeの検索順位が、当時104位という存在してないも同然みたいなポジションだったからまぁ仕方ないわけで。でもメトロノームアプリとしての性能、機能、操作性は、決して他に劣るものではないので、いつか何かしてやろうと思っていて、この度Apple Search Adsに広告出してみました。

広告の出し方については、他で検索して頂くとして、設定してみた感想は、AdMobみたいに画像つくったりとか、テキスト考えたりとか、そういう必要が全くないので楽と言えば楽です(クレカの登録ではまりましたが、それは前のエントリーを参照してください)。自分で設定するのは、キーワード、全体予算、1日あたりの予算、1広告あたりに出せる予算を決めるだけ。実際の広告額はBidで決まってるんでしょうね。実際の表示は、APP Storeの検索結果の一番上にAdという表示がついて表示されます。で、キャンペーンでもらった$100と自腹の$100を突っ込んでみました。1日あたりの最大予算は$40。この設定で、8日で使い切りました。一気にDLしてもらった方が効果あるかなぁ、という作戦です。その結果、DL数がどうなったかと言うと以下の通り。

f:id:ihatomo:20170226104008p:plain

何と約60倍。検索順位も104位だったのが4位に。ちゃんと読んでないからアレなんだけど、こういうのって具体的な数字出すな!みたいな契約あると思うのでふわっと書きますが、みんな普通に検索1位に表示されてると思ってんじゃね?ってくらいクリックされるし、Conversionも高い。最終的に1DL獲得あたりのコストは数十円と、かなりリーゾナボーな結果になりました。明らかにAdMobとは次元が違います。メトロノームなんていう、ゲームなどに比べて非常に検索方法がシンプルなキーワードだっていう事もあると思うのですが、この結果には大満足。もっと早くやれば良かったよ。あとは広告止めてもこの検索位置をキープできるかですな。やれやれ。

Apple Search Adsでクレジットカードを登録できない件

結局iフィルターを外したらOKになりました。

f:id:ihatomo:20170218121400p:plain

先日Smart Metronomeをアプデしたのでこれを機にAppleSearch AdsでUSに広告出してみようとトライしました。Apple IDで登録すると、さっそく$100お試しのプロモーションコードの通知メールが届く。でも、クレジットカードの登録が何回やっても、どのカードを使ってもエラー。エラーメッセージは「後で試せ」的な。でも後で試してもダメ。次の日もダメ。
で色々やっていてふと気づいたのだけど、 iフィルター(ウィルスチェック&有害URLフィルタ)を外したらどうだろう? で、これがビンゴ。こんなんで2時間くらいロスしたよ。やれやれ。

アマゾンダッシュボタンの恩恵

f:id:ihatomo:20170119223744p:plain]

うちには3個あります。ダッシュボタン。
これ、何が良いかというと、もちろんトイレットペーパーとかティッシュペーパーとか買い物でかさばるものを家まで届けてくれるというのもあるのだけど、それよりも、「あ、ティッシュ切れてるから買わなきゃ」というタスクがToDo Listに入れることなくボタンひとつで終了することです。少々価格が高い?!ノープロブレム。とにかく日常生活やること多いんだから、こんな瑣末の事に記憶領域と時間を取られることからさっさと開放されたいじゃありませんか。洗剤がないなぁ、、、と思ったらボタンをピっと押せばそれで終わり。なんと気持ちの良いことでしょう。

でも、さすがAmazonというか、「いやいや、近所のスーパーで買った方が安いよ」とか「トイレットペーパーをわざわざ宅配便の方に運送してもらうのは、、」なんていう人をハナから相手にしていません。ダッシュボタンの客層って、食洗機とかルンバとかを買う人に似ていると思うの。家事にとられる時間をお金で解決できるのなら、そしてそれがコスト的に見合うのであれば積極的に導入したいという層が対象。そもそもAmazon Primeの会員のみが対象だし、家にWiFiがあること前提だし、設定にはSmart Phoneにアプリを入れてそこから設定しなければいけないし、情弱の人を相手にしていない。

では、それでAmazonとしてビジネスとして見合うのか?っていうとどうなんでしょう。そこはメーカーさんやクロネコヤマトさんと協力してうまい事ビジネスモデルを構築しているんでしょう。願わくばAmazonの一人勝ちではなく、ビジネスモデルに関わる皆がWinWinである事を願いますがね。クロネコさんの現場は、最近色々大変そうな記事を目にするけど頑張ってサービス継続して欲しいな。