- XAML Studio を使用すると、インターフェイス上で実際の操作を行いながら、XAML をライブで編集およびプレビューできます。
- バインディング デバッガー、データ コンテキスト エディター、ビジュアル エクスプローラーなどの高度なツールが含まれています。
- Microsoft Store からダウンロードするか、MIT ライセンスの下でオープン ソース リポジトリからコンパイルすることができます。
- テレメトリの制御を提供し、Visual Studio デザイナーのストレスを軽減することを目的としています。
WindowsでXAMLを使ってインターフェースを作成する場合、Visual Studioのデザイナーで苦労したり、コンパイルに時間がかかりすぎたり、データバインディングのエラーの原因が特定できなかったりといった問題に遭遇したことがあるでしょう。そこで登場するのがXAML Studioです。このアプリケーションは、XAMLのテスト、デバッグ、実験を迅速かつ容易に行えるように設計されています。
この記事では、XAML Studioとは何か、WinUIおよびUWPインターフェイスのプロトタイプ作成を数分で実現する方法、リンクのデバッグ、テストデータの管理、ビジュアルツリーの操作などに役立つツールについて詳しく解説します。また、Microsoft Storeからのダウンロード方法、ソースコードからコンパイルする場合の要件、そしてVisual Studioのデザイナーにやや不満を抱いている開発者にとって、これらがどのように役立つのかについても説明します。
XAML Studio とは何ですか? 誰を対象としていますか?
XAML Studioは、 XAML開発に特化したWindowsアプリケーションです。元々はMicrosoft Garageプロジェクトとして開発され、現在は.NET Foundationのオープンソースプロジェクトとしてリリースされています。主な目的は、XAMLを記述し、その動作を即座に確認し、まるで自分のアプリケーションの一部であるかのようにインターフェースを操作できるようにすることです。
これは特にWinUI XAMLおよびUWPアプリケーションを扱う開発者向けに設計されていますが、WPFの経験があり、毎回完全なソリューションを構築することなく、最新のFluentデザインの概念、スタイル、テンプレート、ビジュアル状態を試してみたい場合にも非常に役立ちます。
開発サイクル全体に重点を置いているVisual Studioとは異なり、XAML Studioはビジュアルレイヤーのアイデアラボとして機能します。XAMLフラグメントをコピーして貼り付け、調整し、結果を即座に確認し、データを操作し、バインディングをチェックし、満足したら、そのコードを実際のプロジェクトに持ち込むことができます。
さらに、オープンソースプロジェクトであるため、その進化はコミュニティに開かれています。どの開発者でも、公開リポジトリを通じてコードをレビューしたり、変更を提案したり、改善点を提出したり、新機能に関する議論に参加したりすることができます。
インターフェースのプロトタイプ作成のための XAML Studio の主な機能
XAML Studioの強みの一つは、デザインのテスト、画面レイアウトの作成、リンクのデバッグといった作業を最小限のダウンタイムで行えるよう設計されたツール群を、単一のアプリケーションに統合している点です。単なるXAMLビューアではなく、UIを迅速に反復開発できるインタラクティブな環境を提供します。
最も重要な機能の一つは、ライブ編集です。エディターでXAMLコードを記述または変更すると、すぐに完全に機能するプレビューが表示されます。このプレビューウィンドウでは、最終的なアプリと同様に、ボタンを押したり、状態を変更したり、スライダーを動かしたり、動作をテストしたりするなど、実際の操作が可能です。
もう一つ注目すべき機能は、パンくずリストを使ったXAMLナビゲーションを試せることです。これにより、複雑な構造を簡単に移動したり、ツリー内の現在位置を正確に把握したり、調整したい要素を素早く見つけることができます。
さらに、XAML Studio には、コンテンツの再読み込み、配置グリッドのアクティブ化、クリッピングの適用、テーマの変更など、試行錯誤のサイクルを効率化するように設計されたクイック アクセス メニューから実行できる一連のショートカットとクイック プレビュー オプションが含まれています。
ライブ編集とプレビューインタラクション
XAML Studioの基盤となるのは、ライブ編集およびインタラクションシステムです。このライブ編集機能により、色、間隔、テンプレートを変更するたびにソリューション全体をコンパイルする必要がなくなります。コードを記述して保存したり、保存せずにそのままにしておいても、インターフェースが更新され、結果を即座に確認できます。
このプレビューは完全にインタラクティブなので、実際のインターフェースの動作をテストできます。コントロールを操作したり、イベントをトリガーしたり、スタイル、トリガー、ビジュアル状態を組み合わせたときに要素がどのように動作するかを確認したりできます。何が見栄えが良く、何がそうでないかをはるかに迅速に判断できるため、プロトタイピングにおいて非常に役立ちます。
さらに、XAML Studioにはデザイン画面上に配置ガイドが搭載されているため、要素を常に同じ位置に配置し、見落としがちな位置ずれを簡単に検出できます。これにより、無数のマージン調整を闇雲に行うことなく、より洗練されたレイアウトを実現できます。
WinUIやFluentが影、丸みを帯びたエッジ、適応型レイアウトなど、多くの可能性を提供する複雑なデザインシステムでは、適切に統合されたインタラクティブなプレビューがあると、本番環境での微調整にありがちな多くのストレスを回避するのに役立ちます。
バインディングのデバッグとビジュアルツリーの探索
WPF、UWP、WinUIにおける大きな問題の一つに、サイレントデータバインディングエラーがあります。バインディングが失敗すると、多くの場合、空の値しか表示されず、何が起こっているのか理解するのが困難です。XAML Studioには、このような問題を明らかにするために設計されたバインディングデバッガーが搭載されています。
バインディングデバッガーを使用すると、モデルのプロパティがインターフェースのコントロールにどのように接続されているかを視覚的に確認できます。このツールは、各バインディングの状態、最後に使用された値を表示し、どのバインディングが失敗しているか、そしてその理由をすばやく特定するのに役立ちます。大量のデータを含む複雑なモックアップの場合、これにより大幅な時間短縮が可能になります。
これに関連して、XAML Studioにはプロパティパネルからアクセスできるビジュアルツリーエクスプローラーとビジュアルステートが統合されています。ビジュアルツリーエクスプローラーは、画面を構成するコントロールと要素の完全な階層構造を表示し、任意のノードを選択してそのプロパティ、スタイル、および関係性を確認できます。
一方、ビジュアルステートエクスプローラーを使用すると、ビューのさまざまな状態(通常、ポイント、押下、無効など)を簡単に確認および切り替えることができます。これは、カスタムコントロールや高度なテンプレートを扱う際に非常に重要です。これにより、実際のアプリケーションで各状況を手動で強制することなく、各状態がデザインにどのような影響を与えるかを迅速にテストできます。
データコンテキストエディタによるデータ管理
実際のデータなしでインターフェースをテストするのは、手探りで設計するようなものです。そのため、XAML Studioにはデータコンテキストエディタが搭載されています。これは、ビューのデータコンテキストを簡単に定義し、テスト情報でビューを埋めることができるツールです。
このエディタを使用すると、UIを静的データソースと動的データソースの両方に接続できます。たとえば、ローカルファイルまたはREST APIからJSONを読み込み、それをコントロールのDataContextとして使用できます。これにより、長いテキスト、大規模なコレクション、または境界値の場合にレイアウトがどのように動作するかを確認でき、堅牢な設計を行う上で非常に重要です。
アプリケーション全体のインフラストラクチャをセットアップすることなく、XAMLとテストデータを組み合わせることができるこの機能により、視覚的な外観や情報の配信をより迅速に反復開発でき、実際のデータでフォームがどのように表示されるかを確認するためだけに、臨時のサンプルプロジェクトをセットアップする必要がなくなります。
XAML Studio では、自動保存システムのおかげで、アプリケーションを再度開いたときにドキュメントとそのデータ コンテキストを復元することもできます。これにより、特定のデザインのテストを続行するたびにデータ ソースを再構成する必要がなくなります。
生産性向上ツール: IntelliSense、自動保存など
XAML Studioは、視覚的な機能に加えて、 XAMLを頻繁に記述する際の作業効率を向上させるための様々なツールを統合しています。中でも特に便利なのがIntelliSense機能で、入力中にプロパティ、型、コントロール名、名前空間などを提案してくれます。
この IntelliSense は、コード記述のスピードアップに役立つだけでなく、バインディング、パス、属性における入力ミスを防ぐのにも役立ちます。特に、スタイル、テンプレート、共有リソースなどの長い構造において効果を発揮します。Visual Studio の IntelliSense を既に使い慣れている方なら、すぐに使いこなせるでしょう。
もう一つ非常に便利な機能は、ドキュメントの自動保存と復元です。XAML Studioは作業内容を自動的に保存し、アプリケーションを再度開いた際に、使用していたタブやドキュメントを復元します。そのため、ファイルを一つずつ開くことなく、中断したところから作業を再開できます。
インターフェースには、コントロールやプロパティの例、ヘルプ、リファレンスへのショートカットとして機能するドキュメントツールボックスが含まれています。これにより、ツールを離れることなくドキュメントを参照できるため、あまり馴染みのないAPIやWinUI固有のプロパティをテストする際に特に便利です。
デザイン支援: Fluent UI、ガイド、名前空間
このプロジェクトの最新バージョンでは、マイクロソフトの最新デザインシステムであるFluent UIに基づいた、刷新されたインターフェースが採用されています。このアップデートは、ツールの視覚的な外観だけでなく、既存のコントロール、テーマ、レイアウトの統合方法にも顕著に表れています。
レイアウト作業を支援するため、XAML Studio にはプレビュー画面上に配置ガイドとグリッドが用意されています。これらのガイドを使用すると、マージン、パディング、レイアウトを簡単に調整でき、特にピクセル単位で正確なデザインを再現したい場合や、すべての要素を手動で計測することなく適切に配置されていることを確認したい場合に便利です。
このツールが役立つもう一つの分野は、XAML名前空間の管理です。名前空間ヘルパーを使用すると、 xmlnsをより効率的に追加および修正でき、マークアップを破損させたり、煩わしい警告を発生させたりする、不完全な宣言や重複した宣言といったよくある問題を回避できます。
日常的な使用における細かな改善点もいくつか取り入れられています。例えば、コンテキストメニューから開いているタブを複製できる機能が追加されました。これは、元のレイアウトを失ったり、最初から新しいファイルを作成したりすることなく、同じレイアウトの2つのバリエーションを試したい場合に非常に便利です。
フォルダのサポートとリソース管理
XAML Studioにおける主要な改良点の1つは、外部フォルダーとリソースのサポートです。これにより、単一の独立したXAMLファイルだけでなく、関連するファイルのセットを操作できるようになりました。
この機能のおかげで、アプリケーションはフォルダからの画像読み込み、デザインデータファイル、および実際のインターフェースに通常付属するその他の補助リソースの読み込みを処理できます。たとえば、カルーセル用のテスト画像セット、ボタン用のアイコン、またはデータソースとして機能するJSONファイルなどです。
このフォルダーサポートにより、XAML Studioは単なるサンドボックスではなく、実際のワークフローに大きく近づきます。これにより、完全なアプリケーションのリソース構造を模倣した小規模なテストシナリオをセットアップできますが、プロトタイプ作成専用に設計された環境ならではの軽量性も維持されます。
これらすべてと、プレビュー、バインディング、ナビゲーション ツールの残りを組み合わせることで、XAML Studio は、画面を大規模なソリューションに統合する前に改良したい人にとって非常に魅力的なオプションになります。
Microsoft Storeからダウンロードして手動でインストールする
ほとんどのユーザーにとって、最も簡単な始め方は、Microsoft StoreからXAML Studioを直接ダウンロードすることです。無料アプリとして提供されているので、検索してインストールするだけで、数分後にはXAMLの実験を始めることができます。
入手可能な情報によると、ストア版はまだバージョン1.1ですが、最も活発な開発はプロジェクトリポジトリのdevブランチで行われています。最新の機能を利用したい場合や開発に貢献したい場合は、ストアで表示される内容とソースコードの内容に違いがある可能性があるため、この点に注意が必要です。
リポジトリから手動でインストールしたり、自分でコンパイルしたりする場合は、すべてが適切に動作することを保証するために留意すべき Visual Studio 関連のいくつかの最小要件があります。
ソースコードからXAML Studioをコンパイルする
さらに一歩進んで、 XAML Studioをソースコードからコンパイルしたい場合は、最新のWindowsアプリケーション開発に特化したコンポーネントを使用して、Visual Studioで開発環境を準備する必要があります。
まず、Visual Studio にWindows アプリケーション開発ワークロードをインストールする必要があります。このワークロードには、Windows プラットフォーム上の UWP アプリケーション、WinUI、およびその他の最新の XAML テクノロジーに関連するすべてのものが含まれています。
さらに、ユニバーサル Windows プラットフォームツールと、特定の Windows SDK 17763 がインストールされている必要があります。この SDK がないと、プロジェクトの一部が正しくコンパイルされない可能性があるため、ソリューションを開く前に Visual Studio インストーラーで確認することをお勧めします。
必要なコンポーネントがすべて揃ったら、リポジトリを開き、ソリューション内で「XAMLStudio」という名前のプロジェクトがスタートアッププロジェクトとして設定されていることを確認してください。その後、F5キーを押してデバッグモードで実行し、開発環境からアプリケーションを起動してください。
オープンソースプロジェクト、ライセンス、行動規範
XAML Studioは.NET Foundationプロジェクトとして公開されているため、最も寛容なオープンソースライセンスの一つであるMITライセンスの下で配布されています。つまり、通常の帰属表示条件を遵守する限り、コードのレビュー、変更、再利用、貢献を非常に自由に行うことができます。
このリポジトリには、サードパーティの帰属情報を含む NOTICE.json ファイルが含まれています。このファイルには、アプリケーション自体に表示される外部ライブラリに関する情報と一致する情報が記載されています。企業環境におけるライセンスコンプライアンスが気になる場合は、このファイルを参照することで、どのコンポーネントが組み込まれているかを確認できます。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しているため、課題、プルリクエスト、または議論に参加する際には、明確な行動規範(敬意、プロ意識、ハラスメントに対するゼロトレランス)を遵守する必要があります。行動規範に関するFAQページと、質問や問題に関する連絡先([email protected])も用意されています。
積極的に共同作業を行いたい方は、CONTRIBUTING.md ファイルで変更の提案方法、貢献の提出方法、問題の報告方法について説明しています。ブランチの操作方法、コードレビューのワークフロー、その他プロジェクトでの共同作業に関する実践的な側面についても詳しく解説しています。
テレメトリ、プライバシー、データ収集
他の多くの最新アプリケーションと同様に、XAML Studioには使用状況情報を収集するためのテレメトリ機構が組み込まれており、どの機能が最もよく使われているか、さまざまなドキュメントサイズでアプリケーションがどのように動作するか、どのような種類のエラーが最も頻繁に発生するかを把握することを目的としています。
朗報は、アプリケーション自体がこのテレメトリを明確に制御できる機能を提供していることです。設定ページの「フィードバック」セクションで、「診断データ」オプションを「いいえ」に変更することで、分散アプリケーション自体からのデータ収集を無効にすることができます。
プロジェクト情報によると、テレメトリの基盤として使用されているプラットフォームであるApp Centerは非推奨となっており、診断のための代替ソリューションが決定されるまでの間、バージョンv2ではアクティブなテレメトリは使用されていないことに留意すべきである。
いずれにせよ、マイクロソフトは、ソフトウェアがアプリケーションの使用状況に関する情報を収集する可能性があり、その情報はサービスや製品の改善に利用される可能性があると述べています。開発者として、エンドユーザーデータを収集する可能性のある機能(例えば、自社アプリへのサービス統合など)を使用する場合は、適用される法律を遵守し、適切なプライバシーに関する通知とポリシーを提供し、必要に応じてマイクロソフトのプライバシーに関する声明へのリンクを掲載する必要があります。
ブランド、ロゴ、商標の使用
リポジトリおよびアプリケーション自体には、マイクロソフトまたはその他の第三者の商標やロゴが含まれている場合があります。本プロジェクトでは、これらの商標の使用はマイクロソフトの公式ブランディングガイドラインに従う必要があることを明記しています。
プロジェクトの改変版や代替配布版を作成する場合は、混乱を招いたり、マイクロソフトとの公式な関係が存在しないにもかかわらず、マイクロソフトが公式にスポンサーになっていると誤解させるような方法で作成してはなりません。このルールは、バイナリを再配布する場合や、プロジェクトの一部を商用製品に組み込む場合に特に重要です。
同様に、コード内で使用されるサードパーティのロゴや商標は、そのサードパーティのポリシーの対象となるため、アプリケーションの大部分を独自の公開プロジェクトで再利用する予定の場合は、これらの側面を確認することをお勧めします。
背景: Visual Studio デザイナーの不満と XAML Studio の価値
XAML Studioがオープンソースプロジェクトとしてリリースされたのは、多くの開発者がVisual Studioのビジュアルデザイナーに不満を抱いていた時期と重なった。パフォーマンスの問題、クラッシュ、動作の不安定さ、複雑なXAMLのデバッグの難しさなどが、繰り返し指摘されていた。
このシナリオにおいて、XAML Studioは一種の逃避弁として捉えられています。軽量なツールであり、XAMLの設計とテストに特化することで、従来の編集・コンパイル・実行サイクルに伴う摩擦を軽減します。Visual Studioを置き換えることを目的としているのではなく、Visual Studioが最も苦手とする分野、つまりインターフェースの迅速な反復開発において、その専門性を補完することを目指しています。
このアプローチは、WinUI、WPF、UWPといったテクノロジーを学習する人々の懸念にも合致しています。多くの人にとって、.slnファイル、複雑な構成、実行ファイルへのパッケージ化といった作業は、特に学習初期段階では大きな負担となる可能性があります。XAMLレイヤーのみに特化したスタンドアロンツールがあれば、学習と実験のプロセスがはるかにスムーズになります。
つまり、XAML Studio は、Windows エコシステムでのユーザー インターフェイスの構築と改良に多くの時間を費やす人々にとって非常に価値のあるアプリケーションとして独自の地位を確立し、日常的に XAML を操作するためのより機敏で煩雑でない環境を提供しています。
C#、WPF、UWP、WinUI を始めたばかりの方、あるいは XAML に精通しているものの、テストの遅さやデバッグの複雑さに悩まされている方にとって、XAML Studio のようなツールを手元に置いておくことは、プロトタイプの作成、複雑なバインディングのデバッグ、大規模プロジェクトへの統合前の設計の検証といった作業方法に大きな変化をもたらします。しかも、オープンソースプロジェクトならではの柔軟性と、共有するデータとその使用方法を制御できるという安心感も得られます。
インデックス
- 1 XAML Studio とは何ですか? 誰を対象としていますか?
- 2 インターフェースのプロトタイプ作成のための XAML Studio の主な機能
- 3 ライブ編集とプレビューインタラクション
- 4 バインディングのデバッグとビジュアルツリーの探索
- 5 データコンテキストエディタによるデータ管理
- 6 生産性向上ツール: IntelliSense、自動保存など
- 7 デザイン支援: Fluent UI、ガイド、名前空間
- 8 フォルダのサポートとリソース管理
- 9 Microsoft Storeからダウンロードして手動でインストールする
- 10 ソースコードからXAML Studioをコンパイルする
- 11 オープンソースプロジェクト、ライセンス、行動規範
- 12 テレメトリ、プライバシー、データ収集
- 13 ブランド、ロゴ、商標の使用
- 14 背景: Visual Studio デザイナーの不満と XAML Studio の価値