[url_launcher] Switch to new analysis options (#4551)

Removes the legacy analysis options for all `url_launcher` packages, and fixes all resulting violations. Most fixes are automatic `dart fix` changes.

No version change: Most of these changes are to code that don't affect clients, or are clearly no-ops (e.g., adding a type specifier that was already strongly inferred). Only the packages where there is some potential for change—although none is actually expected—have version bumps.

Part of https://github.com/flutter/flutter/issues/76229
diff --git a/packages/url_launcher/analysis_options.yaml b/packages/url_launcher/analysis_options.yaml
deleted file mode 100644
index cda4f6e..0000000
--- a/packages/url_launcher/analysis_options.yaml
+++ /dev/null
@@ -1 +0,0 @@
-include: ../../analysis_options_legacy.yaml
diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md
index 46b71f6..2290fd0 100644
--- a/packages/url_launcher/url_launcher/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 6.0.17
+
+* Updates code for new analysis options.
+
 ## 6.0.16
 
 * Moves Android and iOS implementations to federated packages.
diff --git a/packages/url_launcher/url_launcher/example/lib/main.dart b/packages/url_launcher/url_launcher/example/lib/main.dart
index 7e4d18a..a5e38ce 100644
--- a/packages/url_launcher/url_launcher/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher/example/lib/main.dart
@@ -22,13 +22,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
@@ -213,11 +213,11 @@
                 uri: Uri.parse(
                     'https://pub.dev/documentation/url_launcher/latest/link/link-library.html'),
                 target: LinkTarget.blank,
-                builder: (ctx, openLink) {
+                builder: (BuildContext ctx, FollowLink? openLink) {
                   return TextButton.icon(
                     onPressed: openLink,
-                    label: Text('Link Widget documentation'),
-                    icon: Icon(Icons.read_more),
+                    label: const Text('Link Widget documentation'),
+                    icon: const Icon(Icons.read_more),
                   );
                 },
               ),
diff --git a/packages/url_launcher/url_launcher/example/pubspec.yaml b/packages/url_launcher/url_launcher/example/pubspec.yaml
index db1d548..3b2bba9 100644
--- a/packages/url_launcher/url_launcher/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher/example/pubspec.yaml
@@ -18,11 +18,10 @@
     path: ../
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
   mockito: ^5.0.0
   plugin_platform_interface: ^2.0.0
 
diff --git a/packages/url_launcher/url_launcher/lib/link.dart b/packages/url_launcher/url_launcher/lib/link.dart
index 12a213b..00947cd 100644
--- a/packages/url_launcher/url_launcher/lib/link.dart
+++ b/packages/url_launcher/url_launcher/lib/link.dart
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-export 'src/link.dart' show Link;
 export 'package:url_launcher_platform_interface/link.dart'
     show FollowLink, LinkTarget, LinkWidgetBuilder;
+
+export 'src/link.dart' show Link;
diff --git a/packages/url_launcher/url_launcher/lib/src/link.dart b/packages/url_launcher/url_launcher/lib/src/link.dart
index 72d6e24..67aa244 100644
--- a/packages/url_launcher/url_launcher/lib/src/link.dart
+++ b/packages/url_launcher/url_launcher/lib/src/link.dart
@@ -43,27 +43,31 @@
 /// );
 /// ```
 class Link extends StatelessWidget implements LinkInfo {
-  /// Called at build time to construct the widget tree under the link.
-  final LinkWidgetBuilder builder;
-
-  /// The destination that this link leads to.
-  final Uri? uri;
-
-  /// The target indicating where to open the link.
-  final LinkTarget target;
-
-  /// Whether the link is disabled or not.
-  bool get isDisabled => uri == null;
-
   /// Creates a widget that renders a real link on the web, and uses WebViews in
   /// native platforms to open links.
-  Link({
+  const Link({
     Key? key,
     required this.uri,
     this.target = LinkTarget.defaultTarget,
     required this.builder,
   }) : super(key: key);
 
+  /// Called at build time to construct the widget tree under the link.
+  @override
+  final LinkWidgetBuilder builder;
+
+  /// The destination that this link leads to.
+  @override
+  final Uri? uri;
+
+  /// The target indicating where to open the link.
+  @override
+  final LinkTarget target;
+
+  /// Whether the link is disabled or not.
+  @override
+  bool get isDisabled => uri == null;
+
   LinkDelegate get _effectiveDelegate {
     return UrlLauncherPlatform.instance.linkDelegate ??
         DefaultLinkDelegate.create;
@@ -94,8 +98,12 @@
   final LinkInfo link;
 
   bool get _useWebView {
-    if (link.target == LinkTarget.self) return true;
-    if (link.target == LinkTarget.blank) return false;
+    if (link.target == LinkTarget.self) {
+      return true;
+    }
+    if (link.target == LinkTarget.blank) {
+      return false;
+    }
     return false;
   }
 
diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml
index 5844031..4ccf48b 100644
--- a/packages/url_launcher/url_launcher/pubspec.yaml
+++ b/packages/url_launcher/url_launcher/pubspec.yaml
@@ -3,7 +3,7 @@
   web, phone, SMS, and email schemes.
 repository: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22
-version: 6.0.16
+version: 6.0.17
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
@@ -41,6 +41,5 @@
   flutter_test:
     sdk: flutter
   mockito: ^5.0.0
-  pedantic: ^1.10.0
   plugin_platform_interface: ^2.0.0
   test: ^1.16.3
diff --git a/packages/url_launcher/url_launcher/test/link_test.dart b/packages/url_launcher/url_launcher/test/link_test.dart
index 819f6a3..f7a98a0 100644
--- a/packages/url_launcher/url_launcher/test/link_test.dart
+++ b/packages/url_launcher/url_launcher/test/link_test.dart
@@ -3,8 +3,8 @@
 // found in the LICENSE file.
 
 import 'package:flutter/material.dart';
-import 'package:flutter_test/flutter_test.dart';
 import 'package:flutter/services.dart';
+import 'package:flutter_test/flutter_test.dart';
 import 'package:url_launcher/link.dart';
 import 'package:url_launcher/src/link.dart';
 import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
@@ -118,11 +118,11 @@
       ));
 
       bool frameworkCalled = false;
-      Future<ByteData> Function(Object?, String) originalPushFunction =
+      final Future<ByteData> Function(Object?, String) originalPushFunction =
           pushRouteToFrameworkFunction;
       pushRouteToFrameworkFunction = (Object? _, String __) {
         frameworkCalled = true;
-        return Future.value(ByteData(0));
+        return Future<ByteData>.value(ByteData(0));
       };
 
       await followLink!();
diff --git a/packages/url_launcher/url_launcher/test/url_launcher_test.dart b/packages/url_launcher/url_launcher/test/url_launcher_test.dart
index a038746..4e980cb 100644
--- a/packages/url_launcher/url_launcher/test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher/test/url_launcher_test.dart
@@ -5,11 +5,11 @@
 import 'dart:async';
 import 'dart:ui';
 
-import 'package:flutter_test/flutter_test.dart';
 import 'package:flutter/foundation.dart';
+import 'package:flutter/services.dart' show PlatformException;
+import 'package:flutter_test/flutter_test.dart';
 import 'package:url_launcher/url_launcher.dart';
 import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
-import 'package:flutter/services.dart' show PlatformException;
 
 import 'mock_url_launcher_platform.dart';
 
@@ -239,7 +239,7 @@
         ..setResponse(true);
 
       final TestWidgetsFlutterBinding binding =
-          _anonymize(TestWidgetsFlutterBinding.ensureInitialized())
+          _anonymize(TestWidgetsFlutterBinding.ensureInitialized())!
               as TestWidgetsFlutterBinding;
       debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
       binding.renderView.automaticSystemUiAdjustment = true;
@@ -268,7 +268,7 @@
         ..setResponse(true);
 
       final TestWidgetsFlutterBinding binding =
-          _anonymize(TestWidgetsFlutterBinding.ensureInitialized())
+          _anonymize(TestWidgetsFlutterBinding.ensureInitialized())!
               as TestWidgetsFlutterBinding;
       debugDefaultTargetPlatformOverride = TargetPlatform.android;
       expect(binding.renderView.automaticSystemUiAdjustment, true);
diff --git a/packages/url_launcher/url_launcher_android/CHANGELOG.md b/packages/url_launcher/url_launcher_android/CHANGELOG.md
index 8b336a0..1b60e86 100644
--- a/packages/url_launcher/url_launcher_android/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates code for new analysis options.
+
 ## 6.0.13
 
 * Splits from `shared_preferences` as a federated implementation.
diff --git a/packages/url_launcher/url_launcher_android/example/integration_test/url_launcher_test.dart b/packages/url_launcher/url_launcher_android/example/integration_test/url_launcher_test.dart
index ac9f64c..28dc79b 100644
--- a/packages/url_launcher/url_launcher_android/example/integration_test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_android/example/integration_test/url_launcher_test.dart
@@ -10,7 +10,7 @@
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
   testWidgets('canLaunch', (WidgetTester _) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
 
     expect(await launcher.canLaunch('randomstring'), false);
 
diff --git a/packages/url_launcher/url_launcher_android/example/lib/main.dart b/packages/url_launcher/url_launcher_android/example/lib/main.dart
index 0899232..8721c58 100644
--- a/packages/url_launcher/url_launcher_android/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_android/example/lib/main.dart
@@ -21,13 +21,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
@@ -39,7 +39,7 @@
   String _phone = '';
 
   Future<void> _launchInBrowser(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -56,7 +56,7 @@
   }
 
   Future<void> _launchInWebViewOrVC(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -73,7 +73,7 @@
   }
 
   Future<void> _launchInWebViewWithJavaScript(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -90,7 +90,7 @@
   }
 
   Future<void> _launchInWebViewWithDomStorage(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -115,7 +115,7 @@
   }
 
   Future<void> _makePhoneCall(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
diff --git a/packages/url_launcher/url_launcher_android/example/pubspec.yaml b/packages/url_launcher/url_launcher_android/example/pubspec.yaml
index db22fd3..9af7b28 100644
--- a/packages/url_launcher/url_launcher_android/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_android/example/pubspec.yaml
@@ -18,11 +18,10 @@
     path: ../
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
   mockito: ^5.0.0
   plugin_platform_interface: ^2.0.0
 
diff --git a/packages/url_launcher/url_launcher_android/pubspec.yaml b/packages/url_launcher/url_launcher_android/pubspec.yaml
index 0abed02..959e6d0 100644
--- a/packages/url_launcher/url_launcher_android/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_android/pubspec.yaml
@@ -26,6 +26,5 @@
   flutter_test:
     sdk: flutter
   mockito: ^5.0.0
-  pedantic: ^1.10.0
   plugin_platform_interface: ^2.0.0
   test: ^1.16.3
diff --git a/packages/url_launcher/url_launcher_ios/CHANGELOG.md b/packages/url_launcher/url_launcher_ios/CHANGELOG.md
index 931d85e..0f9190d 100644
--- a/packages/url_launcher/url_launcher_ios/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates code for new analysis options.
+
 ## 6.0.13
 
 * Splits from `url_launcher` as a federated implementation.
diff --git a/packages/url_launcher/url_launcher_ios/example/integration_test/url_launcher_test.dart b/packages/url_launcher/url_launcher_ios/example/integration_test/url_launcher_test.dart
index f7cec29..b8f1905 100644
--- a/packages/url_launcher/url_launcher_ios/example/integration_test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_ios/example/integration_test/url_launcher_test.dart
@@ -10,7 +10,7 @@
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
   testWidgets('canLaunch', (WidgetTester _) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
 
     expect(await launcher.canLaunch('randomstring'), false);
 
diff --git a/packages/url_launcher/url_launcher_ios/example/lib/main.dart b/packages/url_launcher/url_launcher_ios/example/lib/main.dart
index a16a4dd..2f73622 100644
--- a/packages/url_launcher/url_launcher_ios/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_ios/example/lib/main.dart
@@ -21,13 +21,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
@@ -39,7 +39,7 @@
   String _phone = '';
 
   Future<void> _launchInBrowser(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -56,7 +56,7 @@
   }
 
   Future<void> _launchInWebViewOrVC(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -73,7 +73,7 @@
   }
 
   Future<void> _launchInWebViewWithJavaScript(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -90,7 +90,7 @@
   }
 
   Future<void> _launchInWebViewWithDomStorage(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
@@ -107,7 +107,7 @@
   }
 
   Future<void> _launchUniversalLinkIos(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       final bool nativeAppLaunchSucceeded = await launcher.launch(
         url,
@@ -141,7 +141,7 @@
   }
 
   Future<void> _makePhoneCall(String url) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
     if (await launcher.canLaunch(url)) {
       await launcher.launch(
         url,
diff --git a/packages/url_launcher/url_launcher_ios/example/pubspec.yaml b/packages/url_launcher/url_launcher_ios/example/pubspec.yaml
index 2af807d..da4c72c 100644
--- a/packages/url_launcher/url_launcher_ios/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_ios/example/pubspec.yaml
@@ -18,11 +18,10 @@
     path: ../
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
   mockito: ^5.0.0
   plugin_platform_interface: ^2.0.0
 
diff --git a/packages/url_launcher/url_launcher_ios/pubspec.yaml b/packages/url_launcher/url_launcher_ios/pubspec.yaml
index dfd4f79..1e1ee87 100644
--- a/packages/url_launcher/url_launcher_ios/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_ios/pubspec.yaml
@@ -25,6 +25,5 @@
   flutter_test:
     sdk: flutter
   mockito: ^5.0.0
-  pedantic: ^1.10.0
   plugin_platform_interface: ^2.0.0
   test: ^1.16.3
diff --git a/packages/url_launcher/url_launcher_linux/CHANGELOG.md b/packages/url_launcher/url_launcher_linux/CHANGELOG.md
index 147d0f3..f47d4fd 100644
--- a/packages/url_launcher/url_launcher_linux/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_linux/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates code for new analysis options.
+
 ## 2.0.2
 
 * Replaced reference to `shared_preferences` plugin with the `url_launcher` in the README.
diff --git a/packages/url_launcher/url_launcher_linux/example/integration_test/url_launcher_test.dart b/packages/url_launcher/url_launcher_linux/example/integration_test/url_launcher_test.dart
index ae9a914..c9d0d8c 100644
--- a/packages/url_launcher/url_launcher_linux/example/integration_test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_linux/example/integration_test/url_launcher_test.dart
@@ -10,7 +10,7 @@
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
   testWidgets('canLaunch', (WidgetTester _) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
 
     expect(await launcher.canLaunch('randomstring'), false);
 
diff --git a/packages/url_launcher/url_launcher_linux/example/lib/main.dart b/packages/url_launcher/url_launcher_linux/example/lib/main.dart
index 86e06f3..a9a5d22 100644
--- a/packages/url_launcher/url_launcher_linux/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_linux/example/lib/main.dart
@@ -20,13 +20,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
diff --git a/packages/url_launcher/url_launcher_linux/example/pubspec.yaml b/packages/url_launcher/url_launcher_linux/example/pubspec.yaml
index b0ef2e6..5e6c3fc 100644
--- a/packages/url_launcher/url_launcher_linux/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_linux/example/pubspec.yaml
@@ -19,11 +19,10 @@
   url_launcher_platform_interface: ^2.0.0
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
 
 flutter:
   uses-material-design: true
diff --git a/packages/url_launcher/url_launcher_macos/CHANGELOG.md b/packages/url_launcher/url_launcher_macos/CHANGELOG.md
index 96d2fd4..7b7677a 100644
--- a/packages/url_launcher/url_launcher_macos/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_macos/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates code for new analysis options.
+
 ## 2.0.2
 
 * Replaced reference to `shared_preferences` plugin with the `url_launcher` in the README.
diff --git a/packages/url_launcher/url_launcher_macos/example/integration_test/url_launcher_test.dart b/packages/url_launcher/url_launcher_macos/example/integration_test/url_launcher_test.dart
index 897b22f..87bc3d2 100644
--- a/packages/url_launcher/url_launcher_macos/example/integration_test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_macos/example/integration_test/url_launcher_test.dart
@@ -10,7 +10,7 @@
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
   testWidgets('canLaunch', (WidgetTester _) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
 
     expect(await launcher.canLaunch('randomstring'), false);
 
diff --git a/packages/url_launcher/url_launcher_macos/example/lib/main.dart b/packages/url_launcher/url_launcher_macos/example/lib/main.dart
index 86e06f3..a9a5d22 100644
--- a/packages/url_launcher/url_launcher_macos/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_macos/example/lib/main.dart
@@ -20,13 +20,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
diff --git a/packages/url_launcher/url_launcher_macos/example/pubspec.yaml b/packages/url_launcher/url_launcher_macos/example/pubspec.yaml
index 6d12b75..9bc3062 100644
--- a/packages/url_launcher/url_launcher_macos/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_macos/example/pubspec.yaml
@@ -19,11 +19,10 @@
   url_launcher_platform_interface: ^2.0.0
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
 
 flutter:
   uses-material-design: true
diff --git a/packages/url_launcher/url_launcher_macos/pubspec.yaml b/packages/url_launcher/url_launcher_macos/pubspec.yaml
index 5348300..01f1db0 100644
--- a/packages/url_launcher/url_launcher_macos/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_macos/pubspec.yaml
@@ -19,6 +19,3 @@
 dependencies:
   flutter:
     sdk: flutter
-
-dev_dependencies:
-  pedantic: ^1.8.0
diff --git a/packages/url_launcher/url_launcher_platform_interface/CHANGELOG.md b/packages/url_launcher/url_launcher_platform_interface/CHANGELOG.md
index fc56473..02e2d0a 100644
--- a/packages/url_launcher/url_launcher_platform_interface/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_platform_interface/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates code for new analysis options.
+
 ## 2.0.4
 
 * Silenced warnings that may occur during build when using a very
diff --git a/packages/url_launcher/url_launcher_platform_interface/lib/link.dart b/packages/url_launcher/url_launcher_platform_interface/lib/link.dart
index ffff14f..da8aa15 100644
--- a/packages/url_launcher/url_launcher_platform_interface/lib/link.dart
+++ b/packages/url_launcher/url_launcher_platform_interface/lib/link.dart
@@ -22,7 +22,7 @@
 /// Signature for a delegate function to build the [Link] widget.
 typedef LinkDelegate = Widget Function(LinkInfo linkWidget);
 
-final MethodCodec _codec = const JSONMethodCodec();
+const MethodCodec _codec = JSONMethodCodec();
 
 /// Defines where a Link URL should be open.
 ///
@@ -42,20 +42,21 @@
   ///
   /// iOS, on the other hand, defaults to [self] for web URLs, and [blank] for
   /// non-web URLs.
-  static const defaultTarget = LinkTarget._(debugLabel: 'defaultTarget');
+  static const LinkTarget defaultTarget =
+      LinkTarget._(debugLabel: 'defaultTarget');
 
   /// On the web, this opens the link in the same tab where the flutter app is
   /// running.
   ///
   /// On Android and iOS, this opens the link in a webview within the app.
-  static const self = LinkTarget._(debugLabel: 'self');
+  static const LinkTarget self = LinkTarget._(debugLabel: 'self');
 
   /// On the web, this opens the link in a new tab or window (depending on the
   /// browser and user configuration).
   ///
   /// On Android and iOS, this opens the link in the browser or the relevant
   /// app.
-  static const blank = LinkTarget._(debugLabel: 'blank');
+  static const LinkTarget blank = LinkTarget._(debugLabel: 'blank');
 }
 
 /// Encapsulates all the information necessary to build a Link widget.
diff --git a/packages/url_launcher/url_launcher_platform_interface/lib/method_channel_url_launcher.dart b/packages/url_launcher/url_launcher_platform_interface/lib/method_channel_url_launcher.dart
index e75e283..df73804 100644
--- a/packages/url_launcher/url_launcher_platform_interface/lib/method_channel_url_launcher.dart
+++ b/packages/url_launcher/url_launcher_platform_interface/lib/method_channel_url_launcher.dart
@@ -21,7 +21,7 @@
     return _channel.invokeMethod<bool>(
       'canLaunch',
       <String, Object>{'url': url},
-    ).then((value) => value ?? false);
+    ).then((bool? value) => value ?? false);
   }
 
   @override
@@ -51,6 +51,6 @@
         'universalLinksOnly': universalLinksOnly,
         'headers': headers,
       },
-    ).then((value) => value ?? false);
+    ).then((bool? value) => value ?? false);
   }
 }
diff --git a/packages/url_launcher/url_launcher_platform_interface/pubspec.yaml b/packages/url_launcher/url_launcher_platform_interface/pubspec.yaml
index 074e95b..de1e71f 100644
--- a/packages/url_launcher/url_launcher_platform_interface/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_platform_interface/pubspec.yaml
@@ -19,4 +19,3 @@
   flutter_test:
     sdk: flutter
   mockito: ^5.0.0
-  pedantic: ^1.10.0
diff --git a/packages/url_launcher/url_launcher_platform_interface/test/link_test.dart b/packages/url_launcher/url_launcher_platform_interface/test/link_test.dart
index 75a14b2..a6b316d 100644
--- a/packages/url_launcher/url_launcher_platform_interface/test/link_test.dart
+++ b/packages/url_launcher/url_launcher_platform_interface/test/link_test.dart
@@ -13,20 +13,20 @@
 void main() {
   testWidgets('Link with Navigator', (WidgetTester tester) async {
     await tester.pumpWidget(MaterialApp(
-      home: Placeholder(key: Key('home')),
+      home: const Placeholder(key: Key('home')),
       routes: <String, WidgetBuilder>{
-        '/a': (BuildContext context) => Placeholder(key: Key('a')),
+        '/a': (BuildContext context) => const Placeholder(key: Key('a')),
       },
     ));
-    expect(find.byKey(Key('home')), findsOneWidget);
-    expect(find.byKey(Key('a')), findsNothing);
+    expect(find.byKey(const Key('home')), findsOneWidget);
+    expect(find.byKey(const Key('a')), findsNothing);
     await tester.runAsync(() => pushRouteNameToFramework(null, '/a'));
     // start animation
     await tester.pump();
     // skip past animation (5s is arbitrary, just needs to be long enough)
     await tester.pump(const Duration(seconds: 5));
-    expect(find.byKey(Key('a')), findsOneWidget);
-    expect(find.byKey(Key('home')), findsNothing);
+    expect(find.byKey(const Key('a')), findsOneWidget);
+    expect(find.byKey(const Key('home')), findsNothing);
   });
 
   testWidgets('Link with Navigator', (WidgetTester tester) async {
@@ -34,15 +34,15 @@
       routeInformationParser: _RouteInformationParser(),
       routerDelegate: _RouteDelegate(),
     ));
-    expect(find.byKey(Key('/')), findsOneWidget);
-    expect(find.byKey(Key('/a')), findsNothing);
+    expect(find.byKey(const Key('/')), findsOneWidget);
+    expect(find.byKey(const Key('/a')), findsNothing);
     await tester.runAsync(() => pushRouteNameToFramework(null, '/a'));
     // start animation
     await tester.pump();
     // skip past animation (5s is arbitrary, just needs to be long enough)
     await tester.pump(const Duration(seconds: 5));
-    expect(find.byKey(Key('/a')), findsOneWidget);
-    expect(find.byKey(Key('/')), findsNothing);
+    expect(find.byKey(const Key('/a')), findsOneWidget);
+    expect(find.byKey(const Key('/')), findsNothing);
   });
 }
 
@@ -50,7 +50,7 @@
   @override
   Future<RouteInformation> parseRouteInformation(
       RouteInformation routeInformation) {
-    return SynchronousFuture(routeInformation);
+    return SynchronousFuture<RouteInformation>(routeInformation);
   }
 
   @override
@@ -66,22 +66,22 @@
   @override
   Future<void> setNewRoutePath(RouteInformation configuration) {
     _history.add(configuration);
-    return SynchronousFuture(null);
+    return SynchronousFuture<void>(null);
   }
 
   @override
   Future<bool> popRoute() {
     if (_history.isEmpty) {
-      return SynchronousFuture(false);
+      return SynchronousFuture<bool>(false);
     }
     _history.removeLast();
-    return SynchronousFuture(true);
+    return SynchronousFuture<bool>(true);
   }
 
   @override
   Widget build(BuildContext context) {
     if (_history.isEmpty) {
-      return Placeholder(key: Key('empty'));
+      return const Placeholder(key: Key('empty'));
     }
     return Placeholder(key: Key('${_history.last.location}'));
   }
diff --git a/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart b/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart
index 23d9a45..e44e80b 100644
--- a/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart
@@ -2,11 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'package:mockito/mockito.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_test/flutter_test.dart';
+import 'package:mockito/mockito.dart';
 import 'package:plugin_platform_interface/plugin_platform_interface.dart';
-
 import 'package:url_launcher_platform_interface/link.dart';
 import 'package:url_launcher_platform_interface/method_channel_url_launcher.dart';
 import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
@@ -69,7 +68,7 @@
     });
 
     test('canLaunch should return false if platform returns null', () async {
-      final canLaunch = await launcher.canLaunch('http://example.com/');
+      final bool canLaunch = await launcher.canLaunch('http://example.com/');
 
       expect(canLaunch, false);
     });
