iOS 4の新機能13選&AssetsLibraryで作る画像ビューア:SDKで始めるiPad/iPhoneアプリ開発の勘所(終)(1/4 ページ)
初めてiPhone/iPadアプリ開発に挑戦する人が、迷わず短時間でアプリを作れるように、数多くの情報の中から要点をグっと絞った開発の勘所を紹介する入門連載です
今さら聞けないiOS 4の新機能について、おさらい
本連載もいよいよ、今回で最終回です。今回は、iOS 4で追加された13の機能についておさらいし、「AssetsLibrary」フレームワークを用いてフォトライブラリへアクセスするアプリを作成します。iOS 4で追加された機能は、前回の「EventKitとiAdでiPhoneアプリにカレンダーと広告を付けるには」で紹介した機能も含まれますので、併せてご覧ください。
【1】「Fast App Switching」によるマルチタスキング
マルチタスキングは、ユーザーが複数アプリの切り替えを手軽に行えるように導入された仕組みです。iOS 4までは、一度に1つのアプリしか起動できず、別のアプリを起動しようとした場合は起動中のアプリを終了させる必要がありました。
「Fast App Switching」の仕組み
それが「Fast App Switching」という機能が導入されたことで、アプリを終了させることなく瞬時に別のアプリに切り替えることが可能になりました。
- アプリを起動して使用。ホームボタンを押してホーム画面へアプリを起動して使用。ホームボタンを押してホーム画面へ
- ホームボタンを2回押すと、バックグラウンドで待機している1のアプリが表示される
- 別のアプリを起動して、ホームボタンを2回押す
- バックグラウンドで待機している1のアプリが表示される。このアプリを起動する
- 起動中の3のアプリから1のアプリに終了時の状態で切り替わる
前回も触れましたが、こちらがFast App Switchingの流れです。このように書くと、1のアプリが「バックグラウンドで動作している」と思う方もいるかもしれません。しかし実際は、「アプリ終了時の状態をメモリ上に保存し、アプリが再び呼ばれたときにメモリ上から展開する」という動作となっています。
もし普通のPCと同じようにバックグラウンドで動作させてしまうと、スマートフォンのような限られたリソースでは、動作が重たくなるといった問題が、すぐに出てきてしまうからです。
バックグラウンドで動作する6つの主な機能
では「ダウンロード中に別のアプリを立ち上げたいが、ダウンロードを中断したくない」といった場面ではどうでしょうか。このような場合も想定し、アップルは特別に以下の機能をバックグラウンド動作できるようにしました。
- Background Audio
バックグラウンドで音楽を再生しながら別のアプリが使用できる - Voice Over IP
バックグラウンドでSkypeなどのVoIPアプリが使用できる - Background Location
バックグラウンドで位置情報の送受信ができる。ナビアプリで現在位置を確認しながら、別のアプリを使用したりなどが可能に - Push Notifications
バックグラウンドでWeb上のサーバからアラートを受け取れる - Local Notifications
バックグラウンドでiPhone/iPad上のアプリからアラートを受け取れる - Task Finishing
アプリ切り替え時に動作中のタスクがあった場合、タスクが完了するまでバックグラウンドで動作する
もし「ダウンロード中」の場合は、上記「Task Finishing」という機能が働くことで、ダウンロードが完了するまでの間だけバックグラウンドで動作してくれるようになっています。
iOS SDK 4以降でビルドし直そう
以上がマルチタスキングの概要です。これらマルチタスキングの機能はAPIレベルでサポートされているため、開発時においてはiOS SDK 4以降でビルドするだけで適用されます。
逆にiOS SDK 4より前のバージョンでビルドされているアプリは、iOS 4の上でもマルチタスキングにならないので、注意が必要です。
iOS SDK 4以降でビルドし直すには、前回記事の「SDKのバージョン違いによるビルドエラーを解消」を参照してください。
【2】ソーシャルゲームサービス「Game Center」
iOS 4で新しく追加されたソーシャルゲームサービスであり、このサービスを使用して世界中のユーザーと1つのアプリ内で対戦したり、スコアを共有したりできるようになりました。
それと同時に、iOS 4のデフォルトアプリとして以下の「Game Center」というアプリも追加されています。
このGame Centerアプリ自体はゲームを提供しているわけではなく、「すべてのGame Centerサービスにアクセスする機能」のみを持っています。例えば、Game Center対応アプリがサービス上に保存したスコアを閲覧したり、自分のアカウントや他のプレイヤーの情報を管理するためにあります。
Game Centerサービスが提供している4つの主な機能
以下がGame Centerサービスが提供している主な機能です。
- ニックネーム
個人を識別するアカウント情報のこと。ニックネームの作成・管理はGame Centerアプリで行う - マルチプレイヤー
ニックネームを持つ他のユーザーの検索・登録を行い、同じゲームをしているユーザー間で通信プレイが行える - リーダーボード
ゲームの成績を、Game Centerサービスへ保存・閲覧できる - アチーブメント
ゲームの目標達成で得られるポイント・目標達成を表すアイコンを、Game Centerサービスへ保存・閲覧できる(目標とは「10分以内に敵を倒す」「1度も死なずにクリアする」など)
Game Centerサービスを使うには
これらGame Centerサービスにアクセスするためには、まずは「ニックネーム」を作成してサインインをする必要があります。
Game Centerアプリを起動すると、サインイン画面が表示されます。ここで入力する「ユーザー名」「パスワード」はApple IDです。「新規アカウントを作成」すると、Apple IDにひも付く形でGame Centerのニックネーム(アカウント情報)が作成されます。
アカウント作成後にApple IDでサインインすると、自分のニックネーム(ここでは「PLAYER A」)が大きく表示されます。他のGame Center対応アプリも同様に、起動時には必ずサインインを行って自分のニックネームを取得するところから始まります。もしサインインをしていない場合、そのアプリはGame Centerサービスにアクセスできません。
アプリ内でGame Centerサービスからニックネームを取得すると、サインアウトされている場合はサインインを促すダイアログが表示され、すでにサインインしていた場合は「Welcome back, 【ニックネーム】」と自動的に表示されます。
このようにアプリがニックネームを取得して初めて、Game Centerサービスを使用したマルチプレイ、リーダーボードやアチーブメントへのデータ保存・閲覧が可能となります。
Game Center用APIを使うには
実際にXcodeでGame Center対応アプリを開発してみようという場合は、最初に以下の作業を行ってGame Kitフレームワークに含まれるGame Center用APIを使用できるようにしなくてはなりません。
- iTunes Connectに開発するアプリの情報を登録して、Game Centerを有効に
- iTunes Connectに開発するアプリのバンドル識別子を設定
- Xcodeプロジェクトで2.のバンドル識別子を設定
- XcodeプロジェクトでGame Kitフレームワークをインポート
- Xcodeプロジェクトでをインポート
上記1と2はGame KitがGame Centerサービスと通信するために必要です。
iTunes Connectを使用するには、iOS Developer Programに有料登録をする必要があります。
Game Kitを使った開発は公式ドキュメントで
登録して開発を進める方は、以下URLにGame Kitプログラミングについての詳細が書かれたアップル公式ドキュメント「Game Kitプログラミングガイド」があるので、ご参照ください。
【3〜13】iOS 4で追加されたフレームワーク11選
iOS 4ではマルチタスキング、Game Centerなどに加え、新しく以下のフレームワークが追加されました。
- Accelerate
画像やデジタル信号などにおける演算処理 - AssetsLibrary
フォトライブラリの全ファイルにアプリ内からアクセス可能に - CoreMedia
オーディオ・ビデオを下位レベルで操作 - CoreMotion
加速度センサ・ジャイロセンサからモーションデータを取得 - CoreTelephony
ユーザーの携帯電話サービスに関する情報を取得 - CoreVideo
3の「CoreMedia」フレームワークに対してバッファリングなどの機能を提供 - EventKit
カレンダー関連イベントの閲覧および編集を行う - EventKitUI
カレンダーの標準システムインターフェイスを提供 - iAd
アプリ内からバナー広告を配信できるようにする - ImageIO
画像データおよび画像メタデータのインポート・エクスポート - QuickLook
アプリ内でさまざまな形式のファイル内容をプレビュー
これら新規フレームワークに加え、既存フレームワークへ追加されたAPI(Game Kitへ追加されたGame Center用APIなど)を含めると、およそ1500以上のAPIが追加されています。この数だけでも、iOS 4には非常に多くの機能が追加されたことが分かります。
次ページからは、本題に入り、上記フレームワークのうち、「AssetsLibrary」「ImageIO」を使用した実装例を紹介していきたいと思います。
「EventKit」「EventKitUI」「iAd」については、前回記事をご覧ください。
Copyright © ITmedia, Inc. All Rights Reserved.