diff --git a/dev/snippets/config/templates/README.md b/dev/snippets/config/templates/README.md
index 8d7f260..5ae2e9c 100644
--- a/dev/snippets/config/templates/README.md
+++ b/dev/snippets/config/templates/README.md
@@ -86,3 +86,8 @@
 - [`stateless_widget_scaffold`](stateless_widget_scaffold.tmpl) : Similar to
   `stateless_widget_material`, except that it wraps the stateless widget with a
   Scaffold.
+
+- [`stateful_widget_animation`](stateful_widget_animation.tmpl) : Similar to
+  `stateful_widget`, except that it declares an `AnimationController` instance
+  variable called `_controller`, and it properly initializes the controller
+  in `initState()` and properly disposes of the controller in `dispose()`.
diff --git a/dev/snippets/config/templates/stateful_widget_animation.tmpl b/dev/snippets/config/templates/stateful_widget_animation.tmpl
new file mode 100644
index 0000000..2e2b4a5
--- /dev/null
+++ b/dev/snippets/config/templates/stateful_widget_animation.tmpl
@@ -0,0 +1,53 @@
+// Flutter code sample for {{id}}
+
+{{description}}
+
+import 'package:flutter/widgets.dart';
+
+{{code-imports}}
+
+void main() => runApp(new MyApp());
+
+/// This Widget is the main application widget.
+class MyApp extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    return WidgetsApp(
+      title: 'Flutter Code Sample',
+      home: MyStatefulWidget(),
+      color: const Color(0xffffffff),
+    );
+  }
+}
+
+{{code-preamble}}
+
+/// This is the stateful widget that the main application instantiates.
+class MyStatefulWidget extends StatefulWidget {
+  MyStatefulWidget({Key key}) : super(key: key);
+
+  @override
+  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
+}
+
+// This is the private State class that goes with MyStatefulWidget.
+class _MyStatefulWidgetState extends State<MyStatefulWidget> {
+  AnimationController _controller;
+
+  @override
+  void initState() {
+    super.initState();
+    _controller = AnimationController(
+      vsync: this,
+      duration: const Duration(seconds: 1),
+    );
+  }
+
+  @override
+  void dispose() {
+    _controller.dispose();
+    super.dispose();
+  }
+
+  {{code}}
+}
