@amazon-devices/react-native-workletsは、Reanimatedのパフォーマンス機能の基盤を提供するReact Nativeのマルチスレッドライブラリです。これにより、JavaScriptコードを複数のスレッドやランタイムで並行して実行することが可能になり、メインのJavaScriptスレッドをブロックしないスムーズなアニメーションと対話操作を実現できます。
ワークレットとは
ワークレットとは、シリアル化して異なるスレッドで実行できるJavaScript関数です。関数を'worklet'ディレクティブでマークすると、その関数はBabelプラグインによってシリアル化可能な形式に変換され、UIスレッドやほかのカスタムランタイムにコピーして実行できるようになります。
主な機能
- マルチスレッド:JavaScriptコードを別のスレッド(UIスレッド、カスタムワークレットランタイム)で実行します。
- ゼロコピーシリアル化:パフォーマンスのオーバーヘッドなしに、スレッド間で関数を効率的に転送します。
- Babelプラグインの統合:マークされた関数を自動的にワークレットに変換します。
- ランタイムの作成:特定用途のワークロード用にカスタムJavaScriptランタイムを作成します。
- シームレスな統合:アニメーションとジェスチャーのためにReanimatedと透過的に連携します。
ドキュメント
このライブラリの情報、APIリファレンス、その他の詳細については、専用のドキュメントページ(https://docs.swmansion.com/react-native-worklets/)(英語のみ)を参照してください。インストール
-
package.jsonファイルにJavaScriptライブラリの依存関係を追加します。 -
babel.config.jsに@amazon-devices/react-native-worklets/pluginプラグインを追加します。 -
npm start -- --reset-cacheコマンドを使用して、Metroバンドラーのキャッシュを消去します。 -
npm installコマンドを使用して、package-lock.jsonファイルを再インストールします。 - さらに詳しい情報が必要な場合は、外部ドキュメントのinstallationセクション(英語のみ)を参照してください。
例
並列処理のためにカスタムワークレットランタイムを作成して使用するデモAPI
Vegaのワークレットライブラリは、マルチスレッド処理、メモリ管理、ユーティリティ関数を含む包括的なAPIを提供します。スレッド
メモリ
ユーティリティ
Vegaでの例外
Vegaのワークレットライブラリには、APIサポートに関していくつかの例外があります。このセクションでは、これらの例外について説明します。- 機能フラグは、Vegaでは現在サポートされていません。
- バンドルモードは、Vegaでは現在サポートされていません。

