通常、Windowsストアのようなアプリストアで配布されるアプリは「パッケージ」という単一ファイルの形で提供されている。実際には複数のファイルを圧縮して固めているだけなので、“見かけ上は単一のファイル”というだけなのだが、共有DLLや設定ファイル等でアンインストールしても大量の“ゴミ”が残っていた従来のインストール方式に比べればシンプルで配布も行いやすい。
Windowsでは8/8.1以降にModern UIアプリに関して、このパッケージによるアプリの配布方式が採用されている。Windows Phoneでは7/8以降にストアアプリでパッケージによる配布が行われるようになった。前者は拡張子から「APPX」形式と呼ばれ、後者は「XAP」形式と呼ばれている。APPXには“バンドル型”と呼ばれるものもあり、具体的には2種類のAPPXが存在する。
Windows Phone 7/8ではXAPのみのサポートとなるが、Windows Phone 8.1ではXAPと2種類のAPPXの計3種類のパッケージ方式をサポートしている。XAPには実行環境に応じて複数のバージョン形式を含むことが可能で、1つのXAPでWindows Phone 7/8/8.1に対応できるが、もし8.1のみをターゲットにしたXAPの場合は旧バージョンでは実行できない(Silverlightの機能に依存するため)。
APPXにおけるバンドル型とは、アプリ本体の実行ファイルに加え、いくつかファイル(データ)が付属してくる状態を意味している。
例えば世界展開を前提にしたアプリなどでは、日本語やドイツ語など各ローカル市場ごとの言語パックを含んでいる場合があるだろう。あるいは異なるDPIごとに高解像度/低解像度のアイコンファイルを複数保持するケースも考えられる。
これらをすべてまとめて配布してしまえば楽なのだが、アプリによってはパッケージのサイズが非常に大きくなり、ダウンロード容量が増え、デバイスのストレージ容量を圧迫する原因ともなる。
そのため、アプリストアからのダウンロードの際にターゲットとなるデバイスの属性(言語や解像度情報など)を判断し、必要なファイルのみを再パッケージングして配布する。こうしてメインファイルと属性ファイルをパッケージにする形態を、APPXにおけるバンドル型と呼ぶ。こうした仕組みはスマートフォンやタブレット等で特に重要となる。Microsoftによれば、この仕組みで最大数割程度のパッケージサイズの差が出るという。
以上を踏まえ、アプリストアを経由したパッケージの差異をまとめたのが下表だ。
基本的にAPPX形式のほうが、できることが多くなっている。表中には表記がないが、XAPの最大パッケージサイズが1Gバイトなのに対し、APPXでは4Gバイトとスケーラビリティの面で優位だ。そして、外部SDメモリーカードをAPPXパッケージの格納領域とできるのは、Windows Phoneでも8.1のみの機能となっている(格納の際には暗号化が行われる)。
一方で、この機能はまだWindows 8.1では対応しておらず、おそらくは今後のUpdateでの改良ポイントの1つになるとみられる。
Copyright © ITmedia, Inc. All Rights Reserved.