このページの本文へ

基礎から覚える 最新OSのアーキテクチャー 第5回

Windows 8でMetro Styleアプリを動かす「WinRT」

2011年09月29日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

Windows 8で導入される「Start Screen」

 そのためにマイクロソフトが用意したのが、「Metro Style」というアプリタイプだ。Windows 8には、従来のWindowsアプリである「Desktop Style」と、新しいMetro Styleの2種類のアプリが動作する。

 Metro Styleはタッチ操作に最適化されていて、基本的にはタッチのみですべて操作できる。また、Windowsの見える部分である「シェル」もタッチ用に最適化されたものになり、スタートメニューの代わりに「Start Screen」画面が装備された。Start Screenは、従来の「アイコン」と「通知機能」を統合した「タイル」を並べるもので、これを使ってアプリを起動する。

 従来のスタートメニューボタンは、このStart Screenへ戻るためのボタンになり、キーボードのWindowsロゴキーもこれに合わせた動作になっている。iPadやHoneycombでいう「ホームボタン」に相当するわけだ。Start Screenは「Metro Styleシェル」とでも言うべき部分だが、実は従来と同じく「Explorer.exe」(エクスプローラー)がその役割を担っている。

 このMetro Styleアプリを動作させるというのが、Windows 8の最大の目標である。Metro Styleのアプリは、「WinRT」(Windows Runtime)と呼ばれる環境で動作する。このWinRTこそが、Windows 8「タブレット・エディション」の中心になる部分である。

Win32を包括しながら
アプリをより作りやすくするWinRT

 本来ならば、この連載で「API」とか「実行環境」について解説した後の方がいいのだろう。しかし、それらの話が終わった頃にはWindows 8が製品になっているかもしれないので、順序は逆になるがWinRTの話をしよう。

 一般にOSは、アプリに対してさまざまな機能を提供するものだ。例えばデータをファイルとして保存し、これを読み書きできるようにするというのも、OSが提供する機能である。こうしたアプリに対して提供される「機能」と、アプリの間に入る「インターフェース」をAPI(Application Programming Interface)という。

 簡単に言えば、ソフトウェアの開発者はOSの機能を利用するときに、一定の手順に従って機能を「呼び出す」。APIとはその呼び出し方法を決めたものだが、一般的には「APIセット」などと呼んで、OSにどのような機能が用意されているかを意味する用語として使う(「このOSのAPIセットは貧弱だねぇ」とか)。

 WinRTはMetro Styleアプリを動作させる「土台」であるとともに、APIセットでもある。WinRTはアプリに対して、Windows 8の“ほぼ”すべての機能を提供できる。しかし、いくつかの点で違いがある。

  • Win32 APIセットよりも大きな機能を提供する
  • 非同期呼び出しを使う

 これまでのWindowsアプリで使われていた「Win32 API」セットは、開発者に高い自由度を与えるために、いわゆる低レベルの機能提供を基本としていた。低レベルの機能にアクセスできるため、アプリに高度な機能を持たせられる反面、似たような機能を独自に開発しなければならなかった。Win32 APIを代替しようとしていた「.NET Framework」も、同様の問題を抱えていた。

 例えば、ウェブカメラを使って静止画を撮影する場合、カメラを制御して解像度などを設定し、データを読み込むだけでかなりのプログラムコードを記述しなければならない。静止画を撮影する機能をアプリに組み込む場合、画像のプレビューや撮影タイミングを知らせるシャッター音、撮影後のサムネイル表示など、さまざまな機能が必要となる。Win32 APIでは、これを全部「手作り」しなければならない。実際のアプリ開発の際は、運良くオープンソースのライブラリなどが使える場合もあるが、必ずしも望む環境に適合しているとは限らず、修正などが必要なことがある。

 これに対してWinRTは、より高レベルの独自APIを提供する。例えば「Media Capture」は、静止画撮影だけでなく動画などの撮影やプレビュー表示、撮影後のトリミングといった関連機能を提供するライブラリオブジェクトだ。Windowsの標準機能であるため、デバイスドライバーなどが正しく動作していれば、基本的にはどの環境でも問題なく動作できる。

WinRTが提供するオブジェクト。「Media」などの大きな機能のほかに、Win32が持っていた大半の機能を包括する

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン