Language日本語
柱 04 · Visual Studio とコードのみ
Framer Motion の代替案: クリーンな React 出力を備えたビジュアル モーション キャンバス
コード エディタ ウィンドウで試行錯誤してアニメーション キーフレームやスプリング パラメータをコーディングするのはやめましょう。ライブ キャンバス上で視覚的にデザインし、React と Swift で同じファイルを再生します。
What is Framer Motion in ExodeUI?
ExodeUI は、設計およびエンジニアリング チーム向けの Framer Motion の視覚的な代替手段です。 Framer Motion では、開発者は完全に JavaScript コードを通じて複雑なアニメーション バリアント、ジェスチャ、およびスプリングを作成する必要がありますが、ExodeUI は、デザイナーがインタラクションを作成し、実稼働対応の React JSX および SwiftUI コンポーネントをエクスポートするビジュアル デザイン環境を提供します。
コアアーキテクチャ
エンジニアとデザイナーが ExodeUI を選ぶ理由
Design, logic and motion in one file that runs inside your app.
ビジュアルバリアントと状態インスペクター
ブラウザをリロードしたり JSON オブジェクトを書き込んだりせずに、レイアウトのシフト、スプリング カーブ、ホバー バリアントを即座にプレビューできます。
クロスプラットフォームのネイティブエクスポート
Framer Motion は Web 上では React に制限されます。 ExodeUI は、同一の物理演算を React、React Native Reanimated、および Apple SwiftUI にエクスポートします。
連続ジェスチャの物理学
複雑なドラッグ境界、フリング速度、磁気スナップをキャンバス上で視覚的に作成します。
マルチフレームワークの統合
既存のモーション (Framer Motion) コードと並行して使用します。設計されたコンポーネントには ExodeUI ファイル、残りにはコードを使用します。
客観的な評価
ExodeUI との比較 Framer Motion (Code Library)
Where ExodeUI is stronger, and what to weigh before you switch.
ExodeUI
- ビジュアルキャンバスオーサリングにより、退屈なコードの試行錯誤が不要になります
- React Web に加えて、React Native およびネイティブ SwiftUI に出力します。
- デザイナーとエンジニアは同じビジュアル モーション ファイルで共同作業します
- 依存関係のないコードエクスポートオプションを備えた軽量のフットプリント
Framer Motion (Code Library)
- 視覚的なオーサリング キャンバスがない: 開発者はコードを最初から作成する必要があります
- 設計者はエンジニアリングの支援なしにスプリング曲線を検査したり調整したりすることはできません
- Web React のみ: ネイティブ iOS SwiftUI または Android Compose にはエクスポートできません
- フルレイアウト投影エンジンをバンドルする場合は大きなバンドルサイズが必要
開発への引き継ぎ
コードでの使い方
Your app loads the compiled file through the ExodeUI runtime and talks to it through inputs and events.
// Playing an ExodeUI file in React with the exodeui package.
// The animation, its states and springs live in save-button.exode;
// your code only sets inputs and listens for events.
import { useEffect } from 'react';
import { ExodeUICanvas, useExodeUI } from 'exodeui';
import saveButton from './save-button.exode'; // read by exodePlugin() from 'exodeui/vite-plugin'
export function SaveButton({ saving, onSave }) {
const { setEngine, setInputBool } = useExodeUI();
// Drive the "Loading" state from app data
useEffect(() => {
setInputBool('Loading', saving);
}, [saving, setInputBool]);
return (
<div style={{ width: 220, height: 64 }}>
<ExodeUICanvas
artboard={saveButton}
onReady={setEngine}
onTrigger={(name) => {
if (name === 'Pressed') onSave();
}}
/>
</div>
);
}Framer Motion 開発者が ExodeUI を好む理由
Framer Motion は、React 開発者向けの優れたコードレベルのアニメーション ライブラリです。ただし、複雑なモーションを完全にコードで作成するには、コードの作成中にアニメーションが表示されないという大きな問題点があります。開発者は、剛性と減衰の値を調整し、ブラウザをリロードし、相互作用をテストし、それを何十回も繰り返す必要があります。
- 試行錯誤の摩擦: コード内の物理パラメータを微調整するには、何時間も手作業で実験する必要があります。
- クロスプラットフォーム無効: Framer Motion は、ネイティブ iOS SwiftUI または Android アプリケーションでは使用できません。
- 設計者の切断: 設計者は Framer Motion コードを直接変更できないため、終わりのないレビュー会議が発生します。
Topic Cluster Network
関連する概念とツール
ご質問はありますか
よくある質問
本物の動きで、生きたコンポーネントを作る。
Start free in the browser or download the desktop app. Compile spring physics and state machines directly to React and SwiftUI.