もっとラクにできたのに

アプリケーションを開発する過程で、作った後になってから「もっとラクにできたのに」という点を書き記していく所 魅了屋という零細デベロッパーが書くよ https://www.miryoya.com


↑広告

ちょいとしたチャレンジをしてみたかったんだ

ふと思い付いて一日でアプリが出来るか試してみた

今作っているアプリの進捗が良くない。具体的には、仕様変更をしなければならず、面倒臭いと言うオーラが身体を包んでいて離れない状況である。何となく別の事をしたいと思っていた1月20日の午前であった。そこで、気分転換も兼ねて、一日以内でアプリを完成させ、審査手続きまでステータスを進める事が出来るかやってみた。

 

まず企画

「賽の河原」という言葉を思い出した。幼くして亡くなった子供がひたすらに石を積む。目標の数まで積み上がると救われるのだが、あと少しの所で鬼に壊され、最初からやり直すというのを永遠と繰り返す、無駄な事の例えに良く使われる言葉である。これをテーマにして、石を積んでも積んでもリセットされるゲームアプリにした。

 

グラフィック

余りグラフィックにかける時間と技量が無いのと、あえて不気味さを出すために、文字だけで構成する事とした。アイコンも文字だけである。クオリティの高いアプリが全盛のこの時代には逆に目立つかも知れないが、それは実際にストアに並んでみないと分からない。

 

ゲームシステム

play.google.com

100万のタマゴというクリックゲームがあるが、これを参考にしてクリックすると石を積まれていき、あと少しの所でリセットされるという仕様にした。積む石の数は100に設定し、100個石を積めるとゲームクリアという目標も設定した。

 

プログラミング言語

言語はSwiftを使用し、対象OSはiOSのみとした。使用IDEXcodeAndroidはやった事ないので今回はiOSに一点集中トライという作戦を採用する。

 

画面構成

画面はタイトル画面、ゲーム画面、info画面の三画面で構成する。クリア回数やハイスコアは今回のバージョンでは採用せず、審査通ったら今後のアップデートをで対応する事にした。最初はUILabelとUIButtonの二つで画面を構成しようとしたが、AutoLayoutの調整に時間が掛かるため、タイトル画面などの一部はImageViewを利用し、画像を採用した。しかし画像と言っても手順はテキストエディタで文字打ってキャプチャしてはい出来上がりという方法なので、文字だけと言う世界観は崩れていない(誰も求めてないと思うけど)。

 

コーティング

石は数で表し、見た目はカウンタアプリの様にしようと思った。しかし、英数字で表示では能が無いと思ったので、漢数字で石の数を表示するようにした。仕組みは簡単で、数字の位ををそれぞれ10で割った数(10の位)と余りの数(1の位)をSwitch文で仕分け、それぞれ当てはまる漢数字をLabelで再結合して漢数字を表示させた。鬼に石の山を崩される仕組みは、一定の石の数からランダム関数で数字を呼び、ある条件に合致したら石を崩しリセットする。

 

仕上げ

iOSには、AndroidOS対応機種ほどでは無いにしても、幾つかの画面サイズがあり、それぞれに対応する必要がある。iOSの場合はまず大きな括りとしてiPhoneiPadというのがあるのだが、今回はiPhoneのみに対応させ、iPhoneの中でも4、4.7、5.5インチの画面に対応させる設定とした。相変わらずAutoLayoutの調整に手間取る。ここに半分近く時間を費やしたと思われる。イライラしながらも泣き言は言っていられない。とにかくゴールへ進むのだ。他にもスプラッシュ画面が出なかったりもしたのだが、色々と設定をいじっていたら表示されるようになった。

 

審査提出へ

1月20日の17時過ぎに一旦審査を出そうとしたのだが、すぐに表示の不具合に気付き修正を余儀なくされた。この日は18時までしか開発が出来なかったので、この日の審査提出は諦めた。次の日の午前から作業を再開した。相変わらずAutoLayoutの調整に難航したが、14時前に審査提出が出来た。1月20日10時から作業を開始し、同日18時に作業打ち切り、次の日の10時半から14時前まで作業をしたのでトータル12時間位で審査提出へ持ち込めた。

 

完成品 

f:id:waspossible:20170125160638p:plainf:id:waspossible:20170125160705p:plain

f:id:waspossible:20170125160746p:plain

この作業量であれば、半分から三分の二位の時間で仕上げなければいけないのかなと感じた。プログラミングで詰まった所は無かったが、AutoLayoutの調整や、細かい所が目に付いたら修正しないと気が済まず、先に進めない性格によって時間をロスしてしまった。この点は今後修正していかないと、規模が大きなアプリケーションの場合、より手順と時間の回り道をしてしまう事になる。中々難しいが、クリアしなければならない課題である。とにかく企画を立てて、数を作って慣れていくしかないんだろうなと思ったチャレンジだった。

 

その後

f:id:waspossible:20170125161239p:plain

審査落ちた。

この規模のアプリケーションが審査を通過したらそら他の人は怒りますよ。おそらく数年前なら通過する可能性もあったかもしれませんが、今は時代が違うし、クオリティやアプリの有用性が明確である事が求められるようになっていると思われる。ちなみにだが審査を待っている間、謎の高熱に浮かされ、医者に行って「インフルでは無いと思いますが一応検査しますね」と言われて検査をし、結果が出るまで1〜2分掛かる検査キットでわずか10秒でインフル陽性の反応が出てお互い気まずくなった経験をした。何となく審査側の「こんなアプリ審査させやがって、呪うぞ」という声が届いたのかも知れないし、そうでないかも知れない。

 

とにかく今言える事は、インフルを治して本命のアプリを早く作ろう。という当たり前の事を当たり前に言うしかないと言った所だろうか。

 

平熱になって二日目の16時半前