今日は「iOS開発にはだいぶ慣れてきたけど、もっと効率良く作りたい」
「設計に自信がない」「MVCモデルがよくわからない」
という方の参考になりそうな本を紹介します。

http://www.amazon.co.jp/iOS開発におけるパターンによるオートマティズム-木下-誠/dp/4861007348www.amazon.co.jp

概要

RSSリーダーのサンプル(ソースコードを公式サイトからDLできます)を題材に、
ユーザーインターフェイス、クラスの設計や
Cocoa touchフレームワークの代表的なクラスを使って実装する際に
”効率的に”行うためのパターン、定石を解説しています。

この本でいう”パターン”は具体的なサンプルソースの形で提示されていますが、
コピペでそのまま使えるというよりは、自分のアプリの仕様に合わせて
考え、修正することが必要になるものです。
結局はそこから学んだ"設計の考え方"がパターンということになるのではないかと思います。

しかし、解説を読んで「なぜそのように作ると良いのか」を一度理解できれば
少なくとも下記の3つの点で効率化が期待できそうなんです。

期待できる3つの効率化

効率化その1。MVCモデルという設計の軸、型ができることで
データの持ち方、クラスの分け方など「設計に悩む時間」の軽減に繋がります。

次に、設計の基本部分が共通化されることにより
以前書いたソースコードを流用が楽になります。これが効率化その2。

それから効率化その3、設計がきちんとされていることにより、
アプリ開発につきものの追加、修正がしやすくなります。
つい最近、なんでもかんでもViewControllerに突っ込まれているし
グローバル変数だらけだし、ちょっとでも処理の流れが変わるとどうにもならないという
悪夢のようなソースコードを仕事で見ましたが、
そんな悪夢を未然に防ぐためにも、やはり適切なクラス設計を
最初にしておくのがとても大事だと思います。

しかし内容が古すぎる

設計、Cocoa touchフレームワークの使い方の型を学ぶという点では
参考になるこの本ですが、残念ながら内容はとても古いです。
2011年2月初版ですので、Xcode3のころの内容。
サンプルソースにあるAPIが非推奨になっているものもいくつかありますし、
そもそもプロジェクトの作りが違いすぎて
最近開発を始めた人にはさっぱりわからないかもしれません。
そう思うと本当技術の変遷が早いですねー。

かくいう私もXcodeは4からなので、サンプルソースは見慣れない形も幾つかありましたが、
今回勉強のためXcode6で作成したプロジェクトに移植し、動作させることができました。
非推奨メソッドや今はもっと楽にできるようになっている部分の置き換えにより、
単なる書き写しより勉強になった気がします!
取り扱っているCocoa touchフレームワークのクラスは
UITableViewなどとても基本的なものなので、その部分は今でも有効だと実感できました。

願わくば、Swift & Xcode6対応の新版が出て欲しいところです。