はじめに
iPhone OS 3.0で利用できるすごい機能の1つはGameKitフレームワークです。GameKitフレームワークには、Bluetoothネットワークでのやり取りを可能にするAPIが含まれています。このAPIを使用すると、ピアツーピアのゲームやアプリケーションを簡単に作成できます。他のモバイルプラットフォームとは異なり、iPhoneではBluetoothを通信チャネルとして使用することが比較的簡単です。そこで今回の記事では、2台のiPhoneまたはiPod Touchデバイスの相互通信を可能にする簡単なアプリケーションの作成方法を紹介します。
この記事で紹介する機能をテストするためには、iPhone OS 3.0以降を搭載したiPhone(3Gまたは3GS)あるいはiPod Touch(第2世代以降)が2台必要です。
プロジェクトの作成
Xcodeを使用して新しいビューベースアプリケーションプロジェクトを作成し、プロジェクト名を「Bluetooth」とします。
Bluetoothへのアクセスに使用する各種APIはすべてGameKitフレームワークに含まれています。そのため、このフレームワークをプロジェクトに追加する必要があります。プロジェクトに新しいフレームワークを追加するには、Xcode内で[Frameworks]グループを右クリックし、[Add]、[Existing Frameworks]の順に選択します。フレームワークの一覧から「GameKit.framework」を選択します(図1を参照)。
BluetoothViewController.hファイル内で、次のオブジェクト、アウトレット、アクションを宣言します。
#import
#import
@interface BluetoothViewController : UIViewController {
GKSession *currentSession;
IBOutlet UITextField *txtMessage;
IBOutlet UIButton *connect;
IBOutlet UIButton *disconnect;
}
@property (nonatomic, retain) GKSession *currentSession;
@property (nonatomic, retain) UITextField *txtMessage;
@property (nonatomic, retain) UIButton *connect;
@property (nonatomic, retain) UIButton *disconnect;
-(IBAction) btnSend:(id) sender;
-(IBAction) btnConnect:(id) sender;
-(IBAction) btnDisconnect:(id) sender;
@end
GKSessionオブジェクトは、接続された2台のBluetoothデバイス間のセッションを表します。このオブジェクトを使用して、2台のデバイス間でのデータの送受信を行います。
BluetoothViewController.mファイルに次のステートメントを追加します。
#import "BluetoothViewController.h" #import @implementation BluetoothViewController @synthesize currentSession; @synthesize txtMessage; @synthesize connect; @synthesize disconnect;
BluetoothViewController.xibをダブルクリックし、Interface Builderで開きます。[View]ウィンドウに次のビューを追加します(図2を参照)。
- Text Field(テキストフィールド)
- Round Rect Button(角丸ボタン)
次の操作を行います。
- [File's Owner]アイテムをControl+クリックし、テキストフィールドビューにドラッグ&ドロップする。[txtMessage]を選択する
- [File's Owner]アイテムをControl+クリックし、Connectボタンにドラッグ&ドロップする。[connect]を選択する
- [File's Owner]アイテムをControl+クリックし、Disconnectボタンにドラッグ&ドロップする。[disconnect]を選択する
- SendボタンをControl+クリックし、[File's Owner]アイテムにドラッグ&ドロップする。 [btnSend:]を選択する
- ConnectボタンをControl+クリックし、[File's Owner]アイテムにドラッグ&ドロップする。[btnConnect:]を選択する
- DisconnectボタンをControl+クリックし、[File's Owner]アイテムにドラッグ&ドロップする。[btnDisconnect:]を選択する
- [File's Owner]アイテムを右クリックし、すべての接続が正しく作成されていることを確認する(図3を参照)

Xcodeに戻り、BluetoothViewController.mファイルに次のステートメントを追加します。
- (void)viewDidLoad {
[connect setHidden:NO];
[disconnect setHidden:YES];
[super viewDidLoad];
}
- (void)dealloc {
[txtMessage release];
[currentSession release];
[super dealloc];
}


![図2 ビューの追加: [View]ウィンドウに必要なビューを追加する](http://cz-cdn.shoeisha.jp/static/images/article/4800/2s.gif)