【デブサミ関西2012】Windows 8時代に対応できるデスクトップアプリケーションとは?

CodeZine / 2012年10月16日 15時0分

Office 2013(Preview版)のタッチモード。 レイアウトを崩さずに、表示範囲や機能を犠牲にしない範囲で、 タッチ操作しやすいようにパーツを拡大する。

 すでにRTMの提供が開始され、一般向けリリースも目前に迫ったWindows 8。タッチ操作に最適化されたWindowsストアアプリ(旧称Metroスタイルアプリ)が注目されているが、従来のWindowsアプリケーション(デスクトップアプリケーション)はどう変わっていくのだろうか? 本セッションでは、Windows 8時代のデスクトップアプリケーション開発において開発者が押さえておくべきポイントを、グレープシティの八巻氏が解説した。

グレープシティ株式会社
テクニカルエバンジェリスト 八巻 雄哉 氏


■互換性は問題ないが、ハードウェアの変革により
タッチ操作への対応が必要に

 Windows 8では、大きく分けて2種類のアプリケーションが存在する。一つは、タッチ操作に最適化されたWindowsストアアプリ(旧称:Metroスタイルアプリ)。そしてもう一つが、デスクトップ上で実行される従来型の「Windowsデスクトップアプリケーション(以下、デスクトップアプリケーショ ン)」だ。

 Windows 8に関して、「Windowsストアアプリ(旧称:Metroスタイルアプリ)」の情報は多数公開されているものの、デスクトップアプリケーションについての情報を目にすることは少ない。Windowsアプリケーション開発者としては、これまでのアプリケーション資産がデスクトップでそのまま問題なく使えるのか、また、今後デスクトップアプリケーションを開発する上で何が変わるのかといったことも気になるところだろう。

 八巻氏はまず、マイクロソフトのWindows開発者向けイベント「Build 2011」の基調講演で示された「Windows 8では、Windows 7で動作していたものがすべて動く」というメッセージを引用しながら、「アプリケーションの互換性については、ほとんど心配する必要はない」と説明。Windows 8では、Windows 7 と同様にVB6(Visual Basic 6.0)のランタイムがサポートされることも補足した。

 総じて、Windows 8ではWindows 7との高い互換性が保たれており、デスクトップアプリケーションの移行自体に大きな問題はないといえるだろう。とはいえ、「まったく変える必要がないわけではない」と八巻氏は強調する。

 「ソフトウェアは変わらなくても、今後ハードウェアが大きく変わっていく。そのハードウェアの変革にデスクトップアプリケーションも対応することが求められる」

 「ハードウェアの変革」の具体例として八巻氏が挙げるのは、タッチ操作可能なデバイスの普及だ。Windows 8の一般向けリリースと同時にマイクロソフトが発売する「Surface」(2012年9月時点で日本での発売は未定)のように、スレートPCとしてもノートPCとしても使える「ハイブリッド型PC」が登場し、今後ますます普及していくことが予想される。

 ノートPCとしてしか使えない従来のPCとハイブリッド型PCとの価格差がそれほどなければ、多くのユーザーは特にタッチ操作対応を望んでいないとしても後者を選ぶだろう。また、Windows 8はタッチ操作に最適化されたOSであることが広く認知されているため、ハードウェアメーカーとしても、タッチ操作に対応したWindows PCに主力製品をシフトしていくと考えられる。

 しかし、そもそもWindows 8でタッチ操作向けのアプリケーションに適しているのは、新しい「Windowsストアアプリ」のほうだ。あえてデスクトップアプリケーションをタッチ操作に対応させる必要はあるのだろうか? これについては、八巻氏は次のように説明した。

 「今後、ハイブリッド型PCのようにタッチ操作可能なPCが普及していくに従って、たとえタッチ操作をまったく考慮していないデスクトップアプリケーションであっても“タッチ操作されてしまう”というケースが増えていく。これは不可抗力であり、アプリケーション側でそれを拒むことはできない」

 なお、タッチ操作をまったく考慮していないデスクトップアプリケーションでも、ある程度はタッチ操作に対応できるように担保されている。Windows 7から搭載されている「レガシーサポート」と呼ばれる機能により、所定のタッチ操作に対応するマウス操作がエミュレートされるのだ。

 例えば、タッチ(タップ)したときにはマウスの左クリックに相当する操作(WM_LBUTTONDOWNメッセージ)となり、ブラウザなどで指2本を使ってピンチ操作したときには[Ctrl]キーを押しながらマウスホイールをスクロール操作するのと同じように拡大・縮小が行える(lParamでMK_CONTROLが設定されたWM_MOUSEWHEELメッセージ)。

(次ページ:「ディスプレイの高精細化」への対応も考慮すべきポイント

スレートPCとしても使えるハイブリッドPCが
今後さらに普及することで、デスクトップアプリケーションにも
本来は想定していなかったタッチ操作への対応が求められる。



CodeZine

トピックスRSS

ランキング