このページの本文へ

Windows Info 第146回

変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か

2018年11月11日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

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

UWP環境とデスクトップ環境についておさらい

 詳しい状況説明の前に、簡単にUWP環境とデスクトップ環境についておさらいしておこう。デスクトップ環境は、Windowsが以前から持つアプリケーションの「実行環境」だ。Win32APIや.NET Frameworkなどにより、ウィンドウ形式やコンソール形式のアプリケーションを作ることができる。

 これに対してUWPは、Windows 8で搭載されたWinRT(Windows Run Time)APIセットを利用し、かつてメトロやモダン環境と呼ばれた「実行環境」でアプリを実行する。デスクトップ環境とはアプリケーションモデルが違い、実行形式、アプリ構造、ライフサイクルにも違いがある。

 たとえば、UWPは最小化などで動作しない状態となった場合、Windowsがメモリから実行イメージを削除できるように作られている。再度フォアグラウンドになった場合には、保存していた実行状態を使って、元の状態に復帰する。このためバックグラウンド処理は、特別な方法で記述しなければならない。これに対してデスクトップアプリケーションは、休止状態でもメモリから勝手に削除されることはなく、特に記述しなくてもバックグラウンドで動作し続けることが可能だ。

 UWPで使われるAPIセットであるWinRTは、複数のプラットフォーム(AndroidやiOS、Linux)での動作を想定して、特定のプラットフォームに依存しないよう、これらの最大公約数的なAPIを持つ。これに対してWin32APIは、Windowsの能力を最大限に利用するためのAPIセットになっている。

 ただし、WinRTは、アプリケーションを簡単に開発できるように、「粒度」の大きなAPIを持つ。たとえば、「カメラで動画撮影」といった機能を簡単に実現できるAPIだ。これに対して、Win32APIは、さまざまなカメラアプリを作るために必要な「粒度」の小さなAPIを持つ。

 WinRTは、セキュリティを重視していること、複数プラットフォームでの動作を想定していることから、Win32APIと比べると、制限があり、すべてのWin32APIが利用できるわけではない。しかし、高機能なAPIが使えることから、GUI部品もそれに対応して高機能なものが用意される。

 これに対して、デスクトップアプリケーションは、当初から一部のWinRT APIを利用することができた。また、セキュリティへの懸念から、WinRTが実装されたWindows 8では、モダン環境アプリとデスクトップアプリの間のコミュニケーションは制限されていた。UWPでは、簡易なアプリを作るのは簡単だが、デスクトップアプリで可能だったことがすべてできるわけではない。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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