Cocoaプログラミングにおいて,インターフェイス・ビルダー(Interface Builder: IBと略)の存在は大きいものです。昨今,たくさん出版されたiPhone向けのプログラミング本の多くも,まずはIBを使ってアプリの画面をデザインすることを紹介するところから始まります。
IBは,その名前の通り,操作画面(インターフェイス)の構築(ビルダー)を行なう開発ツールです。まずは見た目をデザインして,あとから動作をプログラミングすることが出来るため,直感的とも言われます。
しかもIBは,Cocoaプログラミングのパワーを利用しているので,コードを書くようなプログラミングをしなくても,IB上でインターフェイスを構築する操作の延長だけで,簡易なプログラムを完成できてしまう機能も持ちます。
今日ではVisual BasicやFlashなどもポピュラーになり,この手の開発方法も目新しくはなくなりましたが,IBが登場した時代において革新的であったことに間違いはありません。
--
しかし,IBが出来ることにも限りがあります。IBを起動してご覧いただければわかりますが,最初こそまっさらで分かりやすそうな顔をしています。ところが操作を始めて作業が進むと,次第に扱う要素や項目が増えて,全体を把握することが難しくなってくることに気がつきます。
さらにIBで構築した画面を踏まえてコードによるプログラムを付け加えていく過程でエラーが発生すると,どこに問題があるのか追いかけることが難しくなるのです。IB上での作業の間違いなのか,コードの間違いなのか,あるいはその2つの接続部分なのか...,判別するだけでも大変です。
そういう場合,ほとんどがIBでの設定忘れや接続間違いといった原因です。IBが用意する多彩な設定項目は柔軟性の象徴ではありますが,同時に,設定間違いを見落としがちな原因を作っているのです。
--
もしCocoaプログラミングを本格的に挑戦したいということであれば,遅かれ早かれIBを使わない脱IBプログラミングにステップアップする必要が出てきます。
「画面の部品を直感的に配置することが出来る」というIBの道具的なメリットを除けば,IBの操作で実現できることは,コードを直接書いて実現できます。
特にiPhoneプログラミングは,Macと違って画面が320x480と比較的狭いため,自分で方眼紙に画面設計図を描いて,座標数値をコードで手入力しても労力はたかが知れています(その部分だけIBを利用して,座標をメモれば楽ですね)。
このような脱IBプログラミングをすることによって,iPhoneのより高度なアプリ開発へステップアップすることも可能です。少なくとも,IBとの組み合わせで複雑化してしまうことを避けることが出来ます。
--
もちろん,IBを完全に捨てる必要はありません。実際,IBはパパッと画面を作るのには便利です。直感的であることのメリットが全くなくなったわけではないのです。
そのようなIBの存在を前提にしながら脱IBプログラミングを目指すことによって,初級から中級へのステップアップが出来るというところに,Cocoaプログラミングの楽しさがあります。
ちなみに,このようなコードベースのiPhoneプログラミングについて書いているのが鳥の絵表紙の『iPhone SDK アプリケーション開発ガイド』(オライリー)です。プログラミングに慣れた方々の評価も高い本です。ただし,内容はSDK2.0ベースのため,新しい機能については触れられていません。
同様にSDK2.0ベースですが,脱IB(コートベースの)プログラミングへ誘ってくれるのは『iPhoneデベロッパーズクックブック』(ソフトバンククリエイティブ)です。日本で最初に翻訳出版されたiPhone開発本ですが,実はコードベースのプログラミングによる本だったという点は興味深いです。
アップル社の公式ドキュメント(開発関連文書)は,大半が英語のままで,日本語の翻訳されたものも限られるため,かなり敷居が高く受け止められていますが,実は結構親切な説明をしてくれています。
日本語にも翻訳されている『Coding How-To's』という文書は,よく使うコードの塊を整理して紹介してくれているので,IBでIBで実現していることをコードでどう書くのかを知るのを手伝ってくれます。
またコードに慣れた頃に,全体を見渡すつもりで『iPhone OSプログラミングガイド』を読んでみると,コードの背景がハッキリしてくるのを手助けしてくれるかも知れません。少々手強いので,技術解説文書に慣れていない頃にはチンプンカンプンかも知れませんが,必読であることには変わりありません。
さらにアップル社としては『iPhoneヒューマンインターフェイスガイドライン』という文書も必ず読んで理解して欲しいと望んでいます。オリジナリティ溢れる独創的なアプリを開発する人たちにとっては目の上のたんこぶみたいな文書ですが,ベースとなるiPhoneに込められた設計思想を知ることも大事でしょう。
以上の公式ドキュメントは,バージョンはともかく日本語翻訳されていますので,開発を進めていく過程で目を通すことをおすすめしておきます。
書籍もそうですが,サンプル(書籍付録やアップル公式のもの)をいろいろ見ていくことも重要ですね。