Windows 8.1 対応アプリ開発入門 vol.1 ~ スナップの変更 ~

マイクロソフトの田中達彦です。
Windows 8.1は、Windows 8の思想をより進化させたOSです。
Windows 8と同じように、デスクトップアプリとWindowsストアアプリの2種類のアプリを動かせることに違いはありません。
Windowsストアアプリについては、Windows 8用に作成されたアプリはWindows 8.1上でも動きます。
しかしWindows 8.1とWindows 8は仕様が違っている点もあり、Windows 8.1用にアプリを作り直すことにより、より良いアプリを提供できます。
本連載では、Windows 8.1で仕様が変わった部分について、どのように対処していくかを説明します。

Windows 8.1では、スナップが廃止されました。
代わりに、複数のアプリケーションを同時に表示できるようになりました。
Windowsストアアプリは、画面解像度により最大4つまで表示できます。
標準的な1366x768のスクリーンでは、2つのアプリが同時に表示できます。
Windows 8のスナップも、2つのアプリを同時に表示できていました。
しかし、スナップの横幅は320pxに固定されており、スナップ専用の画面を設計していました。

Windows 8.1では、横幅のサイズが可変になりました。
デフォルトでは500pxが最小の横幅のサイズです。
マニフェストを変更することにより、320pxを最小の横幅のサイズに変更することができます。これは従来のスナップの横幅と同じですね。
その結果、画面を2つに分割して、左右にアプリケーションを表示させるようなことができるようになりました。

最初のほうに、Windows 8用のストアアプリはWindows 8.1でも動くと書きました。
それでは、Windows 8用のアプリをWindows 8.1上で動かしたらどうなるかを見てみましょう。

以下の図は、Windows 8.1上でWindows 8用のアプリを動かし、スナップのように表示させている画面です。

これだけ見ると、この画面はWindows 8上で撮影したものか、Windows 8.1上で撮影したものか分かりません。

Windows 8では、左右のアプリの境界の縦線を少し動かすということはできませんでした。
Windows 8.1では縦線を少し動かすことができるので、ちょっと左に動かしてみましょう。

あらあら、左右に黒い部分が表示されてしまいました。
Windows 8用のアプリのスナップは横幅320pxで設計されているため、320pxを超える部分はこのように黒く表示されてしまいます。

それでは、Windows 8用として作成されたアプリをWindows 8.1用に作り直してみましょう。
実は、作り直しはとっても簡単です。
開発するための環境として、Windows 8.1とVisual Studio 2013を用意します。
Visual Studio 2013でWindows 8用のプロジェクトを開くと、以下のようにメッセージが表示されます。
このメッセージのように、再ターゲットすればよいのです。

Visual Studio 2013でプロジェクトを開いた直後は、以下のようにソリューション エクスプローラーに[(Windows 8)]と表示されています。
この部分を右クリックすると[再ターゲット]というメニューが表示されますので、これをクリックするだけです。

再ターゲットは自動的に行われ、終了するとソリューション エクスプローラーの表示が[(Windows 8.1)]に変わります。

このままアプリを実行するとどうなるでしょう?
早速やってみましょう。

再ターゲットする前のアプリと比べて、アプリが表示されている幅が広がっています。
Windows 8.1では、デフォルトの最小の横幅のサイズが500pxなので、再ターゲットしたままでは500pxより小さい表示ができないのです。
また、500px以上で表示するときは、スナップ用の用意されている画面ではなく、通常の画面が表示されます。

最小の横幅のサイズは、アプリのマニフェストで変更できます。
Visual Studioのソリューション エクスプローラーに表示されているPackage.appxmanifestを開くと、以下のような画面が表示されます。
この最小幅の部分を320pxに変更するのです。

320pxに変更したアプリを実行すると、以下のように従来のスナップと同様に320pxで表示できるようになります。

さらに横幅を少し広げると、左右が黒くならずにそのまま横幅が広がっていきます。

Windows 8用アプリでスナップ用画面を設定しているアプリを8.1用に再ターゲットし、かつ横幅の最小値を320pxに設定すると、実際に表示している横幅が320px以上500px未満のときにスナップ用に用意した画面が表示されます。500px以上の場合は、通常の画面が表示されます。
もしスナップ時の画面の設計を横幅320pxで固定している場合は、横幅を499pxまで対応させた画面に変更することでWindows 8.1上できれいに表示されます。

※ Visual Studo 2013はRC版を使用しています。GA版と仕様やスクリーンショットが異なる可能性がありますので、ご了承ください。Visual Studioのエディションによってはサポートされない機能もあります。

マイクロソフト
田中達彦