マイクロソフトは今月初め、「Project Reunion」の最初の完全リリースとなる Windows App SDK 1.0 をリリースしたが、それが何なのか、開発者にとって必要なのかどうかについては混乱が生じている。
Windows App SDK のリリースは、Microsoft アプリケーション プラットフォームの長期リリースである .NET 6.0 の登場と関連していましたが、.NET API のみに限定されているわけではありません。では、Windows App SDK とは何でしょうか?
残念ながら、答えは複雑で、Microsoft は明確に説明するのに苦労しています。最も効果的なのは、この GitHub の投稿です。この投稿では、新しい API と、Win32 と WinRT の両方をラップできる統合 API の組み合わせとして説明されています。Win32 はオリジナルの低レベル Windows API であり、WinRT は Windows 8 で導入された最新のバイナリ インターフェイスです。
かつては、WinRT、そして UWP (ユニバーサル Windows プラットフォーム) が Windows 開発の未来となるはずでしたが、これはうまくいかず、Microsoft は強制的に分離したものを再統合するという課題を抱えることになり、これが「Project reunion」と呼ばれるようになりました。
Windows アプリ SDK の統合 API
Microsoft の最新の GUI フレームワークである WinUI 3 は、Windows App SDK のコンポーネントですが、使用は必須ではありません。
WinUI 3はUWPアプリケーションモデルから切り離されたUWPユーザーインターフェースと考えることもできます。ただし、UWPはWinUI 3を使用できないため、徐々に遅れをとることになります。WinUI 3を使用するには、最新バージョンのWindows、具体的にはWindows 10バージョン1809(2018年10月)以降が必要です。
誰もが予想した通り、最初のWinUI 3は未完成でした。特に注目すべき欠落点の一つは複数ウィンドウのサポートで、次のような問題が発生しています。「メインウィンドウ以外の新しいウィンドウを作成しようとすると、KernelBaseから例外がスローされます。」答えは「残念ながら、複数ウィンドウのサポートは1.0に間に合うように完了しませんでした。」です。
2022 年第 2 四半期に予定されているその他の機能としては、昇格サポート (ローカル管理者として実行) とトースト通知があります。
WinUI 3 ロードマップ
Microsoftは、開発者がWindows App SDKに段階的に移行できると説明しています。「これらのAPIの使用を開始するには、Windows App SDK NuGetパッケージへの参照を追加し、アプリコードにAPIの使用を追加します。アプリケーションの利便性に応じて、Windows App SDKを必要に応じて使用してください」とチームは述べています。
Windows ストアや MSIX パッケージを使用する必要もありません。App SDK は、パッケージ化されたアプリケーションとパッケージ化されていないアプリケーションの両方で動作します。
一部の開発者は、こうした違いに苦戦しています。「『WinUI 3 in Desktop』という新しいアプリを作成できることはわかりました。そうすると、生成されるファイルにはXAMLが含まれ、プロジェクト構造はUWPやWPF XAMLに少し似ています。これはWinUI 3アプリでしょうか、それともWindows App SDKアプリでしょうか?」と、ある開発者は「本当に混乱している」と認めています。
Microsoft のソフトウェア エンジニアリング リーダーである Ben Kuhn 氏は、そのようなアプリは両方になるが、アプリは WinUI 3 なしで App SDK を使用することもできると回答しました。
RedditでApp SDKチームと行った「何でも聞いてください」セッションは、非常に興味深いものでした。UWPスタイルのUIはなぜ遅いのでしょうか?「パフォーマンスは2022年に重点的に取り組む分野です」とチームは述べましたが、「ほとんどのUI要素は既にかなり速くレンダリングされています」とも述べています。
しかし、別の開発者は、「UWP XAML は実際には非常に高速ですが、WinUI 3 が OS コンポジターから切り離されたときにパフォーマンスが完全に低下したようです」と指摘しました。これは、WinUI 3 がオペレーティング システムから分離された方法に言及したものです。
別の GUI フレームワークで構築されたアプリ内で WinUI 3 を使用できる XAML アイランドはどこにあるのでしょうか? 「おそらく全体で 2 年以上かかるでしょう」とチームは告白し、これを実装するための作業は「2022 年から 2023 年まで続く」と述べています。
WinUI 3は当初約束されていたオープンソース化されていないのはなぜでしょうか?「非常に正当な質問です」とMicrosoftのプログラムマネージャー、ライアン・デモポロス氏は述べました。「数千ものプライベートAPI呼び出しの修正を含む、300万行を超えるコードベースを遡及的にオープンソース化するのは、想像以上に困難でした。」
まだ計画中だが、「オープンソースについてどうするかについて、チームと話し合いを進めている」段階だと彼は示唆した。すぐに実現するとは思えない。
- ああ、ユニバーサル Windows プラットフォーム: Microsoft は「UWP 向け WinUI 3 を安定的にリリースする予定はない」と発表
- .NET 6 LTSとVS 2022:マイクロソフトのオープンソースへの取り組みに対する懸念が続くことで、メジャーリリースが台無しに
- Microsoft の UWP = 望ましくない Windows プラットフォーム?
- Windows 11 向けの開発: Windows 10 向けの開発と似ていますが、角が丸いのでしょうか?
WinUI 3は1.0という名称にもかかわらず、まだ完全には完成していないようです。「WinUI 3.0は基本的にWindows 8の機能へのリブートであり、多くの機能が利用できません…Windows 8以降、何度も書き換えられてきたので、Officeのような主要なMicrosoftアプリケーションが実際にWinUI上で動作するようになるまでは、WinUIを検討するつもりはありません」とある開発者は述べています。
サンプルアプリケーションはまだ少ないものの、チームは「WinAppSDK に同梱される多数の Microsoft 社内アプリと Windows コンポーネントに取り組んでいます。リリースが近づいたら、これらについてさらに詳しくお話しします」と述べています。
なぜわざわざ?チームは、Windows 11に完璧に適合するアプリケーションの作成方法について、この記事を参考にしました。これには、最新の共通コントロール(チェックボックス、スライダー、リストなど)の使用、アクリルとマイカのデザインテクスチャの使用、丸みを帯びたウィンドウの角とWindows 11のスナップレイアウトのサポート、ダークテーマとライトテーマのサポート、新しいSegoe UIフォントとWindows 11アイコンの使用が含まれます。
「Windows 11 での一貫性を保つために、すべてのアプリをこれらの新しいアイコンとフォントに切り替えることをお勧めします」とドキュメントには記載されています。
しかし、開発者は懐疑的になるだろう。ユーザーはWindows 11を使い始めたばかりで、新しいSDKはまだ成熟していないからだ。
Windows 11 では適切に表示されるアプリケーションが、いつリリースされても Windows 12 では時代遅れに見える可能性があります。また、クロスプラットフォームは多くの種類のアプリケーションに必須であり、開発者はより将来性があるように見える Web テクノロジへと向かうことになります。®