iPhoneアプリケーション開発の特徴

はじめに、iPhoneアプリケーション開発の特徴をいくつか説明しておこう。

iPhoneは、第一義的には携帯電話である。携帯電話向けのソフトウェアの開発は、従来は組み込み開発という分野にカテゴライズされるものであった。だが、iPhoneアプリケーションの開発スタイルは、組み込み開発というよりもデスクトップアプリケーションの開発に近いと言えるだろう。

これはなぜかというと、そもそもiPhoneのOSはMac OS Xを携帯電話向けにカスタマイズしたものだからだ。従って、プログラミングスタイルも似通ってくる。また、iPhone開発で使うことになる開発環境やフレームワークが、とても充実したものである事も意味している。Mac OS X開発とほぼ同じものが使えるからだ。ここが、従来の組み込み開発とは、大きく異なるところだ。

だから、「携帯電話向けのアプリケーションなんて、開発環境構築するのさえ面倒くさそうだ」などと敬遠する必要はまったくない。現在存在しているものの中でも、もっとも洗練された開発環境の一つが使えてしまうのだ。

その代わり、使用するプログラミング言語も、Mac OS X開発と同じものになる。これは、Objective-C※1というプログラミング言語を使わなくてはいけないことを意味する。Objective-Cは、Mac開発の経験がない限り、ほとんどのプログラマは使った事がないだろう。iPhoneアプリケーションで中心となるCocoa Touchフレームワークがこれで書かれているので、Objective-Cの使用は必須となる。

※1 興味のある方は、本誌連載「ダイナミックObjective-C」を参照してほしい。

新しいプログラミング言語の習得は、通常は多大な労力がかかる。だが、安心してほしい。Objective-Cの特徴は、言語仕様が非常に小さいということにある。少なくとも、C++やJavaと比較すれば、とても小規模な言語だ。C言語と、オブジェクト指向の基本さえ理解していれば、数日で使いこなせるようになるだろう。

実行環境にも特徴がある。iPhone SDKには、iPhoneシミュレータが付属している。これを使うと、開発したアプリケーションをMac上で動かすことができるのだ。これにより、素早いテスト、デバッグが可能になる。

ただし、シミュレータと実際のデバイスでは、やはり多くの差違がある。動作速度も違うし、すべての機能をシミュレートしているわけではない。製品としてリリースする際には、やはり実機での入念なテストは欠かせないだろう。