ピコパコ電子書籍製作所

2011年1月6日 vol.9 プログラミング(2)

プログラミング段階ではトラブルやバグ、エラー等はつきものだ。

今回の作品作りの過程でもさまざまな問題が生じたが、主だったものを2つ挙げておく。

ひとつはエラーではないが、プログラミングの段階で顕在化した問題で、ページをめくるアニメーションの挙動について

今回ページをめくるアニメーションについては、工期を短縮するために、開発キットにあらかじめ用意されたものを使った。そのため、カスタマイズ性に乏しく、意図した挙動が実現できなかった。

具体的に言うと、あらかじめ用意されたアニメーションは、
フリックをきっかけにページはめくれるのだが、決まった「角」からしかめくれない仕様となっていた。
つまり、以下の写真のように必ず右上(ホームボタンが右にある状態で)からしかめくれない。

circus_page.jpg


これの何が問題かと言うと、端末をさかさまに持った時も同じ位置からしかめくれないということなのだ。

通常のアプリでは、端末を180度ひっくり返すと、表示されている内容は全て180度回転する。
今回の作品も端末をひっくり返せば、絵も回転するのだが、ページめくりのアニメーションだけが固定なのである。

したがって、上の絵で考えれば、右から左へフリックした際に、左下の角からページがめくれるというアニメーションが表示されるのだ。

結局この問題については、独自にページめくりのアニメーションを用意することで解決できる。
しかし、今回は早期のリリースを優先させ、端末の持ち方を固定する(端末をひっくり返しても、絵が動かない)という対応策をとることとした。


もうひとつの問題が、メモリの開放について。

このアプリはどちらかと言えば「重い」アプリである。表示される絵が大きくアニメーションも多い。
そのため、ページをめくる度にそれまでメモリに読み込んだデータを解放する命令を記述している。
しかし、その命令が当初は安定して実行されなかった。
偶発的にメモリが解放されることがあるのだが、多くはメモリが解放されることなく蓄積し、操作途中で落ちるという、致命的な欠陥が生じていた。
また、メモリが解放されるかどうかの反応がiOSのバージョンによって異なる点も、原因究明を複雑にした。

最終的にはメモリ解放を行う命令の記述を変えることで、問題無くメモリ解放が行われるようになったが、解決策が見つからなければアプリのリリース自体も危ぶまれる状況だった。

コメントを投稿する

このページの先頭へ