gihyo.jp » DEVELOPER STAGE » 連載 » 目指せ!iPhoneアプリ開発エキスパート » 第1回 プログラマのためのiPhone基本仕様の紹介

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

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

今回から始まった「目指せ!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

トラックバック

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

    gihyo.jpで「目指せ!iPhoneアプリ開発エキスパート」の連載が始まりましたiPhoneのアプリ開発は前々から興味があっていつかチャレンジしたいことのひとつだったので、この機会に勉強してみようかな?でも、Objective-C...あまり得意じゃないので・・・

    Tracked : #2  沖縄ホームページ制作やSEOで頑張る!沖縄ホームページ制作工房「WebCrafts」 (2008/11/14, 23:22)

  • 目指せ!iPhoneアプリ開発エキスパート:第1回 プログラマのためのiPhone基本仕様の紹介

    今回から始まった「目指せ!iPhoneアプリ開発エキスパート」。iPhoneアプ...

    Tracked : #1  ホームページ制作のためのリンク集 (2008/11/14, 11:42)

コメント

コメントの記入

エンジニアマインド

エンジニアマインドがWebマガジンとしてリニューアル!

エンジニアマインド No.10 2009年2月号

今回のSoulHackで取りあげるのは,山本七平の「「空気」の研究」という本です。この本をきっかけに「日本で働くこと」について考えてみたいと思います。

ピックアップ

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

第2回 iKnow!デベロッパーカンファレンス開催

2009年2月2日,語学学習SNSとして幅広いユーザを獲得しているiKnow!ユーザを対象とした「第2回 iKnow!デベロッパーカンファレンス」が開催されました。

「Adobe MAX Japan 2009」詳細レポート

アドビシステムズ株式会社が主催するユーザーカンファレンス「Adobe Max Japan 2009」が,1月29日,30日の2日間にわたって行われ,述べ3300人が来場した。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

ついにベールを脱いだJavaFX

Javaベースのリッチクライアント向けプラットフォーム,JavaFXが登場しました。その全貌を,実例を挙げつつ短期集中連載形式で紹介します。

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

良いコ-ドへの道―普通のプログラマのためのステップアップガイド

この連載は「良いコードの書き方」を知ることを目的としています。「できるプログラマ」の中では常識だけど一般的には気づかれていないような内容を,プログラミング初心者にもわかりやすい言葉で解説していきます。

エンジニアのための「失敗学」のススメ

「失敗学」という言葉はご存知でしょうか? 事故などの発生原因を分析し,知見を得る試みの一種です。エンジニアの皆さんも自己研鑽の一環として使ってみませんか。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

FreeBSD 7.1へようこそ

2009年1月5日,FreeBSD 7.1-RELEASEが発表された。本特集では,最新のRELEASEで使える便利な機能や新たな機能を通じて,FreeBSDの魅力に迫ってみることにしよう。

月刊インタラ塾,gihyo.jp瓦版

Web広告を生み出すための考え方や技術などを伝えている,「月刊インタラ塾」という毎月開催のイベントがある。本連載では,メインセッションレポートを伝えていく。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • エンジニアマインド
  • 組込みプレス

最近のコメント