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では、簡易なアプリを作るのは簡単だが、デスクトップアプリで可能だったことがすべてできるわけではない。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











