@amazon-devices/lottie-react-nativeライブラリはLottie React Nativeを拡張して、Vega向けReact Native(RNV)アプリにおけるLottieアニメーションをサポートします。このライブラリをTypeScriptプロジェクトとJavaScript RNVプロジェクトの両方で使用して、Lottieアニメーションを実行できます。
このライブラリはRNVアプリにあらかじめインストールされているため、別途インストールする必要はありません。自動リンクライブラリとして機能し、実行時にアプリに接続します。互換性はライブラリとそれに対応するRNVバージョン間でのみ保証されることに注意してください。
Amazonでは、RNVバージョンをアップグレードする際にライブラリのバージョンを更新することを推奨しています。これによって一貫性が維持され、最新の機能や改善点を利用できるようになります。
インストール
パッケージを使用するには、次の手順に従います。package.jsonファイルにJavaScriptライブラリの依存関係を追加します。該当するReact Nativeバージョンのタブを選択してください。
- React Native 0.72
- React Native 0.83
-
npm installコマンドを使用して、package-lock.jsonファイルを再インストールします。 - Lottieアニメーションを<アプリパッケージのルート>/src/js/resources/に追加します。Lottieアニメーションの画像を<アプリパッケージのルート>/assets/image/に追加します。
例
Lottieは、次の例のように宣言的に使用できます。API
RNVでは、lottie-react-native(英語のみ)を使用してLottieアニメーションのサポートを追加しているため、lottie-react-native APIと同じAPIがサポートされます。@amazon-devices/lottie-react-nativeライブラリでは、iOS、Android、Windowsに固有のプロパティはサポートされません。
コンポーネントAPI
メソッド(命令型API)
例に示されているように、Lottieコンポーネントは、React.useRef(英語のみ)でコンポーネントをキャプチャすることで命令的に制御できます。参照を通じて、アニメーションの動作をより細かく制御できる以下のメソッドへのアクセスが提供されます。
アニメーションが同じ状態の場合、これらのメソッドはいずれも呼び出せません。たとえば、アニメーションの再生中はplay()を呼び出すことはできません。
アニメーションの再生中に異なるパラメーターでplay()を呼び出すと、ライブラリは最新の呼び出しで渡されたパラメーターを使用します。
Vegaでの例外
以下のアクションとAPIはVegaではサポートされていません。- URIを使用してリモートアセットを ‘source’ に渡す
.lottie形式のアセットColorFilters- テストフィルター - Vegaには
TestFilterIosやTestFilterAndroidに相当するものはありません。
imageAssetsFolderの使用方法
RNVのimageAssetsFolderプロパティを使用するには、次の手順に従います。
- 画像アセットを[プロジェクトフォルダ]/assets/imageにコピーします。
- Lottieサブフォルダを作成します。必要に応じてアニメーションごとにサブフォルダを作成します。
-
imageAssetsFolderプロパティでは、相対パスを使用してフォルダを参照します。例:imageAssetsFolder={‘lottie/animation_1’}
imageAssetsFolderを更新する必要はありません。
たとえば、[プロジェクトフォルダ]/assets/image/images/img_0.pngというパスではimageAssetsFolderを更新する必要はありません。
参考としてJSON構造の例を以下に示します。

