Sobes.tech
Junior — Middle

Descreve o exemplo de animação mais complexo que criaste em Flutter e as suas características de implementação.

sobes.tech IA

Resposta da IA

Um dos exemplos mais complexos de animação que criei no Flutter foi uma transição animada personalizada entre telas usando vários controladores de animação e curvas.

Características da implementação:

  • Usei AnimationController para gerenciar o tempo da animação.
  • Apliquei Tween para alterar suavemente parâmetros como posição, escala e transparência.
  • Sincronizei várias animações para que começassem e terminassem na sequência correta.
  • Usei AnimatedBuilder para atualizar a interface do usuário de forma ótima sem reconstruções desnecessárias.

Exemplo de código:

class ComplexTransition extends StatefulWidget {
  @override
  _ComplexTransitionState createState() => _ComplexTransitionState();
}

class _ComplexTransitionState extends State<ComplexTransition> with TickerProviderStateMixin {
  late AnimationController _controller;
  late Animation<double> _scaleAnimation;
  late Animation<Offset> _slideAnimation;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: Duration(seconds: 2),
      vsync: this,
    );

    _scaleAnimation = Tween<double>(begin: 0.5, end: 1.0).animate(
      CurvedAnimation(parent: _controller, curve: Curves.easeInOut),
    );

    _slideAnimation = Tween<Offset>(begin: Offset(0, 1), end: Offset.zero).animate(
      CurvedAnimation(parent: _controller, curve: Curves.easeInOut),
    );

    _controller.forward();
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return SlideTransition(
      position: _slideAnimation,
      child: ScaleTransition(
        scale: _scaleAnimation,
        child: Container(
          width: 200,
          height: 200,
          color: Colors.blue,
        ),
      ),
    );
  }
}

Essa abordagem permitiu criar um efeito de transição suave e complexo com mudanças simultâneas de posição e escala.