目指せ!iPhoneアプリ開発エキスパート

第1回 プログラマのためのiPhone基本仕様の紹介

この記事を読むのに必要な時間:およそ 2 分

今回から始まった「目指せ!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以降へのソフトウェアアップデート(有償)が必要です。

※1)
iPhoneのデバイスに依存する機能(カメラや加速度センサー,GPSなど)を実際に動作させるためにはiPhone 3G本体が必要です。
※2)
作成したアプリを本体にインストールして動作させるには,iPhoneデベロッパプログラムへの登録(有料)が必要です。

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アプリ開発中の様子。画面構成をパーツを組み合わせて作っていく

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アプリを作ることの楽しさを実感すること,そしてアプリ作者のちょっとしたアイデアとセンスなのです。

著者プロフィール

皮(かわ)

1980年宮崎県生まれ。納豆好き。

アイフォーンの皮:http://mixi.jp/view_community.pl?id=3531790

トラックバック

コメント

  • 興味あります、ソフト開発

    実は私はMacも、iphoneも持っていません。
    昨日、友達にiphoneの可能性を、孫社長の話を交えながらされて使ってみたい気が湧いて来ました。
    その前段、私はシャープの複合機を販売してるのですが、先日仙台で、シャープの複合機の販売部門の会社であるシャープドキュメントシステムの社長の講演会を聞き、これからは複合機だけでなく、ネットワーク丸ごと押さえましょう、という話でした。これには、携帯も含まれるのであろうなと感じました。
    複合機と携帯を連動させ、新しいアプリケーションソフトを開発したら、面白いなと思いました。
    皮さんは、80年生まれ。私、まさより、ちょうど10年お若い。豊富な専門知識をお持ちなのでしょうね。
    もしよろしければ、iphoneのソフト開発について、いろいろ教えてください。

    Commented : #2  中山雅之 (2010/05/01, 02:58)

  • おそばせながら、これから始めようかと思います。

    いままではC++で業務用のWindowsアプリを作っていたのですがiPhoneにであってiPhoneアプリの楽しさを感じました。
    何時しか自分で作ってみたくなったのですが、まずはMaxから用意しないと・・・
    開発環境としてMacBookでも大丈夫ですか?

    Commented : #1  aokawa (2009/07/02, 08:34)

コメントの記入