Expoチームは、単一のインターフェース記述をWeb、macOS、iOS、Linux上でネイティブに実行できるクロスプラットフォーム・アプリケーション・ランタイム「Exact」を発表しました。WebViewやJavaScriptブリッジに依存する多くの既存フレームワークとは異なり、ExactはContractと呼ばれるカスタム宣言型言語を使用し、Rustランナーとレイアウトカーネルによって実行される「プラン」をコンパイルします。このアーキテクチャは、パフォーマンスとAI主導のワークフローを優先しながら、クロスプラットフォーム開発の摩擦を排除するように設計されています。

記事では、ExactがiOSを含む様々なプラットフォームで単一のインターフェース記述をネイティブに実行可能にする方法について説明しています。
Contract言語と実行モデル
Exactの中核となるのは、アプリケーションのインターフェースを記述するために使用される小さな宣言型言語であるContractです。Contractコンパイラは、この入力を構文、型、解析、ローワーリングの4つのパスを通して処理し、テーブルとバイトコードを含む「プラン」を生成します。
このプランは、すべてのホストにとっての信頼できるソースとなります。Web上では、プランは実際のDOMを駆動するESモジュールになります。ネイティブプラットフォームでは、Rustランナーがプランを実行し、レイアウトカーネル(Taffy)がCSSルールを使用してすべてのボックスを計算します。その後、各プラットフォームはmacOS用のAppKitやiOS用のUIKitなど、独自のネイティブツールを使用して結果を描画します。

記事では、ExactがRustランナーとレイアウトカーネルを使用して、macOS用のAppKitなどのプラットフォーム固有のツールを駆動することを説明しています。
「Exactは、コードの多くがAIエージェントによって書かれることを想定しています。」
— GitHub - expo/exact
エージェント・ネイティブ設計とパフォーマンス
Exactは、コードの多くがAIエージェントによって書かれるという前提で構築されています。これを促進するために、このフレームワークはtree、screenshot、tap、clockなどの10の特定の操作を提供し、エージェントが人間の介在なしにアプリを操作し、動作を証明できるようにします。「clock」操作は特に注目すべきもので、エージェントが時間を進めたり「settle(落ち着いた)」状態を待機したりすることを可能にし、自動テストにおけるタイミングの不一致を排除します。
スピードはこのプロジェクトの主要なエンジニアリング制約です。チームはコールドスタートと開発時の再起動の予算を追跡しており、p50で100msのターゲットを目指しています。これを達成するために、ブートパスでは何もコンパイルされません。TypeScriptはビルド時にHermesバイトコードにコンパイルされ、最初のピクセルがレンダリングされた後にのみロードされます。さらに、MarkdownエディタやGPUレンダリングなどの重いコンポーネントは、オンデマンドでのみロードされる個別のアーティファクトとして分離されています。
HN Digestによる図表(github.comの報告数値に基づく。数値はソースの表記通り)。
開発ループと制限事項
開発ワークフローでは、Webが主要な反復ループとして好まれます。開発者は、ブラウザがレイアウトとCSSを処理するWeb版のアプリ上で作業でき、ネイティブホストは「背後に隠れた」状態で動作します。フレームワークは、ネイティブのレイアウトをChromeの描画内容と照合して回避不可能な差異を宣言することで、視覚的な一致を保証します。

記事では、開発者が主要な反復ループとしてアプリのWeb版で作業できることに言及しています。
Exactは現在1.0以前の段階にあるため、APIの安定性、後方互換性、または移行ガイドがありません。プロジェクトは急速な日々の変化の中にあり、現在の実装は、プロダクション環境での採用を目指す開発者にとって動的な目標となっています。
Hacker Newsの読者の反応
- 技術的な指摘: あるコメント投稿者は、プロジェクトは野心的である一方で、エージェントがUIのタイミングを制御できるというフレームワークの能力が、正しいインタラクティブ性を確保するための重要な技術的ハードルであると指摘しました。 コメント ↗
- 懐疑的: 別のユーザーは、ソフトウェアの肥大化を減らすことについて楽観的な見方を示しましたが、フレームワークの成功はコードを書くために使用されるAIモデルの特定の能力に大きく依存する可能性があるという懸念を表明しました。 コメント ↗
Hacker Newsのスレッドで出た意見の要約です。事実として検証されたものではありません。 議論の全文を読む ↗