lib/main.dart (AnimatedLogo)

AnimatedLogo uses the current value of the animation
when drawing itself.

The LogoApp still manages the AnimationController and the Tween,
and it passes the Animation object to AnimatedLogo:

{animate1 → animate2}/lib/main.dart

@@ -1,10 +1,28 @@

1
1

import 'package:flutter/material.dart';

2
2

void main() => runApp(const LogoApp());

+
            class AnimatedLogo extends AnimatedWidget {

+
              const AnimatedLogo({super.key, required Animation<double> animation})

+
                  : super(listenable: animation);

+
              @override

+
              Widget build(BuildContext context) {