Googleが提供する、単一のDartコードベースからネイティブコンパイルされたモバイル、Web、デスクトップアプリを構築するためのオープンソースSDK。
Snapchat/Valdi
宣言的なTypeScriptコンポーネントをネイティブのiOS、Android、macOSビューにコンパイルするクロスプラットフォームUIフレームワーク。WebViewやJSブリッジは不要です。
- スター
- 16,381
- フォーク
- 537
- 未解決の Issue
- 22
- 最終コミット
- 20 時間前
これは何?
Valdiは、モバイルやデスクトップ向けのUIを構築するためのSnap製フレームワークです。TypeScriptを使って宣言的なTSXでコンポーネントを記述すると、WebViewやJavaScriptブリッジ経由で描画するのではなく、iOS、Android、macOSのネイティブビューにコンパイルされます。
画面をまたいだビューの再利用、コンポーネント単位での独立した再レンダリング、RTLに対応したFlexboxベースのC++レイアウトエンジン、表示領域内のビューだけを生成するビューポート対応レンダリングを備えています。また、ホットリロード、ブレークポイントやヒープダンプに対応したVSCodeデバッグ、コンポーネント単位のテストフレームワークも利用できます。
既存のUIKitやAndroidのビュー階層へのValdiコンポーネントの組み込み、Valdiのレイアウト内でのネイティブビューの利用に対応しています。さらに、パフォーマンスが重要なモジュールはC++、Swift、Kotlin、Objective-Cで記述でき、TypeScriptバインディングを生成できます。プロジェクトはベータ版で、MITライセンスです。
主な機能
- 01宣言的なTSXコンポーネントをネイティブのiOS、Android、macOSビューにコンパイル
- 02ブレークポイントやヒープダンプに対応したホットリロードとVSCodeデバッグ
- 03グローバルなビュー再利用とビューポート対応レンダリングでスクロールを滑らかに
- 04自動RTL対応のC++製Flexboxレイアウトエンジン
- 05TypeScriptとKotlin、Swift、Objective-C間の型安全なバインディングを生成
- 06既存のネイティブビュー階層にValdiコンポーネントを組み込み
ユースケース
- WebViewを使わずにクロスプラットフォームのモバイル画面を構築
- 既存のiOSまたはAndroidアプリにValdiコンポーネントを段階的に追加
- TypeScriptバインディングを使い、パフォーマンスが重要なモジュールをC++またはSwiftで記述
- フィードなど、機能が豊富でスクロールの多いインターフェースを構築
クイックスタート
- 1
npmからValdi CLIをインストールする
npm install -g @snap/valdi - 2
依存関係をセットアップするワンコマンドを実行する
valdi dev_setup - 3
プロジェクトフォルダーを作成して、初期化する
mkdir my_project && cd my_project valdi bootstrap - 4
iOSまたはAndroidにアプリをインストールする
valdi install ios
使う前に知っておきたいこと
- ステータスはベータ版です。READMEによると、ツールとドキュメントはオープンソース環境で引き続き実地検証中です。
- iOSまたはmacOS向けのビルドにはXcode 26.5または27が必要なため、Macが必要です。
収録されている特集
トピック
よくある質問
- Valdi とは?
- 宣言的なTypeScriptコンポーネントをネイティブのiOS、Android、macOSビューにコンパイルするクロスプラットフォームUIフレームワーク。WebViewやJSブリッジは不要です。 Valdiは、モバイルやデスクトップ向けのUIを構築するためのSnap製フレームワークです。TypeScriptを使って宣言的なTSXでコンポーネントを記述すると、WebViewやJavaScriptブリッジ経由で描画するのではなく、iOS、Android、macOSのネイティブビューにコンパイルされます。
- Valdi は無料で使えますか?ライセンスは?
- Valdi は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Valdi は今もメンテナンスされていますか?
- 活発にメンテナンス中。Valdi の最終コミットは 2026年11月7日 です。
- Valdi は何に使えますか?
- WebViewを使わずにクロスプラットフォームのモバイル画面を構築 既存のiOSまたはAndroidアプリにValdiコンポーネントを段階的に追加 TypeScriptバインディングを使い、パフォーマンスが重要なモジュールをC++またはSwiftで記述 フィードなど、機能が豊富でスクロールの多いインターフェースを構築
- Valdi のインストール方法は?
- npmからValdi CLIをインストールする: npm install -g @snap/valdi 依存関係をセットアップするワンコマンドを実行する: valdi dev_setup プロジェクトフォルダーを作成して、初期化する: mkdir my_project && cd my_project valdi bootstrap iOSまたはAndroidにアプリをインストールする: valdi install ios
- Valdi はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Snapchat/Valdi
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
単一のコードベースから、デスクトップ、モバイル、組み込みプラットフォームで動作するGUIアプリを構築できるオープンソースのPythonフレームワーク。
JavaScriptバンドルの読み込み前、アプリ起動直後からネイティブ再生できるReact Native向けLottie・dotLottieスプラッシュ画面。
任意のバックエンドに接続でき、カスタマイズ可能なメッセージウィジェットを備えたFlutter向けチャットUIパッケージです。
Android、iOS、Webで動くReact製のユニバーサルなネイティブアプリを構築するオープンソースフレームワーク。
Vue.jsベースのクロスプラットフォームフレームワーク。1つのコードベースからiOS、Android、HarmonyOS、Web、多数のミニプログラム向けアプリを開発できます。