![Windows 11のウィジェット](/img/2024/05/25/3737980/l/01742e9bd267a473.png)
Windows 11のウィジェットボードは、左の列がウィジェットで、右側2列はフィードになっている。実はウィジェットはそれほど多くなくて、標準状態でウィジェットボードの大半を専有しているのはフィードである
Windows 11のウィジェットは、「ウィジェットボード」にウィジェットを登録して利用するものだが、これまでいろいろ変更が続いていた。そろそろ落ち着いたと思われるので、筆者も真面目に評価を始めた。
Windows Vistaにはガジェットが
Windows 8/10にはタイルを使って情報を表示できた
Windows Vista時代、「ガジェット」と呼ばれる小さなアプリケーションを動作させる仕組みがあった。カレンダーや時計など、便利なツールがあったが、HTMLで記述するため、セキュリティ的な問題が多発。Windows 8で非対応になった。
Windows 8では、スタートメニューが廃止され、全画面を使う「スタート画面」になったが、ここに「タイル」を配置することができた。
タイルは、アプリケーションのショートカットであると同時に、アプリケーションが表示を制御可能だった。これは、Androidのホーム画面に配置できる「Widgets」のようにプログラムから更新できるオブジェクトだった。
Windows 8では、アプリケーションが随時更新可能な「ライブタイル」を開発することができた。タイルは、Windows 10にも引き継がれた。スタートメニューにタイルを配置することが可能だった。
Windows 10は途中まで、スマートフォン用のWindows 10 Mobileが存在し、そのホームページはWindows 10のスタート画面になっており、タイルを使って情報を表示させていた。このタイルは、Windows 11で廃止となり、その代用として登場したのがウィジェットだ。
Windows 11で新たに登場したウィジェット
Windows 11のウィジェットは、
ウィジェットホスト
ウィジェット
ウィジェットプロバイダー
の3つの要素から構成される。ウィジェットは「アダプティブカード」として作られ、Windowsアプリケーションがこれを制御する。
アダプティブカードは、Windows 10 Ver 1804で搭載され、Windows 11で廃止された「タイムライン」に採用されたカード形式の情報表示機能だ。JSONを使って記述する。
Microsoftによればプラットフォームに依存しないオープンなUIコンテンツの交換形式だというが、筆者はWindowsでしか見たことがない。アダプティブカードに関しては、専用のサイト(Adaptive Cards(英語) https://adaptivecards.io/)がある。さらにデザイナー、各種プラットフォーム向けのSDK(GitHub microsoft/AdaptiveCards)も用意されている(https://github.com/microsoft/AdaptiveCards)。少なくともMicrosoftがアダプティブカードに力をいれているのはわかる。
このウィジェットの表示を制御するWindowsアプリケーションを「ウィジェットプロバイダー」という。ウィジェットプロバイダーとなるアプリケーションは、IWidgetProviderというCOMインターフェイスを実装する必要がある。
このインターフェースは、ウィジェットの登録(ピン留め)、削除(ピン留めを外す)、ウィジェットのアクション実行、サイズ変更やウィジェットボードが開きウィジェットが表示されたときなどに呼び出される。なお、ウィジェットプロバイダー・アプリは、ウィンドウを持ち、通常のアプリとして動作してもかまわないし、ウィンドウを持たず、GUIアプリケーションとして動作しなくても構わない。
前者の例としては、Windows 11付属のスマートフォン連携やクロック(フォーカスセッション)などがある。また、C#、C++で開発できるほか、PWA(Progressive Web App)で作ることも可能だ。なお、ウィジェットの開発に関しては、Microsoftのサイト「Windows ウィジェット」(https://learn.microsoft.com/ja-jp/windows/apps/design/widgets/)に記事がある。
ウィジェットを表示するのが「ウィジェットホスト」である。ウィジェットホストは、現在のところ、Windows 11に組み込まれている「ウィジェットボード」しかない。ウィジェットボードは、タスクバーのウィジェットアイコンから開く。
Windows 11のウィジェットボードは、ウィジェットだけでなく「フィード」も表示する。ウィジェットボードを開いたとき、左側にあるのがウィジェット、右側に並ぶのがフィードである(記事冒頭画面)。
フィードは、Windows 10のタスクバーにあった「ニュースと関心事項」とほぼ同じもの。「ニュースと関心事項」はWindows 10の途中で実装されたが、Windows 11では廃止され、ウィジェットボードが搭載された。なお、フィードの表示をやめると、ウィジェットを左右2列で表示できるようになる。
もう1つの「ウィジェット」
なお、Windows 11には、「ウィジェット」と呼ばれるものがもう1つある。それは、プレビュー中の開発者向けアプリDev Home(開発ホーム)に追加できるコンポーネントだ。以後これを開発ホーム・ウィジェットと表記する。この開発ホーム・ウィジェットは、Microsoftストアからインストールできる。インストールすると、Dev Homeのダッシュボードに登録可能だ。
![Windows 11のウィジェット](/img/2024/05/25/3737982/l/bfc24b57a126a987.png)
Dev Homeのダッシュボードにも「ウィジェット」が配置できる。開発ホーム・ウィジェットは、Windows 11のウィジェットとは異なる仕組みも持っている。インストールした開発ホーム・ウィジェットのうち、IWidgetProviderインターフェースを使っているものだけが、ウィジェットボードに表示できる
これをインストールするとWindows 11のウィジェットボードにもウィジェットが追加される。ただし、Dev Homeとウィジェットボードでは、追加可能なウィジェットが異なる。開発ホーム・ウィジェットは、1つのパッケージに複数の「Widget」が含まれている。そしてダッシュボードにはこれを登録できる。
これに対して、Windows 11側のウィジェットボードでは、1つの開発ホーム・ウィジェットパッケージには1つのウィジェットしか含まれていないように見える。
また、Dev Homeには、プリインストールされた開発ホーム・ウィジェットとして「開発ホーム(プレビュー)」というウィジェットが付属する。このため、開発ホームのインストールの有無で、ウィジェットボードにインストール可能なウィジェットが異なってくる。
開発ホーム・ウィジェットの開発ドキュメントは、GitHubのDevHomeにある(https://github.com/microsoft/devhome/tree/main/docs/extensions)。
これによれば、開発ホーム・ウィジェットはDev Home Extension SDKが提供する2つのプロバイダー・インターフェース(IDeveloperIdProviderとIRepositoryProvider)を使う。加えて、ウィジェット・プロバイダー(IWidgetProviderインターフェース)を使うウィジェットもサポートしているとある。
こうした構造の違いがあるため、Dev Homeダッシュボードとウィジェットボードでは、同じパッケージが違って見える。つまり、ウィジェットボードでは、開発ホーム・ウィジェットのパッケージ中のウィジェットプロバイダーを利用するものだけしか見えない。
![](/img/blank.gif)
この連載の記事
-
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第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カメラにする機能を試した - この連載の一覧へ