Animaciones Personalizadas en Aplicaciones: Creación y Configuración

Clase 22 de 26Curso de Flutter

Resumen

¿Cómo añadir animaciones a favoritos en una app?

Las animaciones son una parte fundamental en el diseño moderno de aplicaciones. Mejoran la experiencia del usuario, haciéndola más interactiva y dinámica. A continuación, aprenderás a integrar animaciones en el botón de agregar y eliminar de favoritos de una aplicación. Utilizaremos la librería Flutter para hacer esta implementación.

¿Cómo integrar un switch animado?

Para integrar una animación cuando se añade o elimina de favoritos, utilizaremos un AnimatedSwitcher. Este widget permite un cambio suave entre dos widgets cuando uno es reemplazado por el otro.

  1. Duración de la animación:

    • Debemos definir la duración de la animación en milisegundos. En este caso, la duración será de 300 milisegundos, lo cual asegura una transición suave pero rápida.
  2. Builder de transición:

    • Utilizaremos transitionBuilder para manejar la forma en que se lleva a cabo la transición. En este caso, empleamos un ScaleTransition para crecer o reducir el tamaño del ícono durante la transición.
  3. Código de ejemplo:

    return AnimatedSwitcher(
      duration: Duration(milliseconds: 300),
      transitionBuilder: (Widget child, Animation<double> animation) {
        return ScaleTransition(scale: animation, child: child);
      },
      child: Icon( // Aquí va el ícono que cambia
        Icons.favorite,
        key: ValueKey<bool>(isFavorite),
        color: isFavorite ? Colors.red : Colors.grey,
      ),
    );
    

¿Cómo cambiar las propiedades del ícono durante la animación?

Además de la animación en el tamaño, también queremos que el color del ícono cambie para reflejar su estado (favorito o no favorito).

  1. Booleano para el estado:

    • Utilizamos una variable booleana isFavorite para determinar el estado del ícono y cambiar su color.
  2. Código de ejemplo:

    • Dentro de nuestro AnimatedSwitcher, el ícono cambia de color según el estado de isFavorite:
    Icon(
      Icons.favorite,
      color: isFavorite ? Colors.red : Colors.grey,
    )
    

¿Cómo personalizar las animaciones?

Flutter ofrece la posibilidad de crear animaciones totalmente personalizadas utilizando AnimationController y Tween. Esto permite definir de manera precisa el comportamiento de la animación.

  1. Configuración inicial del controlador:

    • Creamos un AnimationController y un Tween para manejar el inicio y fin de la animación con un efecto de zoom.
  2. Iniciar y finalizar la animación:

    • Se define un initState para inicializar la animación y un dispose para finalizarla correctamente.
  3. Código de ejemplo:

    class MyIconAnimation extends StatefulWidget {
      
      _MyIconAnimationState createState() => _MyIconAnimationState();
    }
    
    class _MyIconAnimationState extends State<MyIconAnimation> with SingleTickerProviderStateMixin {
      late AnimationController _controller;
      late Animation<double> _animation;
    
      
      void initState() {
        super.initState();
        _controller = AnimationController(
          duration: const Duration(milliseconds: 300),
          vsync: this,
        );
        _animation = Tween<double>(begin: 0.0, end: 1.0).animate(CurvedAnimation(
          parent: _controller,
          curve: Curves.easeInOut,
        ));
      }
    
      
      void dispose() {
        _controller.dispose();
        super.dispose();
      }
    }
    

Con estos pasos, puedes integrar animaciones básicas y personalizadas en tus aplicaciones. Las animaciones mejoran la interacción y la emoción del usuario, haciéndolo sentir más conectado con la aplicación. ¡Prueba y personaliza estas animaciones para hacer tus aplicaciones más atractivas y amigables!