■ 【4】H.264ビデオエンコーディングのサポート
デスクトップ版およびiOS向けのAIR 3において、H.264ビデオエンコーディングがサポートされた。デバイスのカメラから直接ストリーミングが可能なため、リアルタイムな動画配信やビデオ会議などに利用ができるようになる。
var cam:Camera = Camera.getCamera;
var nc:NetConnection _ new NetConnection();
nc.connect("...");
var ns:NetStream - new NesTream(nc);
var h264Settings:H264VideoSettings = new H264VideoSettings();
h264Settings.setProfileLevel(H264Profile.BASELINE, h264Level.LEVEL_2);
ns.videoStreamSettings = h264Settings;
ns.attachCamera(cam);
ns.publish("liveVideo");
■ 【5】JPEG-XRのサポート
- - PR -
静止画像の圧縮規格としてJPEG-XR(ISO/IEC 29199-2)のサポートが追加された。
JPEG-XRは、標準のJPEG規格に比べると計算負荷が小さく、ブロックノイズの抑制によって元画像に近い品質で高い圧縮率を実現できるというメリットがある。また、非可逆圧縮と可逆圧縮の両方が可能なことや、アルファチャンネルをサポートしているなどの利点も備えている。
■ 【6】その他マルチメディアに関する新機能
- バックグラウンドでのオーディオ再生のサポート(iOS向けのみ)
- BitmapDataオブジェクトの最大解像度の制限が廃止され、大容量の高解像度ビットマップが利用可能に
- LZMAアルゴリズムを利用した高効率なSWF圧縮をサポート
- 3次ベジェ曲線描画のためのcubicCurveTo描画APIの搭載
デバイスネイティブの性能を引き出す
デスクトップPCからモバイルデバイス、テレビに至るまで、同じコードベースでアプリ開発できるのがAIRの強みだが、一方で、特定のデバイスが持つ固有の機能にアクセスする標準的な手段がなく、せっかくの性能を使い切れないというジレンマを抱えていた。
AIR 3では、その点にフォーカスを当て、デバイスそれぞれが持つ機能や性能を活用するためのさまざまな拡張が行われている。
デバイス固有の機能にフォーカスを当てるということは、どうしてもAIRの最大の売りであるポータビリティとのトレードオフになる部分が出てきてしまう。これに対してMurarka氏は、「開発者が必要とするものを提供するのが、われわれの仕事。アドビが提供できる枠組みにとらわれず、開発者が必要な技術を自由に選択できるようにするために、ANE(後述)のような機能を提供する方策をとった。開発者の自由を優先した結果と考えてほしい」と語っている。
■ 【7】AIR 3の目玉機能の1つ、ネイティブ拡張
AIR Native Extensions(以下、ANE)は、StageVideoに並ぶAIR 3の目玉機能の1つである。ANEを使うことで、AIRアプリから、デバイスネイティブの機能やライブラリを呼び出せるようになる。AIRの基本的な考え方は、全てのデバイスで利用できる機能に対して、共通のインターフェイスを提供することである。しかしその場合、特定のデバイスにしか用意されていない機能は利用できないことになる。ANEは、その悩みを解消してくれる。
例えばObjective-Cで書かれたiOS用のライブラリや、Javaで書かれたAndroid用のライブラリでも、ANEを利用することでAIRアプリから呼び出せるので、AIR SDKに用意されていない機能を使うこともできるというわけだ。その他、ネイティブコードでなければパフォーマンスが出せないような部分でもANEが役に立つ。
ネイティブライブラリの呼び出しはActionScriptライブラリと同じように行える。下記はANEを利用してデバイスのバイブレーション機能を呼び出すことを想定したコードの例である。
ANEによるネイティブライブラリ呼び出しのコード例(Cantrell氏のセッションより)var vibe:Viblate = new Viblate();
trace("Is this ANE supported on this platform? " + Viblate.isSupported);
vibe.viblate(100);
■ 【8】ネイティブのテキスト入力フィールド
iOSおよびAndroid版のAIR 3では、ネイティブのテキストフィールドを利用してのテキスト入力が可能になった。これによって、テキストの自動補完や自動フォーマットなど、各プラットフォームが持つ入力補助機能を利用できるようになる。
また、ユーザーの仮想キーボードの設定などがそのまま適用できるというメリットもある。ネイティブのテキストフィールドは、NativeTextオブジェクトによって下記のように利用する。
ネイティブのテキストフィールドを使用するコード例(Cantrell氏のセッションより)var nt:NativeText = new NativeText(1);
nt.returnKeyLabel = ReturnKeyLabel.DONE;
nt.autoCorrect = true;
nt.fontSize = 40;
nt.borderThickness = 1;
nt.fontFamily = "Arial";
nt.text = "This is native text";
nt.width = this.stage.stageWidth - (this.stage.stageWidth * .1);
nt.x = (this.stage.stageWidth / 2) - (this.nt.width / 2);
nt.y = (this.stage.stageWidth / 3) - (this.nt.height);
■ 【9】前面カメラのサポート
これまでiOSおよびBlackBerry Tablet OS用のAIRでは前面カメラを利用できたが、その機能がAndroid版のAIRにも加わった。前面/後面のカメラはCameraオブジェクトのpositionプロパティによって区別される。このプロパティに指定される値は「CameraPosition.FRONT」「CameraPosition.BACK」のいずれかになる。下記は、前後面どちらのカメラかを指定してCameraオブジェクトを取得するコードの例である。
前面か後面かを指定してCameraオブジェクトを取得するコード例(Cantrell氏のセッションより)private function getCamera(position:String):Camera
{
for (var i:unit = 0; i < Camera.names.length; ++i)
{
var cam:Camera = Camera.get(String(i));
if (cam.position == position) return cam;
}
return Camera.getCamera();
}
■ 【10】モバイルデバイスのスピーカー利用
モバイル版のAIR 3では、デバイスのスピーカーを利用したオーディオ出力がサポートされた。電話のスピーカーと外部スピーカーの、どちらからでもオーディオを出力できる。
■ 【11】モバイル版Encrypted Local Storage(ELS)
Encrypted Local Storage(ELS)は、暗号化によって他のアプリからアクセスできないようにしたセキュアなローカルストレージで、デスクトップ版においてはAIR 1.0のころから提供されていた機能である。
AIR 3では、モバイル版でもこの機能が利用できるようになった。注意点としては、iOSにはMax OS Xと同様のキーチェーンサービスがあるため、ELSはこれを利用して実装されている。一方でAndroidにはELSのような機能が用意されていないため、AIR 3では独自の実装によって同様の機能を実現しているとのこと。Cantrell氏の説明によれば、Android本体の機能としてELSが提供されるようになれば、AIRでもそれを利用するように実装を変更できるという。
■ 【12】iPad用カメラロールの改善
iPad用のカメラロールが改善され、ポップアップを小さいウィンドウで表示するようになった。従来のポップアップは画面全体に表示されるスタイルだったため、画面の大きいiPadでは極めて不格好で使い勝手の悪いものだった。
iPadのカメラロールの改善。ポップアップを小さいウィンドウで表示するようになった |
このカメラロールの改善は機能としては小さな変更だが、タブレットにフォーカスした機能改善という点では重要な意味を含んでいるといえる。「マルチプラットフォーム」といえども、画面サイズが違えば、全く同じインターフェイスで事足りるというわけではないため、デバイスごとに適した挙動が必要なケースも多いだろう。カメラロールの改善はそのようなチューニングの1つといえる。
アプリ配布に関するサポート強化
AIR 3では作成したアプリの市場への投入をサポートする機能も強化されている。
■ 【13】AIR実行環境同梱
「Captive Runtime」は、作成したAIRアプリに、AIRランタイムをバンドルしてパッケージングする機能である。Captive Runtimeを利用してパッケージングされたAIRアプリは、プラットフォームにインストールされたの共有のランタイムではなく、バンドルされたランタイムによって実行される。従来よりiOS向けのAIR(AIR for iOS)では利用できたが、AIR 3からはデスクトップ版やAndroid版、AIR for TVなどにも対応した。
Captive Runtimeを利用すれば、プラットフォームにAIRランタイムがインストールされていなかったり、別のバージョンのランタイムがインストールされている場合などでも、問題なく動作するパッケージを作成できるという。
その一方で、アドビから提供されるAIRのセキュリティパッチを自動で適用できないことや、AIRアップデートAPIが利用できないこと、アプリケーションの容量が大きくなることなどのデメリットもある。
■ 【14】Android Market Lisencingの統合
Android Marketで有料アプリを公開する場合、専用のライセンスサービスである「Android Market Licensing」を利用する。このサービスによって開発者はAndroid Marketで提供される認証機構やアクセスコントロールなどを使ったアプリの配布ができる。
AIR 3では、このサービスを利用するための仕組みが統合され、AIRアプリのコードの枠組みでライセンスサービスを利用するためのコードを記述できるようになった。
Flex 4.6やFlash Builder 4.6はどうなる?
当然のことながら、アドビでは開発ツール側でもAIR 3への対応を進めている。本稿で紹介してきた新機能は、Flexフレームワークの次期バージョンとなる「Adobe Flex 4.6」や、Flash開発環境の次期バージョン「Flash Builder 4.6」でサポートされる予定となっている。
Flex 4.6やFlash Builder 4.6は、従来バージョンの無償アップデートとして間もなくリリースされる予定だ(Adobe MAX 2011まとめレポート(2)へ続く)。
■ @IT関連記事
ネイティブへ拡張し続けるAIRは“3”でどうなるのか アプリストア「Adobe InMarket」は閉店 Androidなどスマホのネイティブアプリ開発に接近するAdobe AIRについてiOSでの実行の仕組みや最新版の追加機能などを聞いた 「Smart & Social」フォーラム 2011/8/18 |
FlashもHTML5/jQueryもスマホアプリに変えるCS5.5 アドビに聞く、ツールの使い分けポイント Flash Pro/Flash Builder、Dreamweaver、シミュレータ「Device Central」を使ったスマホアプリ開発のポイントを聞いた 「Smart & Social」フォーラム 2011/6/20 |
Flash Builder 4.5でAndroidアプリを作ってみた Flashアプリ開発ツールのスマホ向け新機能を試す 簡単なアプリを作りながら、リモートデバッグ機能やテンプレート、ローテーション対応などさまざまな機能を紹介します 「Smart & Social」フォーラム 2011/5/11 |
Flashでできる! Androidアプリ制作入門 Flash ProやFlash Builderに拡張機能を追加して、Androidで動く簡単なAdobe AIRのアプリを作る方法を紹介します 「Smart & Social」フォーラム |
Flashでできる! iOSアプリ制作入門 Adobe AIRを基にしたFlash ProやFlash BuilderなどのiOSアプリ開発機能を使って、iPhone/iPadで動く簡単なアプリを作る方法を紹介します 「Smart & Social」フォーラム |
PhoneGapで始めるWeb→スマホアプリ制作入門 HTMLやCSS、JavaScriptだけで、iOS(iPhone/iPad/iPod touch)・Androidアプリを作成できるフレームワーク「PhoneGap」を紹介し、その利点や使い方を連載で解説します 「Smart & Social」フォーラム |
2/2 |
INDEX | ||
Adobe MAX 2011まとめレポート(1) HTML5の先を行くFlash Player 11/Adobe AIR 3の新機能14選 |
||
Page1 Flash Player 11/AIR 3は10月4日、正式リリース 2D/3Dグラフィック描画性能の向上 強化されたマルチメディア機能 |
||
Page2 デバイスネイティブの性能を引き出す アプリ配布に関するサポート強化 Flex 4.6やFlash Builder 4.6はどうなる? |
Smart&Social フォーラム トップページへ |
- 夏休みの自由研究にマイコンボードで「電子サイコロ」を作ったり、音楽プログラミングをしたりしてみよう (2017/7/24)
子ども向け電子工作&プログラミング用マイコンボード「chibi:bit」の基本的な使い方を紹介する企画。夏休みの自由研究に「電子サイコロ」を作ったり、音楽プログラミングをしたりしてみよう - 子ども向け電子工作&プログラミング用マイコンボード「chibi:bit」の基本的な使い方 (2017/7/20)
子ども向け電子工作&プログラミング用マイコンボード「chibi:bit」の基本的な使い方を紹介する。夏休みの子どもの自由研究などに役立てつつ、プログラミングを始めるきっかけにしてみてはいかがだろうか - 3DゲームのAIをiOSのSceneKitとGameplayKitで作る基本 (2017/7/10)
3Dゲーム用のフレームワークSceneKitを使った簡単なアプリ制作を通して、3Dゲーム用の人工知能(AI)について学ぶ - UnityアプリをWebGL、UWP、Android、iOS用としてビルドしてみた (2017/6/27)
アプリをWebで実行できるように書き出す方法やWindows上でUWP、Android、iOS用などにビルドする方法について解説する【Windows 10、Unity 5.6に対応】
|
|