「iOS開発におけるパターンによるオートマティズム」という書籍がでていたので読んでみました。著者はタノココの木下 誠さん。OS Xも含め長年のCocoaデベロッパーの方が執筆された本ということもあり、洗練されたパターンが詰め込まれています。
iOSにおけるデザインパターンを、RSSリーダーのアプリケーションを例に説明されていますが、単純なデザインパターンの説明ではなく、背景や別の考え方なども交えて説明されているので、わかりやすいです。説明されているパターンは基本的でよく使われるものがほとんどで、他の書籍やサンプルコードをある程度読んできた人、既に数年程度Cocoaの開発をしてきた人には目新しいトピックは少ないかもしれません。
ただ、Cocoaの開発経験が少ない人には強くおすすめしたい一冊です。一人でアプリを一つ作れるようになったら、この本を読めばその先のアプリ開発の品質は確実にあがると思います。
Objective-Cで書かれたコードを読んでいると、設計/構造が不適切だと感じる機会が他の言語のコードより多いような気がします。ある程度経験がありデザインパターン/オブジェクト指向を理解されている方でも、なぜかObjective-Cのコードを書くと不適切になってしまう場合がとても多いように思います。
おそらく、Cocoaフレームワークの設計思想が他の言語に比べると少し変わっていて、他の言語におけるデザインパターンをそのままiOSアプリ用に実装しようとした結果、Cocoaフレームワーク内で用意されている機能との相性が悪い、不適切な構造が生まれてしまうのだと考えています。勿論試行錯誤をして、独自のノウハウを蓄積したCocoa用のパターンを作っていく事も可能ですが、そうするとチームでの開発においてはインピーダンスミスマッチが発生しやすくなってしまいます。そして、独自のパターンを他人に理解してもらうのには結構コストがかかります。
そんな中で、この本はCocoaフレームワーク(とくにCocoa Touch)の考え方に触れながら、iOS用のデザインパターンを説明してくれています。一般的で基礎的な内容がほとんどですが、この本の中で説明されている内容を全員が把握しておけば、その後チーム開発では効果が見込めるのではないかなと期待しています。
ひとつ、ブロックが登場しないのが残念です。個人的にはブロックの登場と普及(iPadにも対応した)によって、Objective-Cにおけるデザインパターンは大きく見直されるべき時期にきていると思うので、今後そういった本がでてくることにも期待したいです。