
MicrosoftがWindowsアプリ開発の複雑さを根本から減らす新CLIツール「winapp」をパブリックプレビューとして発表しました(Windows Blog)。複雑になりがちなWindowsアプリ開発の初期設定や構成管理を、1つのコマンドラインツールに統合することが狙いで、Electron、C++/CMake、.NET、Rust、DartなどVisual Studio以外の環境で開発する人ほど恩恵が大きいのが特徴です。
Windowsアプリ開発では、これまで次のような作業が煩雑でした。
- 複数SDKの管理
- マニフェストやアセットの作成
- 証明書の生成
- パッケージング要件の調整
- C++/WinRTなどのプロジェクション生成
winappはこれらを「1つのCLIに統合」するものです。Microsoftは、開発者が設定ではなくアプリ開発に集中できる環境を目指すと開発の目的を説明しています。
主な機能
winappの主な機能は次の通りです。
winapp init:環境構築をワンコマンド化
winapp init を実行するだけで、これまで手作業だった以下のような初期設定を自動化します。
-
必要な SDK の取得
-
マニフェスト生成
-
アセット作成
-
証明書生成
-
C++/WinRT プロジェクション生成
チーム開発ではwinapp restoreにより、別マシンでも同じ環境を再現できます。
Package Identityを即付与してデバッグ可能に
Windows AI APIや通知APIなど、多くの最新APIはPackage Identityが必須ですが。従来はアプリをパッケージ化しないとテストできませんでした。
winapp create-debug-identity my-app.exe
上記コマンドを実行するだけで、非パッケージのままPackage Identityを付与してデバッグ可能になります。
マニフェスト・証明書管理も自動化
マニフェスト生成、アセット更新、開発用証明書の生成・インストールなど、初心者がつまずきやすい部分を CLI が肩代わりします。
例えばロゴ画像からアセットを一括更新するコマンドは次の通りです。
winapp manifest update-assets C:\images\my-logo.png
MSIXパッケージングも一発
アプリの配布準備も次の一行で完了します。
winapp pack ./my-app-files --cert ./devcert.pfx
Store 提出用・サイドロード用のパッケージを自動生成します。
Electronとの統合が強力
Electron開発者向けにnpmパッケージとして提供され、C++/C#ネイティブアドオンのscaffold、Windows App SDKの自動ブートストラップ、ElectronプロセスへのPackage Identity注入など、Node.jsとWindowsネイティブ機能の橋渡しが簡単になります。AI APIをNode.jsから直接使える実験的パッケージも提供中です。
まとめ
winapp CLIはまだ初期段階で、今後多くの機能が追加予定です。MicrosoftはGitHubでフィードバックを募集しています。
すぐに試したい場合、以下のコマンドを実行します。
WinGet
winget install microsoft.winappcli
Electronプロジェクト
npm install --save-dev @microsoft/winappcli
winappがWindowsアプリ開発の敷居を下げる、便利ツールになるのか注目です。
