++
diff --git a/packages/flutter_shaders/example/analysis_options.yaml b/packages/flutter_shaders/example/analysis_options.yaml
deleted file mode 100644
index f9b3034..0000000
--- a/packages/flutter_shaders/example/analysis_options.yaml
+++ /dev/null
@@ -1 +0,0 @@
-include: package:flutter_lints/flutter.yaml
diff --git a/packages/flutter_shaders/example/pubspec.yaml b/packages/flutter_shaders/example/pubspec.yaml
index aaffbe4..640182d 100644
--- a/packages/flutter_shaders/example/pubspec.yaml
+++ b/packages/flutter_shaders/example/pubspec.yaml
@@ -10,11 +10,12 @@
     - shaders/solid_color.frag
     - shaders/blank.frag
 
-dev_dependencies:
+dependencies:
   flutter:
     sdk: flutter
+
+dev_dependencies:
   flutter_shaders:
     path: ../
   flutter_test:
     sdk: flutter
-  flutter_lints: ^1.0.0
diff --git a/packages/flutter_shaders/example/test/animated_sampler_test.dart b/packages/flutter_shaders/example/test/animated_sampler_test.dart
index 59fb472..cc485e5 100644
--- a/packages/flutter_shaders/example/test/animated_sampler_test.dart
+++ b/packages/flutter_shaders/example/test/animated_sampler_test.dart
@@ -10,7 +10,6 @@
 import 'package:flutter_shaders/flutter_shaders.dart';
 import 'package:flutter_test/flutter_test.dart';
 
-
 final Float64List _transform = Matrix4.identity().storage;
 
 void main() {
@@ -18,35 +17,39 @@
     await ShaderBuilder.precacheShader('shaders/sampler.frag');
   });
 
