開発者から見て、iPhoneとAndroidはどう違うのか。ITproの記事を読むためのiPhoneアプリAndroidアプリを開発し、「オール・イン・ワンiPhone開発」と「Androidで広がる、携帯アプリ開発の世界」とを執筆したアシアルが両者の違いを解説するシリースの第4回。今回は、開発環境という観点から両者を比較する。

 かつて日本国内において、携帯電話向けアプリケーション・ビジネスに個人のデベロッパが参入することは、その莫大な参入コストゆえ、かなり厳しいとされてきた。しかし、iPhoneやAndroidに代表されるスマートフォンの台頭によってその構図は大きく覆され、今や「日曜大工」的に自作のアプリケーションを公開する個人のデベロッパが急増している。

 このように、個人のデベロッパにとっての参入障壁がグッと低くなった要因の一つに、「アプリケーション開発環境の構築のしやすさ」がある。そして、その開発環境を構築する上で必要不可欠となるのが「ソフトウエア開発キット」、通称「SDK」と呼ばれるコンポーネント群だ。

iPhone SDKの要Xcode

 iPhone SDKは、iPhone開発環境のベースとなる「Xcode」「Interface Builder」「Instruments」「iPhone Simulator」などのコンポーネントで構成される。アプリケーションの設計から実装、デバッグ、パソコン上でのシミュレート、パフォーマンスの検証など、開発を進める上での一連の工程のすべてを、このSDKに含まれるコンポーネントを使って効率的に行うことができる。

 中でも、開発者にとって最も重要なのがXcodeだ。Xcodeは、Appleの提供する総合開発環境(IDE)であり、プロジェクトの管理やエディタ、コンパイラ、デバッガなどの機能を含む。

Xcode

 iPhone SDKは、Appleのデベロッパ向けサポートプログラム「Apple Developer」内にある「iPhone Dev Center」で配布されている。SDK自体は無償でダウンロードできるが、インストールにはIntel MacおよびMac OS X Leopard以上が必須条件となる。それ以外のプラットフォームは、残念ながら現状ではサポートされない。

iPhone Dev Center

iPhoneの開発言語はObjective-C、制限に注意

 ネイティブ・アプリケーションの開発言語としては、Objective-Cが公式にサポートされている。同じくC言語をベースにオブジェクト指向機能を取り入れたC++とは言語仕様が大きく異なり、「オブジェクト指向の元祖」と言われるSmalltalkの影響を全面的に受けている。初学者は、独特とも言えるその言語仕様に多少とまどいを覚えるかもしれない。

 iPhoneプラットフォームには、Appleの課した様々な制限が付きまとう。iPhone SDKで提供されるAPIにもやはり制限があり、iPhone OSに備わるすべての機能が使えるわけではない。公式のドキュメントに記述されていないAPIを使用するとiPhone SDKの規定に反するため、公開の認可が行われない可能性がある点に注意が必要だ。