「ディスプレイの高精細化」への対応も考慮すべきポイント
もちろん、レガシーサポートですべての操作をカバーできるわけではない。例えば、シンプルな例として「UIのサイズがマウス用には小さすぎて、正確なタッチ操作を行うことが不可能」という場合がある。単純にパーツを大きくすればタッチ操作自体は可能になるかもしれないが、一つ一つのパーツを大きくしたら元の画面には収まらなくなってしまう。
「特に業務アプリケーションの場合などは、いかに1画面にうまく要素を配置して収めるかを重視して設計されているものが多いので、1つの要素を大きくしただけでもレイアウトが崩れ、収まりきらない要素が出てくるはず」(八巻氏)
この解決策としては、「レイアウトを保ったままサイズを確保する」方法があるという。八巻氏は参考例として「おそらく、マイクロソフトのデスクトップアプリケーションの中で初めてタッチ操作を意識したもの」だという、Office 2013(Preview版)を挙げた。
Office 2013では、通常モードのほかに「タッチモード」が用意されており、リボン部分などを通常モードよりも拡大してタッチ操作しやすいように表示できる。ただし、レイアウトを崩さず、表示範囲や機能を犠牲にしない範囲でバランスをとって拡大するので、特にメインの画面を拡大できる範囲には限界がある。逆に、カラーピッカーなどのポップアップウィンドウのようにメイン画面から独立して表示され、他に影響しないものなら、十分な大きさまで拡大可能だ。
続いて八巻氏は、タッチ操作可能なデバイスの普及のほかにもう一つあるという、デスクトップアプリケーションに大きく影響する「ハードウェアの変革」について触れた。それは、ディスプレイの高精細化だ。
「インテルが予測したロードマップによれば、2015年の時点で、24~30インチのデスクトップ用ハイエンドディスプレイは4800×2700ピクセルにまで達するとされている。そこまでは到達しなかったとしても、早いか遅いかの違いだけであって、今後もディスプレイの高精細化が進むこと自体は確実と思われる」(八巻氏)
例えば、既存の業務アプリケーションでは1024×768ピクセルの固定ウィンドウサイズというパターンが比較的多いと思われるが、それを高精細ディスプレイにそのまま表示すると、判読することもマウスで操作することも不可能なほど小さくなってしまう。そのような表示とならないように、Windowsには、フォントやUIのサイズをスケーリングする「DPIスケーリング」という機能がある。
「Windows 7まではDPIスケーリングの値はユーザーが任意に設定するものであり、既定値は常に100%だったが、Windows 8では表示するディスプレイの物理サイズ、解像度、ピクセル密度(PPI)に合わせて、システムが自動的に既定値を設定するようになった」(八巻氏)
八巻氏はほかにも、Windowsのスケーリングについて、XP以前とVista以降の2つの形式の違いや、Windowsフォームのスケール処理の注意点として、異なるシステムフォントサイズ/DPI設定の開発環境でプロジェクトを共有できないこと、動的に位置やサイズを設定する際には比率を乗算して求める必要があること、スケール処理は各コントロールの実装に依存することなどを説明。
最後にまとめとして、「グレープシティでも、Windowsフォーム、WPF、ASP.NET Webフォームの主力製品において、タッチ操作や高DPIへの対応を予定している。皆さんがこれからデスクトップアプリケーションを開発される際にも、ぜひ今回お話ししたようなことを意識しながら、Windows 8時代にも十分対応できるアプリケーションを作っていっていただきたい」と語り、セッションを結んだ。
なお、グレープシティでは同社Webサイトにて今回の講演内容をより詳しく解説したPDF資料「Windows 8がデスクトップ開発に与える影響とその対応」を公開している(下記ページの右上のリンクより)。