自作iPhoneアプリをAppStoreでリリースするまでの道のり

20121018-090147.jpg
今年の1月に、「iPhoneアプリを作ってリリースする」ことを今年の目標として挙げてから9ヶ月かかって、やっと最初の自作iPhoneアプリをリリースすることができました。
当初は、開始から2ヶ月でリリースするという甘すぎる予定を立てていたのですが、

想定外の苦難に悩まされながらも何とかリリースできました。
3回目の再申請をしたのが10/8の15:55。4回目のIn Reviewになったのが10/16の3:43。
それから待たされること約1日。「リジェクトされるなら早くくれ」と待っていたら、いつもとは違う件名のメール「Your app status is Processing for App Store」が10/17の5:38、「Your app status is Ready for Sale」が5:44に、連続して届いていました。
もう、狂喜の舞です!
ちなみに、後の方のメールに「If your contracts are not in effect at this time, your app status will be Pending Contract. You may track the progress of your contracts in the Contracts, Tax, and Banking module in iTunes Connect.」と書かれていたので、24時間以内に何かしなきゃいかんのかと慌てましたが、ググッてみると「支払い情報などに不備があったら取り消す」ということでした。
少々不安だったので、iTunes ConnectのManage Your Appsを見たところ、App Review Informationを埋めろとアラートが出ていたので、適当に入力しておきました。
Ready for saleもらってからやった作業は、これだけです。
最後のメールを見てから5時間も経ってないくらいでしたが、AppStoreで自分のアプリを検索したら既にリリースされていました。と言うことは、Ready for saleをもらったら、アプリがAppStoreに並んでいると考えて良さそうです。


リリースしたアプリはコチラです。
結局、3回もリジェクトを食らっていた真の理由は、最後のViewControllerが無いっていう所だったみたいですね。解決策が、新規プロジェクトにコピペで復活というのが情けないですが。。。

AppStoreのアプリの情報を見て気になったのは、「必要項目」という欄です。iPadやiPhone5、第5世代のiPodTouchまで含む全機種になってました。入力した記憶が無いのですが、動作確認してないのに勝手に書かれてしまうのでしょうかね。。。

さらに、ダウンロードして気付いてのは、iPhoneのホーム画面に表示されたアプリ下の名前です。開発時のプロジェクト名のままでした。
ググって調べると、Xcodeで自ら指定しなきゃならないんですね。iTunesConnectで入力した名前と随分違うのに、よく通ったなぁと思いました。

ノンビリとですが、自分なりに頑張った道のりが何かの参考になればと、ブログに記事として残します。
ちなみに、自分は以下のスキルからのiPhoneアプリ開発スタートでした。
————
●iPhoneの使用歴は2年以上(iPhone3Gs、4s)。
●FlashのActionScriptで簡単なゲームが作れる(functionは使えるがクラスは未経験)。
●C言語は17年前に挑戦したが、ポインタが理解できなくて挫折。
●HTMLやJavascriptは、少し仕事で使う程度。
————

開発の学習から自作アプリリリースまでの道のり

