iPad のプログラミング:iPhone アプリの移植、パート I
Apple が iPad を発売し、iPhone 3.2 SDK の NDA を解禁したことを受け、開発者は iPad アプリケーションの開発に着手できるようになった。多くの開発者にとって、iPad アプリケーションを開発するということは、自社の既存アプリケーションを iPad プラットフォームに移植することを意味する。iPad でも iPhone OS が動作しているが、開発者がアプリケーションをこの新デバイスに移植する際に注意しなければならない微妙な違いがある。本稿では、既存の iPhone アプリを iPad に移植するためのさまざまな手法を考察する。
手法1:iPhone と iPad の両プラットフォームをサポート
iPad は、iPhone や iPod touch が搭載するものと同じ画面サイズ(320 x 480 ピクセル)を使って最初から既存の iPhone アプリを実行することができる。アプリケーションは画面の一部だけを使うことになる。しかし、このモードで動作するアプリケーションは、iPad が搭載するはるかに大きい画面を十分に活かせない。これが大きさではるかに上回る iPad の画面に開発者がアプリケーション UI を移植するまでの時間稼ぎに Apple が採用した暫定的な解決策であることは明らかだ。
iPhone アプリケーションが確実に iPad アプリケーション(つまりフルスクリーン対応)でも動作できるようにするには、Xcode アプリケーションで同デバイスのターゲット設定を修正するのが最も簡単な方法だ。以下にその手順を示す。
Xcode を使い、新しい View ベースの Application (iPhone)プロジェクトを作成する(図1参照)。
図1 iPhone 向けに View ベースのアプリケーションを作成する。
このプロジェクトに「MyiPhoneApp」という名前を付け、「MyiPhoneAppViewController.xib」ファイルをダブルクリックして Interface Builder で編集する。「View」ウィンドウに以下のビュウを入力する(図2参照)。
* Label
* TextField
* Button
図2 「View」ウィンドウにビュウを入れる。
Xcode に戻り、「Command-R」を押して iPhone Simulator 上でアプリケーションをテストする。図3のような画面になるはずだ。
図3 iPhone Simulator でアプリケーションを実行する。
Xcode でシミュレータを「Simulator - 3.2 | Debug」に変更し、「Command-R」をもう一度押す。今回はアプリケーションが iPad Simulator 内で iPhone アプリケーションとして動作する(図4参照)。これが iPad で動作する iPhone アプリケーションのデフォルトの動作となる。
図4 iPad Simulator でアプリケーションを実行する。
次は、Xcode で「Targets」項目を開き、「MyiPhoneApp」項目を選択する。「Info (i) 」ボタン(ツールバーの一番上)をクリックしてその Info ページ(図5参照)を表示する。「Build」タブをクリックして、リストを下にスクロールする。「Deployment」セクションで、「Targeted Device Family」設定から「iPhone/iPad」を選択する。
図5 プロジェクトの「Targeted Device Family」設定を「iPhone/iPad」に変更する。
「Command-R」を押してシミュレータ上でもう一度アプリケーションをテストする。今度はアプリケーションが iPad ネイティブで動作する(図6参照)。
図6 iPad アプリケーションとしてアプリケーションを実行する。
アプリケーションの UI が iPhone のそれと全く同じであることに注目する。アプリケーションが iPad 上で動作しているときは、自己責任で UI を再利用する。iPad 上で動作していることがアプリケーションによって検知されたらビュウをプログラムで再調整する必要がある。
プログラムによるプラットフォームの検知
デバイスに応じて UI を再利用する場合は、アプリケーションが iPhone/iPod touch と iPad のどちらのモードで動作しているかをプログラムで検知することが重要だ。その方法を以下のコードで示す。
「MyiPhoneAppViewController.m」ファイルに以下のコードを書く。
-(void) viewDidLoad {
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 30200)
NSString *str;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
str = [NSString stringWithString:@"Running as an iPad application"];
} else {
str = [NSString stringWithString:
@"Running as an iPhone/iPod touch application"];
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Platform"
message:str
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
#endif
[super viewDidLoad];
}
http://japaninternetcom.pheedo.jp/click.phdo?i=5b94450e6825985c08555666e22ea606
日本はスポーツ選手に関しての手当てが他の国に比べて薄いらしいですね。
他国では例えばオリンピックで金メダルを取った選手はそれだけで
一生食っていけるらしいですよ!!それもすごいな、、、、ww
PICKUP
有価証券等利用詐欺/詐欺被害を防ぐ自分のプライバシー保護の為にクトゥブ・ミナールリンパマッサージ-むくみ解消等-カトマンズの渓谷相談してよかった税理士事務所ダイキリ個人再生にはデメリットがあるの?脱毛と同時にスキンケア(エステサロン)アイスクリーム