自分で分断しちゃったUWPとデスクトップアプリの両環境を
再度結合しようとしているマイクロソフト
マイクロソフトはオンラインカンファレンスのBuild Windowsで「Project REUNION」を発表した。かなりプログラミング寄りの話なので、今回は誤解を恐れず、大胆な省略と例えを使って解説する。
「Project REUNION」って、なんかすごいもののようだが、実際には大したことはない。というのも、そもそもマイクロソフトがWindows 8でデスクトップ環境とモダン環境を“分断”しなければ、REUNIONは必要なかったからだ。つまり、自分で2つに分けちゃっておきながら、今になって再結合って言い出しているわけで、例えて言えば、「花瓶割っちゃったので接着剤で付けました」的な話である。
マイクロソフトがUWPからデスクトップアプリ(Win32アプリ)に回帰しようとしているという話は、本連載にも随分前に書いている(「UWPからデスクトップアプリに原点回帰か」)。
この記事を書いたのは2018年の11月、XAML Islandsが発表された頃だ。今回のProject REUNIONの最初の動きは、これをベースに従来UWPでしか利用できなかったWinUI(現在のバージョンは2.0)を、次期バージョンとなるWinUI 3.0でWin32アプリケーションからも利用可能にするという話だ。
![](/img/2020/05/23/3047136/l/c7988d4fa19a7448.png)
Project REUNIONは、現在のWindowsのアプリケーション開発の中では、黄色で示した場所にある。簡単に言えばProject REUNIONとは、Win32DesktopアプリとUWPの外観や機能を同じようにして、対等の立場とするものだ
WinUI 3.0以前は、無理をすればWinUI 2.0をWin32アプリでも利用できたが、WinUI 3.0では大きな制限なくWin32アプリ側から利用できるようだ。なぜこのタイミングなのかというと、1つには、WinUI 3.0がプレビューできる程度には完成したこと、EdgeのChromium化により、主力ブラウザーがWin32アプリケーションになったことで、WebViewコンポーネントがUWP/Win32の両方で使えるようになったからである。
WinUIもWin32アプリも同じWPFという技術の上にあるが、実際には、Win32側のUIコンポーネント(XAMLコントロールなどと呼ばれる)とWinUI側のUIコンポーネントは、似たような機能のものがあっても見た目などが大きく違っていた。
たとえば、Windows 10の設定アプリでよく見かける「トグルスイッチ」(ToggleSwitch)は、同じ機能の「トグルボタン」(ToggleButton)がWin32/WPF側にもある。しかし、スライドスイッチではなく、単にボタンの色が変わるだけのUI部品でしかない。
![](/img/2020/05/23/3047135/l/970e153605adff02.png)
UWPとWPF(Win32 Desktop環境)には、似たような役割を持つToggleSwitchとToggleButtonというUIコンポーネントがあり、両方とも同じように使える(コードもほとんど同じ)のだが、見た目には雲泥の差がある
同じようなアプリをUWPとWin32で作れば、どう見ても後者のアプリが「みすぼらしい」ものになる。Win32アプリでもWinUIのコントロールが絶対に使えないわけではないし、自分で完全にカスタマイズして同じような外観にすることも不可能ではない。しかし、WinUIを使うのは結構面倒だし、他人の作ったものは評価しないと安心しては使えない。そもそもプログラマーとは基本“怠惰”なので、「UIパーツ」の見た目にそれほど手間をかけたくはないものだ。
Win32側では、見栄えを良くするには労力を掛ける必要があったのに対して、UWP側は優れた見た目のUIが簡単に作れる。これをUWPの「魅力」として強調することがマイクロソフトのUWP普及戦略の1つだったわけだ。
だが、よく考えてみると、どちらもマイクロソフトが作ったもので、使わせてくれたっていいじゃないか? と開発者は思っていた。またUWP自体に制限が多く、Win32アプリでは普通にできたいたことが大体できないか、細かく対象を指定して実行許可をユーザーに求める必要がある。このため、アプリの種類によってはWin32であることが必須という場合も少なくなかった。
![](/img/blank.gif)
この連載の記事
-
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した - この連載の一覧へ