今回から始まった「目指せ!iPhoneアプリ開発エキスパート」 。iPhoneアプリ開発について解説します。第1回目は、iPhoneアプリ開発をするうえで最初に知っておきたい基礎知識を中心にお届けします。
アプリ開発者から見るiPhoneの特色
iPhoneはときおり「革新的なデバイスである」などという表現とともに紹介されることがあります。その言葉が表す通り、単なる「iPod付き携帯電話」にとどまらず、iPhoneは魅力的な特徴がたくさんあります。ここではアプリ開発者が特に意識するであろうiPhoneの特色を見てみましょう。
携帯電話にはあたりまえの方向ボタンや数字キーがない
アプリ内で使われるボタンやスイッチなどのパーツが統一されている
限られたボタンしかない代わりに、本体のほぼ全面をタッチパネルとしたiPhoneでは、アプリ開発者は従来のようにボタンの種類や数に制約を受けることなくインターフェースを設計することができます。好きなときに、好きな形のボタンを、好きな場所に配置することができるのです。またボタンだけでなく、スイッチやスライダーといったタッチパネルにはもってこいのパーツも利用することができるようになったのです。
ボタンをはじめとするこれらユーザが操作するパーツは、あらかじめ用意されているものから選択することができます。もちろんこれらを使わずに、独自の形状、独自の操作ができるパーツを自分で作ることもできます。しかし、あらかじめ用意されている標準のパーツを活用することによって、統一感のあるユーザインターフェースを作ることができるだけでなく、ユーザーは操作に戸惑うことなく慣れ親しんだパーツを直感的に使うことができる、というわけです。
iPhoneアプリを作るために必要なもの
なにはともあれ、まずはアプリを作るための道具が必要です。次のものを用意します。
Mac本体(インテルのCPUを搭載したもの)
Mac OS X v10.5(Leopard)以降
たったのこれだけ。開発に必要なソフトウェアは、アップルから無償で提供されています。つまり、そこそこ新しいMacがあればすぐにでも開発ができるというわけです[1] 。この他、iPhone 3GまたはiPod touch本体があると、作ったアプリを実際にインストールして動かすことができます[2] 。ただし、初代iPod touchで開発を行うためには、本体バージョン2.0以降へのソフトウェアアップデート(有償)が必要です。
Cocoa TouchとXcode
Cocoa Touch
冒頭で述べたように、iPhoneアプリの開発環境では画面を構成するためのいくつかのパーツがあらかじめ用意されています。実際の作業では、これらのパーツを画面上に配置し、それぞれのボタンが押されたり、文字が入力されたりした場合の処理を記述していきます。これを実現するのが「Cocoa Touch」と呼ばれるアプリケーションフレームワークです。iPhoneアプリ開発者は、Cocoa Touchを利用することにより、デバイスの特性や画面描画の仕組みを意識することなく、洗練されたインターフェースを画面上に簡単に構築することができるのです。
また、Cocoa Touchを使うことでiPhoneに備わる以下のような機能をアプリから簡単に利用できます。
カメラで写真を撮影
アプリからカメラを起動して、その場で写真を撮影して使うこともできます。またすでにカメラで撮影している写真やiPhoneに保存されている画像を使うことができます。
現在位置を取得
iPhoneは現在位置を取得する方法として、GPS、無線LAN、基地局の3つを使用します。アプリからはこれらを意識することなく、最適な方法で現在位置を取得することができます。
Xcode
Cocoa Touchを理解することは、iPhone開発を始める上でとても重要です。しかしながら、開発を進めていくうえでこのCocoa Touchの存在を強く意識することはありません。まるで矛盾しているように思えますが、その秘密を解く鍵は「Xcode」というツールが握っています。
XcodeはMac OS Xに付属する無償のソフトウェア開発環境で、iPhoneアプリの開発もこれを使って行います。画面上にボタンを配置したりアクションを設定したりする「Interface Builder」や、開発中のアプリをMac上で動作させるための「iPhone シミュレータ」もこれに含まれます。つまり、XcodeひとつでiPhoneアプリ開発のすべてが完結する、というわけです。
Xcodeを使ったiPhoneアプリ開発中の様子。画面構成をパーツを組み合わせて作っていく
基本は配置されるパーツとアクションのマッピング
Cocoa Touchに話を戻しましょう。Cocoa Touchの基本は、iPhoneの画面上に配置されるパーツとそれに結び付けられたアクションです。ボタンが押されたらどういう文字を表示するのか、文字入力エリアに数字が入力されたらどういう計算をするのか、そういったユーザの操作を検出して何かの機能を呼び出す仕組みを、ハードウェアやOSなどの難しい仕組みを意識することなくXcode上のドラッグアンドドロップ操作で組み立てることができます。このようなとても直感的なアプリ開発環境を支えているのがCocoa Touchの存在であると言えます。
ここで述べた以外にも、Cocoa Touchで実現できる魅力的な機能は山ほどあります。まるで宝探しのようにこれらの機能を探していく感覚は、iPhoneアプリ開発の楽しみの1つと言えるでしょう。
Objective-Cという言語
パーツとそれに紐づくアクションを選択したら、次はアクションの中身、すなわちiPhoneにどういう動作をさせるのかをプログラミングしなければなりません。ここで登場するのが、Objective-Cというプログラミング言語です。iPhoneの開発には基本的にこのObjective-Cを用います。
新しいプログラミング言語に触れるには、それなりの勇気が必要かもしれません。しかし、Objective-CはC言語の拡張であるがゆえにC言語と共通している部分が多く、さらにCocoa Touchにおいて自分の手で書く必要のあるコードは限定的で、とても簡単なものです。過去にC言語やそれに似たプログラミング言語に触れたことがある方ならば、最初はすんなりと入っていけることでしょう。より詳細なObjective-Cの言語仕様を学ぶことは、それなりにiPhoneアプリ開発の経験を積んでからでも遅くはありません。
いざ、iPhoneアプリへの第一歩
道具さえ揃ってしまえば、何もおそれることはありません。無料で提供されている開発ツールを使えば、とても簡単にiPhoneアプリを作ることができると同時に、iPhoneのフレームワークであるCocoa Touchや、開発言語であるObjective-Cを学ぶことができます。
まずは手のひらサイズのデバイスで、自分で作ったアプリが動く楽しさを味わってみて下さい。iPhoneアプリ開発をこれから初める人に必要なものは、知識ではなくiPhoneアプリを作ることの楽しさを実感すること、そしてアプリ作者のちょっとしたアイデアとセンスなのです。