ニュース

「winapp CLI 0.6.0」が公開 ~ひな形からアプリ作成、サンプル検索などの新コマンド

Azureでクラウド署名、.csprojからの直接実行、スパースパッケージにも対応

「Windows App Development CLI」(winapp)v0.6.0

 米Microsoftは8月14日(現地時間)、「Windows App Development CLI」(winapp CLI)の最新版v0.6.0をリリースした。ゼロから動作するアプリをより速く立ち上げることに焦点を当てた改善が、数多く盛り込まれているという。

ゼロから動作するアプリをより速く立ち上げられるよう、多くの改善を投入

 「Windows App Development CLI」は、Windowsアプリの開発に必要なSDK管理やパッケージング、アプリID・マニフェスト・証明書の生成などを、利用するフレームワークを問わず扱えるようにするコマンドラインツール。近年は「Rust」や「Dart」、「Flutter」、「Electron」でWindowsアプリを構築する例が増えているが、そうした開発シナリオもサポートする。

 現在はパブリックプレビューとして提供中で、パッケージ管理ツール「WinGet」(winget install microsoft.winappcli)のほか、「npm」(npm install --save-dev @microsoft/winappcli)からもインストールできる。

winapp new:コマンド一発で「WinUI 3」アプリのひな形を新規作成

コマンド一発で「WinUI」アプリのひな形を新規作成できる「winapp new」

 「winapp new」は、「Windows App SDK」のテンプレートからアプリを作成できる新コマンド。テンプレートパックのインストール(および更新の案内)まで面倒を見てくれるので、適切な「NuGet」パッケージやワークロードを探し回る必要がなくなる。

# 利用可能なテンプレートを一覧表示
winapp new --list

# 空の「WinUI 3」アプリを作成(既定のテンプレート)
winapp new --name MyApp

# 「NavigationView」やMVVMフレームワークを用いたテンプレートから始める
winapp new --name MyApp --template winui-navview
winapp new --name MyApp --template winui-mvvm

winapp find-ui:「WinUI」のサンプルを検索

 「WinUI」にはさまざまなコントロールが用意されているが、どう使っていいのかわからないこともあるだろう。そんな場合に役立つのが、新コマンド「winapp find-ui」だ。

「WinUI」のサンプルを検索する「winapp find-ui」

 このコマンドは「WinUI 3 Gallery」と「Windows Community Toolkit」から実際に動作するサンプルを検索し、そのままコピー&ペーストできるXAMLとC#を返してくれる。AIエージェントにも人間にも使いやすいよう設計されているという。

# 実現したいことを検索して、該当するコントロールとシナリオIDを取得
winapp find-ui "tabbed layout"

# 検索ソースを1つに絞り込む
winapp find-ui "settings card" --source toolkit

# 特定のシナリオの完全なXAML+C#を取得
winapp find-ui --id gallery-tabview-1

 XAMLなしでUIを宣言的に記述できる実験的なフレームワーク「Reactor」にも対応しているが、これはオプトイン方式になっており、「--source reactor」を指定しないと検索対象にならない点には注意したい。

そのほかの新機能

 そのほかにも、以下の新機能が導入された。

  • .csprojからの直接実行:「winapp run」にプロジェクトモードが追加された。.csprojや.sln/.slnx、あるいはそれらを含むディレクトリーを指定すると、ビルドしたうえでパッケージIDを付与して起動してくれる。「dotnet build」を別途実行したり、出力フォルダーを探したりする必要はない。パッケージ化・非パッケージ化のどちらの「WinUI」アプリにも対応し、モードは入力内容から自動的に選択される
  • Azureによるクラウド署名:新コマンド「winapp az-sign」は、「Azure Trusted Signing」を用いてexeやMSIX、MSIXバンドルへ署名。クラウドで管理された署名IDを使うため、秘密鍵(PFX)がローカルマシンに置かれることはない。Azureの標準的な資格情報チェーンを利用するので、CIとの相性もよい
  • スパースパッケージへの対応:既存のデスクトップアプリにパッケージIDだけを付与して、通知やバックグラウンドタスクといった、IDが必要なAPIを利用できるようになる。完全なMSIXへ変換する必要がなく、「winapp init --sparse」「winapp pack」「winapp embed-identity」の3コマンドで完結する

 「Node.js」からネイティブの「WinUI 3」のApplicationとWindowを操作するサンプルを追加したり、「GitHub Copilot」向けと「Claude Code」向けのプラグインを共通の単一プラグインへ統合したりといった改善も含まれている。