-  testWidgets('AnimatedSampler captures child widgets in texture', (WidgetTester tester) async {
+  testWidgets('AnimatedSampler captures child widgets in texture',
+      (WidgetTester tester) async {
     final GlobalKey globalKey = GlobalKey();
     bool usedShader = false;
-    await tester.pumpWidget(
-      MaterialApp(home: RepaintBoundary(
+    await tester.pumpWidget(MaterialApp(
+      home: RepaintBoundary(
         key: globalKey,
-        child: ShaderBuilder(
-          assetKey: 'shaders/sampler.frag',
-          (BuildContext context, FragmentShader shader, Widget? child) {
-            return AnimatedSampler((ui.Image image, Size size, Offset offset, Canvas canvas) {
-              usedShader = true;
-              final ImageShader sampler = ImageShader(image, TileMode.clamp, TileMode.clamp, _transform);
-              shader.setFloat(0, size.width);
-              shader.setFloat(1, size.height);
-              shader.setSampler(0, sampler);
+        child: ShaderBuilder(assetKey: 'shaders/sampler.frag',
+            (BuildContext context, FragmentShader shader, Widget? child) {
+          return AnimatedSampler(
+              (ui.Image image, Size size, Offset offset, Canvas canvas) {
+            usedShader = true;
+            final ImageShader sampler =
+                ImageShader(image, TileMode.clamp, TileMode.clamp, _transform);
+            shader.setFloat(0, size.width);
+            shader.setFloat(1, size.height);
+            shader.setSampler(0, sampler);
 
-              canvas.translate(offset.dx, offset.dy);
-              canvas.drawRect(Offset.zero & size, Paint()..shader = shader);
-            }, child: Container(color: Colors.red));
-          }),
-        ),
-      ));
+            canvas.translate(offset.dx, offset.dy);
+            canvas.drawRect(Offset.zero & size, Paint()..shader = shader);
+          }, child: Container(color: Colors.red));
+        }),
+      ),
+    ));
 
     expect(usedShader, true);
 
     ByteData? snapshot;
     await tester.runAsync(() async {
       snapshot = await (await (globalKey.currentContext?.findRenderObject()
-          as RenderRepaintBoundary?)!.toImage()).toByteData(format: ui.ImageByteFormat.rawStraightRgba);
+                  as RenderRepaintBoundary?)!
+              .toImage())
+          .toByteData(format: ui.ImageByteFormat.rawStraightRgba);
     });
 
     // Validate that color is Colors.red from child widget.
diff --git a/packages/flutter_shaders/example/test/shader_builder_test.dart b/packages/flutter_shaders/example/test/shader_builder_test.dart
index 0601a28..37c9175 100644
--- a/packages/flutter_shaders/example/test/shader_builder_test.dart
+++ b/packages/flutter_shaders/example/test/shader_builder_test.dart
@@ -9,7 +9,8 @@
 void main() {
   testWidgets('Can cache fragment shaders', (WidgetTester tester) async {
     bool shaderLoaded = false;
-    final Widget child = ShaderBuilder((BuildContext context, FragmentShader shader, Widget? child) {
+    final Widget child = ShaderBuilder(
+        (BuildContext context, FragmentShader shader, Widget? child) {
       shaderLoaded = true;
       return child ?? const SizedBox();
     }, assetKey: 'shaders/solid_color.frag');
@@ -26,7 +27,8 @@
 
     // Shader is still cached with a new widget.
     bool sameShaderLoaded = false;
-    await tester.pumpWidget(ShaderBuilder((BuildContext context, FragmentShader shader, Widget? child) {
+    await tester.pumpWidget(ShaderBuilder(
+        (BuildContext context, FragmentShader shader, Widget? child) {
       sameShaderLoaded = true;
       return child ?? const SizedBox();
     }, assetKey: 'shaders/solid_color.frag'));
@@ -34,18 +36,22 @@
     expect(sameShaderLoaded, true);
   });
 
-  testWidgets('ShaderBuilder.precacheShader reports flutter error if invalid asset is provided', (WidgetTester tester) async {
+  testWidgets(
+      'ShaderBuilder.precacheShader reports flutter error if invalid asset is provided',
+      (WidgetTester tester) async {
     await ShaderBuilder.precacheShader('shaders/bogus.frag');
 
     expect(tester.takeException(), isNotNull);
   });
 
-  testWidgets('ShaderBuilder.precacheShader makes shader available '
-    'synchronously when future completes', (WidgetTester tester) async {
+  testWidgets(
+      'ShaderBuilder.precacheShader makes shader available '
+      'synchronously when future completes', (WidgetTester tester) async {
     await ShaderBuilder.precacheShader('shaders/sampler.frag');
 
     bool shaderLoaded = false;
-    await tester.pumpWidget(ShaderBuilder((BuildContext context, FragmentShader shader, Widget? child) {
+    await tester.pumpWidget(ShaderBuilder(
+        (BuildContext context, FragmentShader shader, Widget? child) {
       shaderLoaded = true;
       return child ?? const SizedBox();
     }, assetKey: 'shaders/sampler.frag'));
@@ -53,14 +59,19 @@
     expect(shaderLoaded, true);
   });
 
-  testWidgets('ShaderBuilder.precacheShader reports flutter error if invalid asset is provided', (WidgetTester tester) async {
+  testWidgets(
+      'ShaderBuilder.precacheShader reports flutter error if invalid asset is provided',
+      (WidgetTester tester) async {
     await ShaderBuilder.precacheShader('shaders/bogus.frag');
 
     expect(tester.takeException(), isNotNull);
   });
 
-  testWidgets('ShaderBuilder reports flutter error if invalid asset is provided', (WidgetTester tester) async {
-    await tester.pumpWidget(ShaderBuilder((BuildContext context, FragmentShader shader, Widget? child) {
+  testWidgets(
+      'ShaderBuilder reports flutter error if invalid asset is provided',
+      (WidgetTester tester) async {
+    await tester.pumpWidget(ShaderBuilder(
+        (BuildContext context, FragmentShader shader, Widget? child) {
       return child ?? const SizedBox();
     }, assetKey: 'shaders/bogus.frag'));
 
diff --git a/packages/flutter_shaders/lib/src/animated_sampler.dart b/packages/flutter_shaders/lib/src/animated_sampler.dart
index 4961edd..b1f917e 100644
--- a/packages/flutter_shaders/lib/src/animated_sampler.dart
+++ b/packages/flutter_shaders/lib/src/animated_sampler.dart
@@ -8,7 +8,8 @@
 import 'package:flutter/rendering.dart';
 
 /// A callback for the [AnimatedSamplerBuilder] widget.
-typedef AnimatedSamplerBuilder = void Function(ui.Image, Size, Offset offset, ui.Canvas);
+typedef AnimatedSamplerBuilder = void Function(
+    ui.Image, Size, Offset offset, ui.Canvas);
 
 /// A widget that allows access to a snapshot of the child widgets for painting
 /// with a sampler applied to a [FragmentProgram].
@@ -52,7 +53,8 @@
 ///      caching during expensive animations.
 class AnimatedSampler extends StatelessWidget {
   /// Create a new [AnimatedSampler].
-  const AnimatedSampler(this.builder, {
+  const AnimatedSampler(
+    this.builder, {
     required this.child,
     super.key,
     this.enabled = true,
@@ -80,7 +82,7 @@
 }
 
 class _ShaderSamplerImpl extends SingleChildRenderObjectWidget {
-  const _ShaderSamplerImpl(this.builder, { super.child, required this.enabled });
+  const _ShaderSamplerImpl(this.builder, {super.child, required this.enabled});
 
   final AnimatedSamplerBuilder builder;
   final bool enabled;
@@ -95,7 +97,8 @@
   }
 
   @override
-  void updateRenderObject(BuildContext context, covariant RenderObject renderObject) {
+  void updateRenderObject(
+      BuildContext context, covariant RenderObject renderObject) {
     (renderObject as _RenderShaderSamplerBuilderWidget)
       ..devicePixelRatio = MediaQuery.of(context).devicePixelRatio
       ..builder = builder
@@ -106,16 +109,14 @@
 // A render object that conditionally converts its child into a [ui.Image]
 // and then paints it in place of the child.
 class _RenderShaderSamplerBuilderWidget extends RenderProxyBox {
-
   // Create a new [_RenderSnapshotWidget].
   _RenderShaderSamplerBuilderWidget({
     required double devicePixelRatio,
     required AnimatedSamplerBuilder builder,
     required bool enabled,
-  }) : _devicePixelRatio = devicePixelRatio,
-       _builder = builder,
-       _enabled = enabled;
-
+  })  : _devicePixelRatio = devicePixelRatio,
+        _builder = builder,
+        _enabled = enabled;
 
   /// The device pixel ratio used to create the child image.
   double get devicePixelRatio => _devicePixelRatio;
@@ -175,14 +176,16 @@
   // children from this layer.
   ui.Image? _paintAndDetachToImage() {
     final OffsetLayer offsetLayer = OffsetLayer();
-    final PaintingContext context = PaintingContext(offsetLayer, Offset.zero & size);
+    final PaintingContext context =
+        PaintingContext(offsetLayer, Offset.zero & size);
     super.paint(context, Offset.zero);
     // This ignore is here because this method is protected by the `PaintingContext`. Adding a new
     // method that performs the work of `_paintAndDetachToImage` would avoid the need for this, but
     // that would conflict with our goals of minimizing painting context.
     // ignore: invalid_use_of_protected_member
     context.stopRecordingIfNeeded();
-    final ui.Image image = offsetLayer.toImageSync(Offset.zero & size, pixelRatio: devicePixelRatio);
+    final ui.Image image = offsetLayer.toImageSync(Offset.zero & size,
+        pixelRatio: devicePixelRatio);
     offsetLayer.dispose();
     return image;
   }
diff --git a/packages/flutter_shaders/lib/src/shader_builder.dart b/packages/flutter_shaders/lib/src/shader_builder.dart
index 54afc4c..912aa8e 100644
--- a/packages/flutter_shaders/lib/src/shader_builder.dart
+++ b/packages/flutter_shaders/lib/src/shader_builder.dart
@@ -7,7 +7,8 @@
 import 'package:flutter/widgets.dart';
 
 /// A callback used by [ShaderBuilder].
-typedef ShaderBuilderCallback = Widget Function(BuildContext, ui.FragmentShader, Widget?);
+typedef ShaderBuilderCallback = Widget Function(
+    BuildContext, ui.FragmentShader, Widget?);
 
 /// A widget that loads and caches [FragmentProgram]s based on the asset key.
 ///
@@ -37,7 +38,8 @@
 /// ```
 class ShaderBuilder extends StatefulWidget {
   /// Create a new [ShaderBuilder].
-  const ShaderBuilder(this.builder, {
+  const ShaderBuilder(
+    this.builder, {
     super.key,
     required this.assetKey,
     this.child,
@@ -66,10 +68,12 @@
     if (_ShaderBuilderState._shaderCache.containsKey(assetKey)) {
       return Future<void>.value();
     }
-    return ui.FragmentProgram.fromAsset(assetKey).then((ui.FragmentProgram program) {
-     _ShaderBuilderState._shaderCache[assetKey] = program;
+    return ui.FragmentProgram.fromAsset(assetKey).then(
+        (ui.FragmentProgram program) {
+      _ShaderBuilderState._shaderCache[assetKey] = program;
     }, onError: (Object error, StackTrace stackTrace) {
-      FlutterError.reportError(FlutterErrorDetails(exception: error, stack: stackTrace));
+      FlutterError.reportError(
+          FlutterErrorDetails(exception: error, stack: stackTrace));
     });
   }
 }
@@ -78,7 +82,8 @@
   ui.FragmentProgram? program;
   ui.FragmentShader? shader;
 
-  static final Map<String, ui.FragmentProgram> _shaderCache = <String, ui.FragmentProgram>{};
+  static final Map<String, ui.FragmentProgram> _shaderCache =
+      <String, ui.FragmentProgram>{};
 
   @override
   void initState() {
@@ -111,7 +116,8 @@
         _shaderCache[assetKey] = program;
       });
     }, onError: (Object error, StackTrace stackTrace) {
-      FlutterError.reportError(FlutterErrorDetails(exception: error, stack: stackTrace));
+      FlutterError.reportError(
+          FlutterErrorDetails(exception: error, stack: stackTrace));
     });
   }