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

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

適切なアニメーション API を選択するための決定木を示すフローチャート
図 1. 適切なアニメーション API を選択する方法について説明するディシジョン ツリー。

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

次のディシジョン ツリーを使用して、ユースケースに最も適したアニメーション API を選択します。

  • アニメーションはアートベース(SVG または画像)ですか?
    • はい: シンプルな SVG(マイクロアニメーション付きのアイコン)を使用していますか?
    • いいえ: アニメーションを無限に繰り返す必要がありますか?
      • はい: rememberInfiniteTransition
      • いいえ: レイアウトをアニメーション化していますか?
        • はい: コンテンツが異なるコンポーザブルを切り替えていますか?
          • はい: Navigation-Compose を使用していますか?
          • 「いいえ」の場合: コンテンツの表示または非表示をアニメーション化していますか?
            • 可能: Modifier.alpha()AnimatedVisibility または animateFloatAsState
            • いいえ: サイズ変更をアニメーション化していますか?
              • はい: Modifier.animateContentSize
              • いいえ: 別のレイアウト プロパティ(オフセットやパディングなど)をアニメーション化していますか?
                • はい: 「プロパティは互いに完全に独立していますか?」をご覧ください。
                • いいえ: リストアイテムをアニメーション化していますか?
        • いいえ: 複数のプロパティをアニメーション化していますか?
          • はい: プロパティは互いに完全に独立していますか?
            • はい: animate*AsState。テキストの場合は TextMotion.Animated を使用します。
            • いいえ: 同時に開始する必要がありますか?
              • はい: AnimatedVisibilityanimateFloatanimateInt などの updateTransition
              • いいえ: animateTo を使用した Animatable。suspend 関数を使用して異なるタイミングで呼び出されます。
          • 「いいえ」の場合: アニメーションに事前定義されたターゲット値はありますか?
            • はい: animate*AsState。テキストには TextMotion.Animated を使用します。
            • いいえ: アニメーションはジェスチャー駆動で、信頼できる唯一の情報源ですか?
              • はい: AnimatableanimateTo / snapTo に置き換えます。
              • いいえ: 状態管理のないワンショット アニメーションですか?

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