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

プログラマでありたい

おっさんになっても、プログラマでありつづけたい

iPadの神アプリの作者が書いたiPad本 "iPad 電子書籍アプリ開発ガイドブック"

CloudReaderの中島聡さんが、共著で「iPad電子書籍アプリ開発ガイドブック」という本を出していました。紹介エントリーを読むと、次のようにありました。これは期待と、会社帰りに買ってきました。

編集担当の方から、「これから電子書籍アプリを作ろうという人向けにノウハウなどを公開して欲しい」とのリクエストに基づき、CloudReadersの開発経緯とアーキテクチャを解説してみた。


  iPhone/iPadアプリを作ったことがある人は解ると思いますが、CloudReaderをはじめ中島さんの作るアプリの完成度の高さはまさに神の領域です。画像ファイルのロード一つ見ても、切り替えや拡大縮小のあのスムーズさはどう実現しているのだろうと色々考えていました。例え扱うファイルが巨大であろうが、サクサクです。


 そんなCloudReaderの秘密が垣間見れるのが、この本です。中島さん担当部分は最初の20ページ程だけなのが残念ですが、それでも発見することは沢山ありました。一番意外だったのは、Interface Builderを最大限に使い、かつUIKitのデフォルトのクラスを活用していることです。私は、UIKitをあまり使わずにもっとレイヤの低いクラスでガリガリ実装していると思っていました。ところが、UIImageとかで普通に拡大縮小等をしているそうです。理由としては、次の通りらしいです。

高速なGPUを持つiPhoneやiPadにおいては、できるだけハードウェアにアニメーションを任せることが高速化の秘訣だ。そのためには、viewクラスのdrawRect:でちまちまと一枚ずつアニメーションさせるよりは、UIViewのアニメーション機能を最大限に活用した方が、レスポンスもよいし、消費電力も少なくて済む。

 まさに目からウロコですね。今まで自前でチマチマと実装した方が最適化出来てスムーズな処理が出来ると考えていました。でも、それ以前に何が処理するのかという観点がバッサリ抜けていることに気が付きました。この一節だけでも、この本の価値がありますね。
 あとはちゃんとMVCモデル作れとか、基本の部分を改めて指摘されて、確かにその通りだと思いました。Objective-Cの多くのお手本は、ViewとControllerだけの実装が多く、何となくModelを意識することなく作っていました。やっぱり基本に戻ってMVCを意識しながら作っていこうと改めて思いました。


 他の著者の部分はまだ読んでいませんが、中島さんの部分だけでも満足です。本当を言うともっとソースを公開してもらって、工夫した点の解説して貰えば有り難いですが、まぁそこまで求めるのは厚かましすぎるでしょう。考え方のヒントを得られるだけでも、充分ありがたい一冊です。


関連:
新・iPhone/iPadアプリを作るならば、これを読め!!


iPad電子書籍アプリ開発ガイドブック
中島聡 まえだひさこ 新井英資 向井領治 大原ケイ クレイグ・モッド
インプレスジャパン
売り上げランキング: 180