CustomPainter; no es un widget de pantalla.
API
animation también se utiliza como repaint del pintor. color es mutable en esta implementación. Los métodos públicos son paint(Canvas canvas, Size size) y shouldRepaint(covariant CustomPainter oldDelegate).
El pintor rota un degradado según animation.value, dibuja un RRect de radio fijo 20 y utiliza trazo de 4. shouldRepaint devuelve siempre true. La app es dueña de la animación y debe liberarla. El trazo puede sobresalir de los límites del rectángulo; permite espacio apropiado.