アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

よくわかるiPhoneアプリ開発の教科書【Xcode 4対応版】

August 21, 2011iPhone, Xcode, 書評

仕事で iPhone アプリ開発に携わることとなったため、その道のベテランな方におすすめの開発本をたずねてみた。いくつか良本を挙げていただいた中から、まずは入門書を購入。

推薦に添えて「えらく丁寧に書かれていました」とコメントされていたがその言葉に偽りなし。まさに教科書と呼べる完成度。購入後、書店で他の入門書も手に取ってみたが現時点では本書がベストだと感じた。ではどのあたりが優れているのだろう?私が本書を評価したポイントを、以下にまとめてみる。

豊富で良質な図解

本書の 1/2 近くは何らかの絵で構成されている。量だけでも驚きだがそれらの作り込みも素晴らしい。

例えば Objective-C の説明。

変数を表す図では変数が青い箱、値はオレンジ色の文字となる。続くポインタと配列の解説もこの図を踏襲して表現されるため構造と概念が実に分かりやすい。ポインタの場合、値はアドレスとなり箱の横にはアスタリスクが添えられている。そこから延びた矢印がメモリ上のどこかを指している。

アドレス、アスタリスク、矢印はすべてオレンジ色になっているので、これらは同一、または強く関連付いていることは明確だ。矢印の指す先がアドレスに連動するという挙動も想像しやすい。変数に格納されているのはアドレスであり、それの指す値ではないことまで明示されている。

そして配列。これの図も上手いのだが、何より先にポインタを解説するという構成に感心した。この流れにより配列と呼んでいるものが連続したメモリ領域の先頭を示すポインタであることを理解しやすい。図もポインタとメモリ領域をきちんと分けて描いており余計な誤解を招かないようになっている。

続く NSDictionary の図も同様なので、この構成はポインタの正確な理解に基づいて採用されたものなのだろう。表現すべきものを正しく把握しているからこそ分かりやすい図を提示できる。

オールカラー

開発系の書籍には珍しく本書はオールカラーである。

コスト面を考えたら採用しにくい仕様だが表現力で妥協したくなかったのだろう。実際、本書は色による表現を積極的に利用している。

図解やスクリーンショットは当然として他の部分も実にカラフル。といっても配色はパステル調なので長時間、眺めていても目が疲れにくい。Xcode 4 の配色も似た調であるためスクリーンショットが本文と調和して見える。これは意図的なのだろうか。

ただ残念なのはサンプル コードに色づけしていない点である。せっかく Xcode と似た色調なのだから、こちらも Xcode 風にハイライトして欲しかった。本書に限った話ではないが紙の書籍で見るソースは平坦なモノクロであるため読みにくい。コメントだけでも色を変えるかキーワードをボールドにするぐらいの加工はあってもよいと思うのだが。

丁寧な解説

本書のサンプル プログラム作成ではサンプルごとに毎回 Xcode の起動とプロジェクトを作成するところから始める。選択するプロジェクトのテンプレートもしっかりと書かれている。

その後の手順もなにひとつ省略することなく続き、そのままトレースすれば確実にサンプル プログラムを作れるようになっている。「詳しくは~を参照のこと」というような表現はない。必要な情報は、すべてその場に書いてある

戸惑いそうなところは手順の側に「ワンポイント」や「どういう意味?」という小コラムを配置して補完。疑問すらその場で解決するように徹底しており、実に隙のないつくり。サンプル プログラムを作成しながら学ぶ本において手順がどれだけ丁寧に書かれているかはとても重要なポイント。

通常の文章と異なり手順書に省略は禁物である。どれだけ冗長に感じられても読者が追体験できるよう、あらゆる操作と状態を記述しなければならない。この点を誤るとハマりどころの多い手順になる。たったひとつ押すボタンを抜かしただけで読者は混乱するものだ。

私自身、そういう手順書に悩まされたし同様のミスで人を混乱させたこともある。それだけに本書の丁寧さには感心させられる。

まとめ

ここまで完成度の高い入門書が存在することに iPhone アプリ関連の市場が成熟していることを感じる。同時にこのレベルを満たしてこそ入門書と呼ばれるに相応しいのではないか?とも。

技術書を選ぶ際の基準が一段階、高くなってしまった気がする。特に入門書は本書と比べてしまいそうだ。

Copyright © 2009 - 2020 akabeko.me All Rights Reserved.
Designed by akabeko.me