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のウィジェットボードにもウィジェットが追加される。ただし、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ダッシュボードとウィジェットボードでは、同じパッケージが違って見える。つまり、ウィジェットボードでは、開発ホーム・ウィジェットのパッケージ中のウィジェットプロバイダーを利用するものだけしか見えない。
この連載の記事
-
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ - この連載の一覧へ