Xcodeは、Mac OS Xで動作する統合開発環境(IDE)です。当初Mac OS X用GUIアプリケーションおよびコンソールアプリケーションの開発ツールとして提供されていましたが、2008年7月にリリースされたXcode3.1以降では、「iPhone SDK」がプラグインとして別途提供され、iPhone用のソフトウエアを作成できるようになりました。なお、2010年のiPadの登場により、「iPhone SDK」は「iOS SDK」と名称が変更されています。iOS SDKには、iOSアプリケーションをMac OS X上でテストするための「iOSシミュレータ」が含まれているため、実機無しでも開発が行えます。Xcode 4.0以降ではパッケージ内にiOS SDKが同梱されて配布されるようになりました。

 Xcodeは米Apple社が提供していますが、すべての機能がAppleのオリジナルというわけではありません。コンパイラなどのツール群にはオープンソースが使用されています。

 例えば、コンパイラは当初、GNUプロジェクトによる「GCC」が採用されていました。この1月にリリースされたばかりのXcode 4.6では、高速性に定評がある「LLVM」をAppleがカスタマイズした「Apple LLVM Compiler 4.2」がデフォルトのコンパイラとして採用されています。

 Xcodeを使用したMac OS用およびiOSアプリケーション用の開発言語には、基本的に「Objective-C」が使用されます。Objective-Cは、「オブジェクト指向のC言語」といった意味にとれますが、その名が示す通りC言語にオブジェクト指向の機能を追加したものです。そのため、C言語とは完全に互換性があり、C言語の機能はそのまま使用できます。

 またメソッド名やキーワードも長いものが多く、そのため一つのステートメントが長くなりがちです。例えば、日付時刻を管理するNSDateオブジェクトのインスタンスを生成するステートメントは次のようになります。

NSDate *date = [[NSDate alloc] initWithString:@"1959-04-04 00:00:00 +0900"];

 Objective-Cのソースファイルの拡張子は「.m」になります。ヘッダファイルの拡張子はC言語と同じで「.h」です。

Xcode 4.6の機能

 最新版の4.6は、「ストーリーボード」と「ARC」という二つの重要な機能があります。これらについて簡単に紹介しておきましょう。

 「ストーリーボード」(storyboard)とは、iOSアプリケーションのGUIをビジュアルに構築する機能です。iOSアプリケーションでは基本的に一つの画面を、画面の要素を構成する「ビュー」とそれを制御する「ビューコントローラ」のペアを使用して構築します。ストーリーボードは、従来の「nib」*1に代わる機能です。

 ビュー部分はこれまで、ソースファイルとは別の「nibファイル」と呼ばれるGUIのデザインが書き込まれたファイルとして作成できました。nibファイルの編集は、GUIのデザインツールである「Interface Builder」のデザイン画面を使用してグラフィカルに行えます。

 ただ、基本的にnibファイルは画面ごとに用意しなければならず、複数の画面から構成されるiOSアプリケーションではこれまで、画面の遷移部分はユーザーが自分でプログラミングする必要がありました。それに対して、ストーリーボード機能は、それぞれの画面を「シーン」として管理し、そのシーン間の遷移(segue)をビジュアルに構築できます。シーン間の切り替え時の視覚効果も自由に設定することが可能です(図1)。

図1●ストーリーボード
[画像のクリックで拡大表示]