アニメーション API を選択する

下の図は、アニメーションの実装に使用する API を決定する際に役立ちます。

適切なアニメーション API を選択するための決定木を示すフローチャート

図 1.適切なアニメーション API の選択方法を説明したディシジョン ツリー

以下のディシジョン ツリーの質問を参考に、ユースケースに最適なアニメーション API を選択してください。

  • アニメーションはアートのようなもので、多くの視覚要素(SVG や画像)で構成されていますか?
    • はい: シンプルな SVG(マイクロ アニメーションを使用したアイコン)はありますか?
    • いいえ: 何度も繰り返す必要がありますか?
      • ○: rememberInfiniteTransition
      • いいえ: これはレイアウト アニメーションですか?
        • はい: コンテンツの異なる複数のコンポーザブルを切り替えますか?
          • ○: Navigation-compose を使う
          • いいえ: 外観や消失をアニメーション化していますか?
            • ○: AnimatedVisibility または animateFloatAsStateModifier.alpha() の場合)
            • いいえ: サイズをアニメーション化しますか?
              • ○: Modifier.animateContentSize
              • いいえ: その他のレイアウト プロパティ(オフセット、パディングなど)。
                • はい: 「これらのプロパティは互いに完全に独立していますか?」をご覧ください。
                • いいえ: リストアイテムのアニメーションですか?
        • いいえ: 複数のプロパティをアニメーション化する必要がありますか?
          • はい: これらのプロパティは互いに完全に独立していますか?
            • ○: animate*AsState、テキストの場合は TextMotion.Animated を使用します。
            • いいえ: 同時に開始しますか?
              • ○: ○: updateTransitionAnimatedVisibilityanimateFloatanimateInt など)
              • いいえ: animateTo を含む Animatable を異なるタイミングで呼び出す(suspend 関数を使用)
          • いいえ: アニメーションに定義済みのターゲット値のセットはあるか。
            • ○: animate*AsState、テキストの場合は TextMotion.Animated を使用
            • いいえ: ジェスチャー駆動型のアニメーションを使用しますか?アニメーションが唯一の信頼できる情報源ですか?

図の PDF 版をダウンロードします。