iPhoneアプリ作成までの道のり3

3. Objective-Cの言語仕様を覚える

これまでのこと、即ちC言語(しっかり)とオブジェクト指向(ある程度)が出来ているならば、Objective-Cを覚えるのは至極簡単である。入門書を購入するまでもない。ここのサイトが良い。まじおすすめ。ページのエンコーディングShift_JISであること以外、内容とボリュームは完璧だと思う。

ここで、いきなりXcodeiPhoneアプリの作成に着手するのは得策ではない。私は、この時点ではXcodeを使わないことを推奨する。これはVisual C++にも同じことが言える。新しい言語を覚えるときにIDEを使ってGUIの作成から始めるのは、百害あって一利なしだ。iOSは4つの層からなるアーキテクチャで構成されており、それぞれの層に実装されている機能が膨大すぎるのだ。いきなりそいつらと対峙しても、面食らうだけで何も得る事はできない。それに、まともに動くアプリを作る前に、まず乗り越えておかねばならない試練が3つある。それについては後で説明する。

ともかく、まずは言語仕様をきちんと理解することだ。ここは慎重に。慎重に上記の参考サイトを学んでいけば、1週間もあれば言語仕様は十分に理解できるはずである。プログラミングというのは、ただ解説を読むだけでは身に付かない。実際にすべての機能を使ってみることが重要である。この時点では、ソースコードテキストエディタで作成し、コンパイルgccやclangで行うことを推奨する。作成するテストプログラムは、当然コンソールアプリケーションが良い。

言語仕様を一通り把握したら、トレーニングとして、5〜10クラス程度の、何か自分にとって都合の良いプログラムを書いてみるのが良い。会社の新人教育ならば、実際に稼働しているプロジェクトの中で適当なクラス(画面やGPS機能など、iOS特有の処理を含むものはNG)をいくつか割り振ってやる。あるいは、そういった状況を想定した、練習用の題材でも良い。自分で作ってみたいものがあるというならば、それが一番良い。ただし、ボリュームが大きすぎても、小さすぎてもダメだ。

さて、ここで、まず間違いなく、最初の試練が訪れる。

それは、メモリ管理をどうしたら良いのか、だ。
より具体的には、Objective-Cの初学者は、オブジェクトへ割り当てたメモリを、いつどこで誰が解放すれば良いのかを判断できないのだ。クラス数が増えていくに連れて、混乱を生じるようになる。Cとは異なり、参照カウンタが言語レベルで実装されており、更にそれはpropertyのsynthesizeによって煙に巻かれたりするので、Cでまともにメモリ管理ができていた人ですら混乱することだろう。ここで初めて、メモリの割り当てと解放についての明示的なルールが必要だということを学ぶ。