SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

iPhone Bluetoothプログラミング

Bluetoothを使用したiPhone相互通信アプリを作成

  • このエントリーをはてなブックマークに追加

 iPhoneは他のモバイルプラットフォームとは異なり、Bluetoothを通信チャネルとして使用することが比較的簡単にできます。この記事では、TCP/IPを使用してサーバーとやり取りする方法と、簡単なチャットアプリケーションを作成する方法を紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 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を参照)。

図1 GameKit: Xcode内でGameKitフレームワークをプロジェクトに追加する
図1 GameKit: Xcode内でGameKitフレームワークをプロジェクトに追加する

 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(角丸ボタン)
図2 ビューの追加: [View]ウィンドウに必要なビューを追加する
図2 ビューの追加: [View]ウィンドウに必要なビューを追加する

 次の操作を行います。

  • [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を参照)
図3 接続の確認: アウトレットとアクションの接続が正しく作成されていることを確認する
図3 接続の確認: アウトレットとアクションの接続が正しく作成されていることを確認する

 Xcodeに戻り、BluetoothViewController.mファイルに次のステートメントを追加します。

- (void)viewDidLoad {    
    [connect setHidden:NO];
    [disconnect setHidden:YES];
    [super viewDidLoad];
}

- (void)dealloc {
    [txtMessage release];
    [currentSession release];
    [super dealloc];
}

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Searching for Peer Devices

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Wei-Meng Lee(Wei-Meng Lee)

Microsoft MVP受賞者。Microsoft社の最新テクノロジー実地研修を専門とするDeveloper Learning Solutions社を創設。.NETとワイヤレステクノロジーの開発者、指導者として知られる。国際的なカンファレンスでたびたび講演し、.NET、XML、ワイヤレステクノロジーに関す...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4800 2010/04/19 19:08

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング