avalonia-viewmodels-zafiro について
ReactiveUI と Zafiro を使い、Avalonia アプリの ViewModel、ウィザード、ナビゲーションを構築するためのスキルです。リアクティブな状態管理やコマンド、画面構成の指針を示し、導入済みバージョンでの API 検証も促します。
主な機能
- 01ReactiveUI による状態とロジックのパターン
- 02進捗報告に対応する拡張コマンド
- 03SlimWizard による複数ステップのフロー
- 04Section の自動検出
- 05View と ViewModel のマッピング
活用シーン
- 01Avalonia アプリの ViewModel 構築
- 02複数ステップのウィザード実装
- 03ナビゲーションとセクション UI の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill avalonia-viewmodels-zafiroインストール後、Claude Code で/avalonia-viewmodels-zafiroを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
composition.mdnavigation_sections.mdviewmodels.mdwizards.md詳細
Zafiro を使用した Avalonia の ViewModel
このスキルでは、ReactiveUI と Zafiro ツールキットを活用し、Avalonia アプリケーションで ViewModel やウィザードを作成し、ナビゲーションを管理するためのベストプラクティスとパターンを紹介します。
基本原則
- 関数型リアクティブアプローチ:ReactiveUI(
ReactiveObject、WhenAnyValueなど)を使用して、状態とロジックを扱います。 - 拡張コマンド:進捗レポートや名前/テキスト属性を含む、より優れたコマンド管理のために
IEnhancedCommandを使用します。 - ウィザードパターン:
SlimWizardとWizardBuilderを使用し、複雑なフローを宣言的で保守しやすい方法で実装します。 - セクションの自動検出:
[Section]属性を使用して、UI セクションを自動的に登録、検出します。 - クリーンな構成:
DataTypeViewLocatorを使用して ViewModel を View にマッピングし、CompositionRootで依存関係を管理します。
ガイド
- ViewModel とコマンド:堅牢な ViewModel の作成とコマンドの処理について説明します。
- ウィザードとフロー:
SlimWizardを使用した複数ステップのウィザードの構築について説明します。 - ナビゲーションとセクション:ナビゲーションとセクションベースの UI の管理について説明します。
- 構成とマッピング:View と ViewModel の接続および DI のベストプラクティスについて説明します。
統合時の注意事項
ガイド内のスニペットでは、インポート、インターフェース、アプリケーションサービスを省略しています。API やソースジェネレーターの構文は、インストール済みの Zafiro/ReactiveUI のバージョンに照らして確認してください。互換性を確認せずに、フィールドベースと partial プロパティのジェネレータースタイルを混在させないでください。両方が必要だと決めつけず、実際に使用するセクション登録方法を 1 つ選んでください。サービスプロバイダーはアプリケーションの存続期間中維持し、終了時に破棄するとともに、サブスクリプションも破棄してください。副作用を確定する前に、ウィザードのキャンセルや失敗を処理してください。以下に記載する Angor のファイルは外部のサンプルであり、同梱の前提条件ではありません。
参考例
実際の実装例については、Angor プロジェクトを参照してください。
CreateProjectFlowV2.cs:複雑なウィザード構築の優れた例です。HomeViewModel.cs:関数型リアクティブなコマンドを使用する、シンプルなセクション ViewModel です。
使用する場面
このスキルは、概要で説明したワークフローやアクションを実行する場合に適用できます。
制限事項
- 上記で説明した範囲に明確に該当するタスクでのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。