【ReactNative】react-native-animatableライブラリを使ってアニメーションを実装してみた
本記事の内容
  • アニメーションを使ってみたい
  • react-native-animatableライブラリの使い方がわからない

と言う方向けの記事となっています。

本記事を読むことで、このような動作を実装することができるようになります。


1. 概要

私がReactNativeでアプリ開発をしていてアニメーションを実装する時は、react-native-animatableライブラリを使っています。
今回は、そのreact-native-animatableライブラリを使ったアニメーションの実装方法について紹介していきます。

本記事では、ボタンやアイコンを使って解説しています。ボタンの作り方、アイコンの実装方法については、以前の記事を確認してください。

2. react-native-animatableライブラリの実装

2.1 ライブラリのインストール

まず、ターミナルで以下のコマンドを実行してライブラリをインストールします。


3. 使い方

今回は、以下の3つについて例を挙げながら解説していきます。

  • 1. 基本的な使い方
  • 2. refを使ったアニメーションの発火方法
  • 3. 自作アニメーションの作成方法

3.1 基本的な使い方

実装

サンプルコード 結果

サンプルコードについて解説

react-native-animatableライブラリでは、 View, Text, Imageコンポーネントにアニメーションを付ける時、以下のように書きます。


<View>コンポーネントの代わりに<Animatable.View>
<Text>コンポーネントの代わりに<Animatable.Text>
のように実装します。(<Image>コンポーネントも同じように書きます。)

プロパティ

アニメーションのプロパティは以下になります。(一部抜擢)

animation アニメーションの名前。使用可能なアニメーションについては、
react-native-animatableで確認
duration アニメーションの実行時間(ms)
delay アニメーションを遅延時間(ms)
direction(※1) アニメーションの方向。詳しくは、以下の表に記載
easing アニメーションのタイミング関数
iterationCount アニメーションを実行する回数。”infinite”を設定することで
アニメーションをループさせることができる
iterationDelay アニメーションの反復間で一時停止する時間(ms)

direction(アニメーションの方向)(※1)
  • normal: 設定したアニメーションの動作。
  • reverse: 設定アニメーションの逆の動作。
  • alternate: 設定したアニメーションの動作→逆の動作
  • alternate-reverse: 設定したアニメーションの逆の動作→設定したアニメーションの動作
以下の動画参考(アニメーションの種類:zoomIn)。

3.2 refを使ったアニメーションの発火方法

実装

サンプルコード 結果

サンプルコードについて解説

ref を使うことで、ユーザー操作(ボタンの押下)によってイベントが発生した時にアニメーションを実行させることができます。
以下のようにユーザー操作とアニメーションを紐付けします。


3.3 自作アニメーションの作成方法

実装

サンプルコード 結果

サンプルコードについて解説

animatableでは、自作のアニメーションを作ることができます。
キーフレーム(0〜1の値)にopacity(不透明度)とscale(大きさ)を設定することでアニメーションを作成することができます。

4.1 まとめ

簡単にアニメーションを導入でき、アニメーションの量も豊富であり、おすすめのライブラリです。是非、react-native-animatableライブラリを使うことをおすすめします。