blogTitle.png
p < .05 公式ブログ
永遠よりも長い60秒
iOSアプリを作る | comments(0)

「このアプリにはバグがあり、起動画面が延々と表示され続ける」
ゴルディアスの結び目バージョン4.1.1の審査通知書=不採用通知が届いた。

ゴルディアスの結び目を起動すると起動画面(Launch Screen)がしばらくの間表示されるが、iOSの仕様として起動直後に表示されることになっている本物の起動画面は、ほぼ一瞬で消えている。ではゴルディアスの結び目で表示されているのは偽物の起動画面なのかといえばその通りである。

この遊びの性質上、プレイヤーの現在地の座標が正しく測定でき、その結果を地図上に正しく表示できるようになってから、アプリの操作が可能になるようにしたいと考えている。そこで、このアプリでは、位置情報サービス(GPS)が安定し、地図表示の仕組み(MKMapView)が安定するまで偽物の起動画面を表示し続け、操作不能の状態としているのである。このような仕組みを導入していなかった初期バージョンでは、プレイヤーの実際の座標とは無関係な位置のノットがほどけてしまうという不具合が発生することがあった。

※現在の仕様でもそれを完全に防止できているかどうかは不明。

しかしながら、環境によってはいつまで経ってもGPSが安定せず、いつまで経ってもMKMapViewの初期化が終わらないといったことがありうるのである。そのような場合、偽物の起動画面が「延々と表示され続ける」ということになってしまう。それでは具合が悪いので、アプリの起動から60秒が経過しても上記の条件が満たされなければ、そのままの状態でアプリを使用可能にしてしまうようになっている。もちろん、その時点で偽物の起動画面は消える。

ゴルディアスの結び目のバージョン4.1.1は、4.1.0を微調整したものであり、基本的なアプリの仕組みは変えていない(変更内容)。
であるから、(偽の)起動画面がいつまで経っても消えないといったような大きなバグが混入しているとは考えづらいのである。推測するに、アプリのレビューワーの環境で、いつまで経ってもGPSが安定しない、またはMKMapViewの初期化が終わらない、あるいはその両方が生じてしまったのではなかろうか。そのまま60秒まってもらえれば、アプリは操作可能な状態となったはずであるが、レビューワー氏はそれを待てなかったのかもしれない。

もちろん、それとは別の理由で本当にフリーズしていた可能性もある。しかし、どうしても原因が特定できなかったので、最長待ち時間を60秒から30秒に短縮して再申請することにした。そのことが功を奏したのかどうかはわからないが、最終的にアプリはAppStoreで公開されることになったのだった。

今回のケースから、Apple社のレビューワーが求めているのは、きわめて軽快に動作するアプリなのではないか、という推測が可能である。最長60秒の待ち時間などというものは、その価値観からは大きく逸脱した仕様なのかもしれない。また、偽物の起動画面を表示中に、現在アプリのメイン画面は出していないが、決してフリーズしているわけではない、ということをより強くアピールするような画面表示をすべきだったのかもしれないとも思っている。一応、SVProgressHUD(リンク)を表示していたのではあるが、もう一押し必要だったと反省している(ではどうするか?)。

30秒以上経っても起動画面が消えないケースがあれば御一報いただきたい(御一報ください)。




コメント