新しい iPad の Retina ディスプレイに AIR アプリを対応させる方法

先週発売が開始された新しい iPad には 1920x1500 2048x1536 の解像度を持つディスプレイが搭載されています。ピクセル数だけ見るとやや比率は異なるものの、従来の iPad の 1024×768 の画面用に作られたコンテンツはそのまま新しい iPad 上でも利用できるようです。

ところで、新しい解像度に合わせてアプリを作り直すには、iOS 5.1 SDK の利用が必須とされています。現状、AIR SDK から iOS 向けに書き出すと iOS 4.2 向けのアプリとなるため、そのままだと各ピクセルが拡大されて表示される状態になります。Retina の解像度は利用できません。

AIR 3.2 でこの辺りがどうなるかは不明ですが、OS X 限定ながら、既に AIR 3.1 でも Retina 対応できる手段が提供されています。今回は、AIR アプリから iOS 5.1 SDK を利用する方法のご紹介です。

iOS 限定:外部ライブラリの指定

AIR 3.1 から、ANE 導入の一環として、コンパイル時に外部 SDK を指定する -platformsdk オプションが追加されています。これは、AIR アプリから iOS の最新機能を利用できるようにするためのものです。他の OS ではいまのところ利用できません。

Mac 環境であれば、最新の XCode をインストールすると、iOS 5.1 の SDK が付いてきます。ファイルの場所は /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/ です。

なので、この SDK へのパスを追加して IPA をパッケージすればよいわけです。例えば下のような感じです。

adt -package -target ipa-app-store 
-provisioning-profile MY_PROVISIONING_PROFILE
-storetype pkcs12 -keystore MY_KEYSTORE_FILE 
-storepass MY_STORE_PASSWORD myApp.ipa myApp-app.xml myApp.swf
-platformsdk /Applications/Xcode.app/Contents/Developer/Platforms
/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/ 

その際、アプリケーション記述ファイルには、Retina 用のアイコン指定と、高解像度を利用するための宣言を追加します。

<icon>
  ...
  <image114x114>icons/icon_114.png</image114x114>
</icon>
...
<iPhone>
  ...
  <requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>

以上で、iOS 5.1 SDK の新機能を使った AIR アプリケーションを開発できます。

注:この機能は、AIR 2.5 の名前空間が指定されていると使えません。

iOS 限定:ANE とリンクするライブラリの指定

Retina 以外にも iOS 5.0 以降の新機能が使いたい場合は、ANE として実装することになります。しかし、iOS 4.2 の後にに追加されたフレームワークは、パッケージの際にリンクの対象となりません。

(標準でリンクされるフレームワークの種類については iOS ネイティブライブラリ を参照)

そこで、AIR 3.1 では、ANE に必要なフレームワーク等のリンクオプションを指定できるように、-platformoptions フラグが追加されました。フラグの後には、ADT に必要な情報を記述した XML ファイルを指定します。

下は ANE をパッケージするコマンドラインの例です。

adt -package -target ane myExtension.ane extension.xml -swc mySwc.swc 
-platform iPhone-ARM library.swf libmylib.a 
-platformoptions myplatformoptions.xml 

-platformoptions で指定するファイル内には、標準でリンクされるライブラリを除く、全てのリンク情報を記述します。ファイルの構造は以下のようになっています。

<platform xmlns="http://ns.adobe.com/air/extension/3.1">
  <sdkVersion>5.1</sdkVersion>
  <linkerOptions>
  <!-- Twitter フレームワークを利用する -->
    <option>-framework Twitter</option>
  <!-- libiconv.dylib をリンクする -->
    <option>-liconv</option>
  </linkerOptions>
</platform>

 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/287

コメント(2)

いつも情報ありがとうございます!
新しい iPad の解像度は 2,048 × 1,536 なので、従来と同じアスペクト比のようです。
http://www.apple.com/jp/ipad/specs/

匿名さん

ご指摘ありがとうございました。
早速記事を修正しておきました。

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261