Uno PlatformでC#とXAMLを複数ターゲットへ展開する
単一の C#/XAML コードベースからクロスプラットフォームのネイティブ モバイル、Web、デスクトップ、組み込みアプリを構築するためのオープンソース プラットフォーム。最新の .NET ワークフロー用に構築されたホット リロード、ビジュアル デザイナー、MCP、およびスキルを使用して、任意の IDE/CLI から作業できます。 2 億以上の NuGet ダウンロード。デスクトップ (Windows、macOS、Linux): Uno プラットフォームは、すべてのデスクトップ プラットフォームでのレンダリングに Skia を使用し、ハードウェア アクセラレーションによる高性能グラフィックスと
ひと目でわかる
- これは何?
- WinUI 3 APIとSkia、WebAssembly、ネイティブシェルを組み合わせる.NETクロスプラットフォーム基盤。
- 誰に向いている?
- リポジトリのライセンスはApache-2.0です。READMEは貢献者数、NuGetダウンロード数、企業利用を紹介しますが、数値の出典や時点に差があるため、採用の性能証拠にはしません。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 1 日前です。
- 何の言語で書かれている?
- 主に C# です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
一つのUIコードと複数の実行先
Uno PlatformはC#とXAMLを使い、Web、Windows、macOS、Linux、iOS、Android、組み込みを対象にする.NET開発プラットフォームです。READMEはWinUI 3 APIサーフェスを使い、単一コードベースから各環境へ展開すると説明します。単一コードベースは、各OSの差が消えるという意味ではありません。
WebではWebAssembly、デスクトップではSkiaを使い、WindowsはWin32、macOSはAppKit、LinuxはX11やフレームバッファへ接続します。iOSとAndroidではネイティブアプリを構築できます。実際のUI、入力、性能、ストア要件はターゲットごとに確認する必要があります。
Skiaとネイティブ描画の選択
READMEは統合Skiaレンダリングとネイティブレンダリングを二つの方法として示しています。Skiaは一貫した描画やアニメーションを狙いやすく、ネイティブ方式はUIKitなどの各OSコントロールへ寄せた外観を得やすい設計です。どちらが適切かは画面、アクセシビリティ、既存コードで変わります。
同じXAML画面をWebAssembly、Skia Desktop、モバイルの三つで起動し、文字、入力、スクロール、キーボード、画面回転を比較します。READMEの対応表だけでピクセル一致や同じ性能を期待せず、差分をプラットフォーム固有の実装課題として記録します。
MVVM、MVUX、部品の選択
UnoはWinUI、Windows Community Toolkit、Uno Toolkit、ベンダー製品、.NET MAUIコントロールなどを利用でき、Material、Fluent、Cupertinoのテーマも扱います。状態管理はMVVMまたはMVUX、ナビゲーション、ロギング、DIの拡張もREADMEに記載されています。選択肢が多いことは、依存関係が少ないことを意味しません。
新規画面では一つの状態管理方式とテーマを決め、対象プラットフォームのビルドを通します。センサーやセキュアストレージなどの非UI APIを使う場合、各OSの権限と失敗動作を個別に試します。Uno.UITestでUI操作を自動化し、画面ごとの回帰を残すと移植時の差を追えます。
Hot Reloadと開発ループ
Visual Studio、Rider、VS Codeから作業でき、READMEはWebAssembly、macOS、Linux、Windows、iOS、AndroidでXAMLとC#のHot Reloadを説明します。変更が即座に反映されたように見えても、クリーンビルド、配布用ビルド、実機で同じ結果になるかは別です。
Uno.Checkで環境を確認し、IDEのテンプレートウィザードまたは公式ドキュメントの手順で新規プロジェクトを作ります。具体的なCLIコマンドをREADMEが掲載していない部分は、推測で補わず公式ガイドの版を固定します。PlaygroundやGalleryは機能を見る入口ですが、自分の依存関係の検証にはなりません。
StudioとAI機能の境界
Uno Platform Studioには、プロンプトやサンプルからアプリを生成するStudio App、実行中のアプリを確認して変更を検証するStudio Agent、Hot Design、FigmaからXAMLやC#へ出すDesign-to-Codeが含まれるとREADMEは説明します。Claude Code、GitHub Copilot、OpenAI Codex向けには70以上のUno固有スキルが掲げられています。
生成された画面は、ターゲットごとの入力、アクセシビリティ、状態、エラーを人が確認します。Studioの説明をUno本体の全機能や、AIが完全なUIを作る保証に読み替えません。生成前後のdiffと実機のスクリーンショットを保存し、採用可能な部品だけをコードへ残します。
ライセンスと判断
リポジトリのライセンスはApache-2.0です。READMEは貢献者数、NuGetダウンロード数、企業利用を紹介しますが、数値の出典や時点に差があるため、採用の性能証拠にはしません。サポート、保証、セキュリティの具体的約束もREADMEの記載範囲で確認します。
向いているのはC#とXAMLの資産をWeb、デスクトップ、モバイルへ広げ、各ターゲットを継続的にテストできるチームです。最初に`Uno.Check`で環境を検査し、入力画面と一覧画面をWebAssembly、Skia Desktop、実機で動かしてください。Hot Reloadの結果だけでなく、クリーンビルドとUno.UITestの結果を見てから対象範囲を決めます。
unoplatform/unoを導入候補にする場合は、READMEの最小例をそのまま本番へ持ち込まず、専用の作業場所で入力と出力を保存します。対象バージョン、実行したコマンド、設定ファイル、標準出力、エラー、生成された差分を一組にします。これにより、動いたという印象ではなく、どの条件で再現したかをレビューできます。
確認の途中でREADMEにない機能や保証を見つけたとしても、本文の事実として追加しません。未確認の項目は未確認のまま分け、リリース、issue、LICENSE、公式ドキュメントのどこで確認できるかを記録します。unoplatform/unoの更新で結果が変わったときは、入力を固定して差分を比べ、採用範囲を広げる前に変更理由を確認します。
実務での判定は、機能があるかだけでなく、失敗したときに状態を戻せるかで行います。初回実行前に作業ディレクトリを複製し、設定と生成物の保存先を確認します。正常系ではREADMEの例を再現し、異常系では接続切断、空の入力、権限不足、依存関係の不一致を一つずつ試します。
unoplatform/unoが扱うデータやコードを共有するときは、公開範囲と保存期間を明示します。レビュー担当者が出力だけを見て判断できるよう、入力、版、ログ、差分を残します。数値や利用者の声を引用する場合も、READMEの自称値と自分で測った結果を分けて記載します。
編集部の結論
リポジトリのライセンスはApache-2.0です。READMEは貢献者数、NuGetダウンロード数、企業利用を紹介しますが、数値の出典や時点に差があるため、採用の性能証拠にはしません。サポート、保証、セキュリティの具体的約束もREADMEの記載範囲で確認します。
向いているのはC#とXAMLの資産をWeb、デスクトップ、モバイルへ広げ、各ターゲットを継続的にテストできるチームです。最初に`Uno.Check`で環境を検査し、入力画面と一覧画面をWebAssembly、Skia Desktop、実機で動かしてください。Hot Reloadの結果だけでなく、クリーンビルドとUno.UITestの結果を見てから対象範囲を決めます。 READMEの説明を超える保証は置かず、上記の具体的な入力、設定、ログ、差分を確認できた範囲だけで採用を判断してください。
コミュニティノート