Repolode
Snapchat

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. 1

    npmからValdi CLIをインストールする

    npm install -g @snap/valdi
  2. 2

    依存関係をセットアップするワンコマンドを実行する

    valdi dev_setup
  3. 3

    プロジェクトフォルダーを作成して、初期化する

    mkdir my_project && cd my_project valdi bootstrap
  4. 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 の数値は毎日更新されます。

関連プロジェクト