iPadアプリ開発日誌:CloudReadersのアーキテクチャの解説を書きました
2010.08.23
編集担当の方から、「これから電子書籍アプリを作ろうという人向けにノウハウなどを公開して欲しい」とのリクエストに基づき、CloudReadersの開発経緯とアーキテクチャを解説してみた。
ノウハウとは言っても、基本的には「ちゃんとMVCで作れ」「できるだけCPUじゃなくてGPUに仕事をさせる」「Interface Builderを最大限活用して、UIとロジックを分離しろ」などの話なんだが、実際のアプリを題材にそのアーキテクチャを語っているので、その手の「基礎」と「応用」のギャップをなかなか乗り越えられない人には良い教材だと思う。
ちなみに、アーキテクチャの解説部分は、
ユーザーが読みたいドキュメントを選択するとロードされるのが、ComicReaderViewControllerだ。これが「他のリーダーよりも、はるかにサクサク動く CloudReaders」の評判を支える知恵の固まりである。
ComicReaderViewControllerの初期化は、initWithBook:メソッドの呼び出しで行われる。ユーザーがライブラリの中からドキュメントを1つ選択したことを感知したRootViewControllerは、ComicLibraryから選択されたドキュメントに相当するComicReaderBookオブジェクト(後述のModelクラスの1つ)を取り出し、それを新しく作ったComicReaderViewControllerオブジェクトのinitWithBook:メソッドに渡す。さらに、view stateからそのドキュメント向けのview stateを取り出して、restoreViewState: メソッドを介してComicReaderViewControllerに渡す。...
の様にソースコードを交えて書かれているので、iOS上での開発経験の全くない人には少し辛いかもしれない。iOS上でアプリを作りはじめてみたものの、Interface Builderがうまく使いこなせない・View/Controllerの切り分け方が分からない・アプリがなかなかサクサク動いてくれない、ぐらいの人にちょうど良いだろう。
C言語とVBしか知らない初心者で、iPhoneApp開発を勉強している25歳です。ひよっこですが、私は、iPhoneアプリの開発を通して、MVC(ViewController+InterfaceBuilder)やDelegateなど、Appleが明確に提示するアーキテクチャー、開発思想を学習できるのが、すごく楽しいです。また、提供されている英語のドキュメントを読む度に、いつも「すごい!すごい!」ってワクワクしてます。Objective-Cも最初は全く読めませんでしたが、次第に理解するにつれ、オブジェクト指向を学ぶにはとってもいい言語なんじゃないかと、初心者ながら感じてます!中島さんがおっしゃる通り、iPhoneApp開発はとっても魅力的です!
Posted by: 新米プログラマー | 2010.08.24 at 08:58