@@ -283,7 +282,7 @@
     });
 
     test('launch should return false if platform returns null', () async {
-      final launched = await launcher.launch(
+      final bool launched = await launcher.launch(
         'http://example.com/',
         useSafariVC: true,
         useWebView: false,
diff --git a/packages/url_launcher/url_launcher_web/CHANGELOG.md b/packages/url_launcher/url_launcher_web/CHANGELOG.md
index f5338e6..5790e11 100644
--- a/packages/url_launcher/url_launcher_web/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_web/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.5
+
+* Updates code for new analysis options.
+
 ## 2.0.4
 
 * Add `implements` to pubspec.
diff --git a/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart b/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
index 0487aca..3e2a025 100644
--- a/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
+++ b/packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
@@ -4,11 +4,12 @@
 
 import 'dart:html' as html;
 import 'dart:js_util';
+
 import 'package:flutter/widgets.dart';
 import 'package:flutter_test/flutter_test.dart';
+import 'package:integration_test/integration_test.dart';
 import 'package:url_launcher_platform_interface/link.dart';
 import 'package:url_launcher_web/src/link.dart';
-import 'package:integration_test/integration_test.dart';
 
 void main() {
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
@@ -59,14 +60,14 @@
         textDirection: TextDirection.ltr,
         child: Center(
           child: ConstrainedBox(
-            constraints: BoxConstraints.tight(Size(100.0, 100.0)),
+            constraints: BoxConstraints.tight(const Size(100.0, 100.0)),
             child: WebLinkDelegate(TestLinkInfo(
               uri: uri,
               target: LinkTarget.blank,
               builder: (BuildContext context, FollowLink? followLink) {
                 return Container(
                   key: containerKey,
-                  child: SizedBox(width: 50.0, height: 50.0),
+                  child: const SizedBox(width: 50.0, height: 50.0),
                 );
               },
             )),
@@ -128,6 +129,12 @@
 }
 
 class TestLinkInfo extends LinkInfo {
+  TestLinkInfo({
+    required this.uri,
+    required this.target,
+    required this.builder,
+  });
+
   @override
   final LinkWidgetBuilder builder;
 
@@ -139,10 +146,4 @@
 
   @override
   bool get isDisabled => uri == null;
-
-  TestLinkInfo({
-    required this.uri,
-    required this.target,
-    required this.builder,
-  });
 }
diff --git a/packages/url_launcher/url_launcher_web/example/integration_test/url_launcher_web_test.dart b/packages/url_launcher/url_launcher_web/example/integration_test/url_launcher_web_test.dart
index 0b53a1f..10f5e0b 100644
--- a/packages/url_launcher/url_launcher_web/example/integration_test/url_launcher_web_test.dart
+++ b/packages/url_launcher/url_launcher_web/example/integration_test/url_launcher_web_test.dart
@@ -3,15 +3,16 @@
 // found in the LICENSE file.
 
 import 'dart:html' as html;
+
 import 'package:flutter_test/flutter_test.dart';
-import 'package:mockito/annotations.dart';
-import 'package:url_launcher_web/url_launcher_web.dart';
-import 'package:mockito/mockito.dart';
 import 'package:integration_test/integration_test.dart';
+import 'package:mockito/annotations.dart';
+import 'package:mockito/mockito.dart';
+import 'package:url_launcher_web/url_launcher_web.dart';
 
 import 'url_launcher_web_test.mocks.dart';
 
-@GenerateMocks([html.Window, html.Navigator])
+@GenerateMocks(<Type>[html.Window, html.Navigator])
 void main() {
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
diff --git a/packages/url_launcher/url_launcher_web/example/lib/main.dart b/packages/url_launcher/url_launcher_web/example/lib/main.dart
index e1a38dc..341913a 100644
--- a/packages/url_launcher/url_launcher_web/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_web/example/lib/main.dart
@@ -17,7 +17,7 @@
 class _MyAppState extends State<MyApp> {
   @override
   Widget build(BuildContext context) {
-    return Directionality(
+    return const Directionality(
       textDirection: TextDirection.ltr,
       child: Text('Testing... Look at the console output for results!'),
     );
diff --git a/packages/url_launcher/url_launcher_web/example/pubspec.yaml b/packages/url_launcher/url_launcher_web/example/pubspec.yaml
index 872bc88..bface46 100644
--- a/packages/url_launcher/url_launcher_web/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_web/example/pubspec.yaml
@@ -11,12 +11,12 @@
 
 dev_dependencies:
   build_runner: ^2.1.1
-  mockito: ^5.0.0
-  url_launcher_web:
-    path: ../
   flutter_driver:
     sdk: flutter
   flutter_test:
     sdk: flutter
   integration_test:
     sdk: flutter
+  mockito: ^5.0.0
+  url_launcher_web:
+    path: ../
diff --git a/packages/url_launcher/url_launcher_web/lib/src/link.dart b/packages/url_launcher/url_launcher_web/lib/src/link.dart
index 3c556b3..d3fa4a8 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/link.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/link.dart
@@ -85,8 +85,8 @@
                 (BuildContext context, PlatformViewController controller) {
               return PlatformViewSurface(
                 controller: controller,
-                gestureRecognizers:
-                    Set<Factory<OneSequenceGestureRecognizer>>(),
+                gestureRecognizers: const <
+                    Factory<OneSequenceGestureRecognizer>>{},
                 hitTestBehavior: PlatformViewHitTestBehavior.transparent,
               );
             },
@@ -123,7 +123,8 @@
     return controller;
   }
 
-  static Map<int, LinkViewController> _instances = <int, LinkViewController>{};
+  static final Map<int, LinkViewController> _instances =
+      <int, LinkViewController>{};
 
   static html.Element _viewFactory(int viewId) {
     return _instances[viewId]!._element;
@@ -131,7 +132,7 @@
 
   static int? _hitTestedViewId;
 
-  static late StreamSubscription _clickSubscription;
+  static late StreamSubscription<html.MouseEvent> _clickSubscription;
 
   static void _onGlobalClick(html.MouseEvent event) {
     final int? viewId = getViewIdFromTarget(event);
@@ -271,6 +272,10 @@
 int? getViewIdFromTarget(html.Event event) {
   final html.Element? linkElement = getLinkElementFromTarget(event);
   if (linkElement != null) {
+    // TODO(stuartmorgan): Remove this ignore (and change to getProperty<int>)
+    // once the templated version is available on stable. On master (2.8) this
+    // is already not necessary.
+    // ignore: return_of_invalid_type
     return getProperty(linkElement, linkViewIdProperty);
   }
   return null;
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart
index 5eacec5..0f6cd89 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui.dart
@@ -5,6 +5,6 @@
 /// This file shims dart:ui in web-only scenarios, getting rid of the need to
 /// suppress analyzer warnings.
 
-// TODO(flutter/flutter#55000) Remove this file once web-only dart:ui APIs
-// are exposed from a dedicated place.
+// TODO(ditman): Remove this file once web-only dart:ui APIs
+// are exposed from a dedicated place, flutter/flutter#55000.
 export 'dart_ui_fake.dart' if (dart.library.html) 'dart_ui_real.dart';
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
index f2862af..8757ca2 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
@@ -7,13 +7,18 @@
 // Fake interface for the logic that this package needs from (web-only) dart:ui.
 // This is conditionally exported so the analyzer sees these methods as available.
 
+// ignore_for_file: avoid_classes_with_only_static_members
+// ignore_for_file: camel_case_types
+
 /// Shim for web_ui engine.PlatformViewRegistry
 /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
   /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
-  static registerViewFactory(
-      String viewTypeId, html.Element Function(int viewId) viewFactory) {}
+  static bool registerViewFactory(
+      String viewTypeId, html.Element Function(int viewId) viewFactory) {
+    return false;
+  }
 }
 
 /// Shim for web_ui engine.AssetManager.
@@ -21,7 +26,7 @@
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
   /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
-  static getAssetUrl(String asset) {}
+  static String getAssetUrl(String asset) => '';
 }
 
 /// Signature of callbacks that have no arguments and return no data.
diff --git a/packages/url_launcher/url_launcher_web/lib/src/third_party/platform_detect/browser.dart b/packages/url_launcher/url_launcher_web/lib/src/third_party/platform_detect/browser.dart
index 9e83c39..6935cb5 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/third_party/platform_detect/browser.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/third_party/platform_detect/browser.dart
@@ -26,8 +26,8 @@
 /// Determines if the `navigator` is Safari.
 bool navigatorIsSafari(html.Navigator navigator) {
   // An web view running in an iOS app does not have a 'Version/X.X.X' string in the appVersion
-  final vendor = navigator.vendor;
-  final appVersion = navigator.appVersion;
+  final String vendor = navigator.vendor;
+  final String appVersion = navigator.appVersion;
   return vendor != null &&
       vendor.contains('Apple') &&
       appVersion != null &&
diff --git a/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart b/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
index 9249837..571acaf 100644
--- a/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
+++ b/packages/url_launcher/url_launcher_web/lib/url_launcher_web.dart
@@ -4,7 +4,6 @@
 
 import 'dart:async';
 import 'dart:html' as html;
-import 'src/shims/dart_ui.dart' as ui;
 
 import 'package:flutter_web_plugins/flutter_web_plugins.dart';
 import 'package:meta/meta.dart';
@@ -12,9 +11,10 @@
 import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart';
 
 import 'src/link.dart';
+import 'src/shims/dart_ui.dart' as ui;
 import 'src/third_party/platform_detect/browser.dart';
 
-const _safariTargetTopSchemes = {
+const Set<String> _safariTargetTopSchemes = <String>{
   'mailto',
   'tel',
   'sms',
@@ -28,21 +28,21 @@
 ///
 /// This class implements the `package:url_launcher` functionality for the web.
 class UrlLauncherPlugin extends UrlLauncherPlatform {
-  html.Window _window;
-  bool _isSafari = false;
-
-  // The set of schemes that can be handled by the plugin
-  static final _supportedSchemes = {
-    'http',
-    'https',
-  }.union(_safariTargetTopSchemes);
-
   /// A constructor that allows tests to override the window object used by the plugin.
   UrlLauncherPlugin({@visibleForTesting html.Window? debugWindow})
       : _window = debugWindow ?? html.window {
     _isSafari = navigatorIsSafari(_window.navigator);
   }
 
+  final html.Window _window;
+  bool _isSafari = false;
+
+  // The set of schemes that can be handled by the plugin
+  static final Set<String> _supportedSchemes = <String>{
+    'http',
+    'https',
+  }.union(_safariTargetTopSchemes);
+
   /// Registers this class as the default instance of [UrlLauncherPlatform].
   static void registerWith(Registrar registrar) {
     UrlLauncherPlatform.instance = UrlLauncherPlugin();
@@ -61,7 +61,7 @@
   html.WindowBase openNewWindow(String url, {String? webOnlyWindowName}) {
     // We need to open mailto, tel and sms urls on the _top window context on safari browsers.
     // See https://github.com/flutter/flutter/issues/51461 for reference.
-    final target = webOnlyWindowName ??
+    final String target = webOnlyWindowName ??
         ((_isSafari && _isSafariTargetTopScheme(url)) ? '_top' : '');
     return _window.open(url, target);
   }
diff --git a/packages/url_launcher/url_launcher_web/pubspec.yaml b/packages/url_launcher/url_launcher_web/pubspec.yaml
index 77e8068..37d3193 100644
--- a/packages/url_launcher/url_launcher_web/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_web/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Web platform implementation of url_launcher
 repository: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_web
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+url_launcher%22
-version: 2.0.4
+version: 2.0.5
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
@@ -27,4 +27,3 @@
 dev_dependencies:
   flutter_test:
     sdk: flutter
-  pedantic: ^1.10.0
diff --git a/packages/url_launcher/url_launcher_windows/CHANGELOG.md b/packages/url_launcher/url_launcher_windows/CHANGELOG.md
index d095a52..e599b1f 100644
--- a/packages/url_launcher/url_launcher_windows/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher_windows/CHANGELOG.md
@@ -1,6 +1,7 @@
 ## NEXT
 
-* Added unit tests.
+* Adds unit tests.
+* Updates code for new analysis options.
 
 ## 2.0.2
 
diff --git a/packages/url_launcher/url_launcher_windows/example/integration_test/url_launcher_test.dart b/packages/url_launcher/url_launcher_windows/example/integration_test/url_launcher_test.dart
index ae9a914..c9d0d8c 100644
--- a/packages/url_launcher/url_launcher_windows/example/integration_test/url_launcher_test.dart
+++ b/packages/url_launcher/url_launcher_windows/example/integration_test/url_launcher_test.dart
@@ -10,7 +10,7 @@
   IntegrationTestWidgetsFlutterBinding.ensureInitialized();
 
   testWidgets('canLaunch', (WidgetTester _) async {
-    UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
+    final UrlLauncherPlatform launcher = UrlLauncherPlatform.instance;
 
     expect(await launcher.canLaunch('randomstring'), false);
 
diff --git a/packages/url_launcher/url_launcher_windows/example/lib/main.dart b/packages/url_launcher/url_launcher_windows/example/lib/main.dart
index 86e06f3..a9a5d22 100644
--- a/packages/url_launcher/url_launcher_windows/example/lib/main.dart
+++ b/packages/url_launcher/url_launcher_windows/example/lib/main.dart
@@ -20,13 +20,13 @@
       theme: ThemeData(
         primarySwatch: Colors.blue,
       ),
-      home: MyHomePage(title: 'URL Launcher'),
+      home: const MyHomePage(title: 'URL Launcher'),
     );
   }
 }
 
 class MyHomePage extends StatefulWidget {
-  MyHomePage({Key? key, required this.title}) : super(key: key);
+  const MyHomePage({Key? key, required this.title}) : super(key: key);
   final String title;
 
   @override
diff --git a/packages/url_launcher/url_launcher_windows/example/pubspec.yaml b/packages/url_launcher/url_launcher_windows/example/pubspec.yaml
index 11be3e8..08350fd 100644
--- a/packages/url_launcher/url_launcher_windows/example/pubspec.yaml
+++ b/packages/url_launcher/url_launcher_windows/example/pubspec.yaml
@@ -19,11 +19,10 @@
     path: ../
 
 dev_dependencies:
-  integration_test:
-    sdk: flutter
   flutter_driver:
     sdk: flutter
-  pedantic: ^1.10.0
+  integration_test:
+    sdk: flutter
 
 flutter:
   uses-material-design: true
diff --git a/script/configs/custom_analysis.yaml b/script/configs/custom_analysis.yaml
index b3823da..820a06a 100644
--- a/script/configs/custom_analysis.yaml
+++ b/script/configs/custom_analysis.yaml
@@ -22,7 +22,6 @@
 - in_app_purchase
 - ios_platform_images
 - local_auth
-- url_launcher
 - video_player
 - webview_flutter/webview_flutter