1月 MacBookProをゲット
Xcodeをインストール
「よくわかるiPhoneアプリ開発の教科書」でhelloWorld
「よくわかるiPhoneアプリ開発の教科書」で文字の表示の学習
2月 「よくわかるiPhoneアプリ開発の教科書」で画像の表示の学習
「よくわかるiPhoneアプリ開発の教科書」で画面の回転の学習
「よくわかるiPhoneアプリ開発の教科書」でObjective-Cの基本の学習
「よくわかるiPhoneアプリ開発の教科書」でプロジェクトの作り方の学習
「よくわかるiPhoneアプリ開発の教科書」でWebViewの学習
「よくわかるiPhoneアプリ開発の教科書」で複数画面を切り替える学習
「よくわかるiPhoneアプリ開発の教科書」でTableの表示の学習
「よくわかるiPhoneアプリ開発の教科書」でアイコンや起動画面の設定の学習
iOS Developer Programに年間参加費を払ってみた
3月 「よくわかるiPhoneアプリ開発の教科書」で実機への書き出しの学習
「15歳からはじめる iPhone わくわくゲームプログラミング教室」でObjective-Cの基本の学習
2週間ほどiPhoneアプリを学習するモチベーションが下がり、MacBookを開けるのも億劫になる。『大手メーカーが作らない「B級」iPhoneゲームが売れる50の理由』という本を読んで励まされる。
4月 「15歳からはじめる iPhone わくわくゲームプログラミング教室」で神経衰弱ゲームを作る学習
「cocos2d for iPhone レッスンノート」でcocos2dの基本を学習
「cocos2d for iPhone レッスンノート」で神経衰弱ゲームを作る学習
5月 「cocos2d for iPhone レッスンノート」でシューティングゲームを作る学習
「cocos2d for iPhone レッスンノート」が、なかなか上手く進まなかった。が、ここで悪戦苦闘して壁を乗り越えたことで、Xcode&Objective-Cとの付き合い方が何となく分かってきた気がした。
6月 Xcode4.2.1からXcode4.3.2へアップデート
「15歳からはじめる iPhone わくわくゲームプログラミング教室」で落ち物パズルを作る学習
「世界一わかりやすいObjective-Cプログラミングの授業」で、Objective-Cの基本をさらに勉強する
自作iPhoneアプリを作成開始。背景を配置
秒針を回転させる
時間に合わせて秒針を回転させる
分針と時針を加えて時計の完成
背景を時間に合わせて変える
アイコンと起動中の画面、スタート画面を作る
7月 CALayerにUIImageの図形を描く
実機で画像が表示されない!
暗黙のアニメーションを解除する
8月 CALayerとUIButtonに影を付ける
アプリの規模を予定より大幅に縮小。有料アプリから広告付き無料アプリへ変更し、iAdやAdMobで設定方法に迷う。
iTunesConnectで有料アプリや広告の収入の準備
AdMobを設置
AppStoreにiPhoneアプリを申請
9月 1回目のリジェクトをもらう
リジェクトされたアプリを修正してドツボにハマる
リジェクトされたアプリをAppStoreへ再申請
2回目のリジェクト。
MacBookProの家ローンが支払い終わる。
10月 Xcode4.5へアップデート
3回目のリジェクトで修正に悩む
AppStoreにリリースされた!


ダラダラやってたので、真面目に集中すれば3〜4ヶ月くらいでリリースできたのかもしれません。
今回、私の初めての自作アプリでは「15歳からはじめる iPhone わくわくゲームプログラミング教室」という参考本が、最も活躍しました。クラスを使わずに、メソッドだけでアプリの動きを作るので、機能を追加すればするほど見通しの悪いコードにはなります。ただ、私はクラスを使ったことがなかったので、これをベースにするのが最も作り易かったのです。この方法である程度カタチになってくれば、あとは欲しい機能をググっては付けて行くという作業です。
正直な話、「よくわかるiPhoneアプリ開発の教科書」をやってた2ヶ月は無駄だったかなぁとも思いました(プログラミング自体が初めてなら、モチベーションを上げるのに良いかもしれません)。
あと、「cocos2d for iPhone レッスンノート」のAppStore申請の手順が非常に分かり易くて重宝しました。
それから、4月頃にiPhoneアプリを学習するモチベーションが下がった時期がありました。自分が作成しているアプリのクオリティと、AppStoreに並んでいるアプリのクオリティを見比べてると、ヤル気が一気に無くなるのです。そんなときに、本屋で『大手メーカーが作らない「B級」iPhoneゲームが売れる50の理由』という本が並んでいるのを見付け、何となく買って読んだところ、下がったモチベーションを取り戻すことができました。心が救われました。

こんな感じで、私にとっての初めての自作アプリは何とかリリースできました。

ただ、リリース後も気付いたこと(ホーム画面のアプリ名を直したり、バグを直したり、サポートページを作ったり)があるので、アップデートに向けてやることがありそうです。

また、次回作はゲームを作ってみたいと思っています。課題としては、クラスを使って、スキルをステップアップしたいです。

<追記>
Objective-CではなくFlash Pro CCを使いましたが、ゲームアプリも作る事ができました
</追記>