flutter/packages
68.2
Adequate · 23 September 2026
598.4k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This repository is a monorepo hosting a collection of first-party Flutter plugins and supporting packages, including camera, file selector, Google Maps, and image picker. It provides platform-specific implementations for mobile, desktop, and web environments, utilizing a federated architecture to abstract native hardware and OS capabilities. The system also includes infrastructure tools like Pigeon for type-safe platform channel generation and CI scripts for continuous integration and testing.
How it got here
2017–2020 — Platform interface federation and tooling modernization
55 changes.
This period focused on restructuring the monorepo by introducing platform interfaces and federated packages for core plugins like camera, file\_selector, and image\_picker to ensure consistent cross-platform APIs. It also involved significant infrastructure updates, including the release of the Pigeon code generation tool, the espresso testing plugin, and widespread migration to modern build systems and SDK versions.
2021–2022 — Pigeon migration and platform expansion
111 changes.
This period focused on migrating Android and Windows plugin implementations to the Pigeon code-generation framework to improve type safety and maintainability. It also involved expanding platform support for key plugins like file\_selector and camera by adding initial implementations for web, Windows, and Linux, alongside modernizing example apps and CI infrastructure.
2023–2026 — Plugin modernization and decoupled UI packages
40 changes.
This period focused on modernizing native plugin implementations by migrating platform channels to Pigeon, converting Android examples to Kotlin, and adopting ProxyApi architectures for improved stability. It also introduced standalone, decoupled packages for Material and Cupertino UI components, alongside new federated plugins like cross\_file and flutter\_svg to expand platform support and testing infrastructure.
Features
Add Espresso example app scaffolding
The packages/espresso/example directory now includes the standard Flutter project scaffolding required to run the Espresso package. This includes a .gitignore file tailored for Flutter/Dart artifacts, a .metadata file tracking the Flutter SDK revision, a .pluginToolsConfig.yaml configuring build flags for testing, and a README.md that documents how to execute the example's Android instrumentation tests using Gradle.
(repo-wide) · high confidence
Add Google Sign-In to Google APIs Auth extension
The package now provides an extension on \GoogleSignInClientAuthorization\ that exposes an \authClient\ method. This allows users to easily obtain an authenticated \googleapis\_auth\ client for use with Google APIs libraries. The implementation constructs access credentials using the access token from the Google Sign-In flow, setting an arbitrary expiry date since the underlying SDKs do not provide this information, and returns a client configured with the specified scopes.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/lib · high confidence
Add Linux example application scaffolding
The file\_selector example now includes the necessary Linux platform files (CMakeLists.txt, main.cc, and application source) to build and run the example app on Linux. This enables users to test the file\_selector plugin on the Linux desktop environment directly from the example project.
_packages/file\_selector/file\selector/example/linux · high confidence
Add Material Transitions demo application
The example app now includes a dedicated demo for Material Transitions, featuring interactive showcases for Container Transform (OpenContainer), Shared Axis, Fade Through, and Fade Scale transitions. Users can explore these animation patterns directly within the example application.
packages/animations/example/lib · high confidence
Add Windows build configuration for the file\_selector example app
The file\_selector Windows example application now includes the necessary CMake build files and native Windows runner code (including window management, DPI awareness, and console attachment) to be built and run on Windows. This enables developers to test the file\_selector plugin on the Windows platform using Visual Studio or the command line.
_packages/file\_selector/file\_selector\windows/example/windows · high confidence
Add Windows build support to the file\_selector example app
The file\_selector example application now includes the necessary CMake configuration and native Windows runner code (C++/Win32) to build and run on Windows. This addition enables users to test the file\_selector plugin on the Windows platform using Visual Studio or the command line, extending the example's platform coverage beyond macOS and Linux.
_packages/file\_selector/file\selector/example/windows · high confidence
Add Windows implementation for file selector plugin
The Windows platform implementation for the file\_selector plugin is now available, enabling users to open files, save files, and select directories on Windows. This implementation registers with the platform interface and delegates to native dialogs via Pigeon, supporting type group filtering with specific validation for Windows filter categories.
_packages/file\_selector/file\_selector\windows/lib · high confidence
Add camera\_web example app and README code excerpts
The camera\_web package now includes an example application and dedicated code snippets to support documentation. The example app (main.dart) provides a minimal Flutter widget for testing the web camera integration, while readme\_excerpts.dart contains specific code fragments demonstrating how to handle captured images (XFile) as Image sources on both web and non-web platforms, intended for use in the package's README.
_packages/camera/camera\web/example/lib · high confidence
Add check-readiness skill to verify environment before work
Developers can now run a check-readiness skill (via \dart run .agents/skills/check-readiness/tool/check.dart\) to verify that the local environment is properly configured before starting new work in the \camera\_android\_camerax\ package. This tool checks for broken symlinks in \.agents/skills\, ensures the Git working directory is clean, validates that Git hooks are correctly configured to point to \script/githooks\, confirms Flutter and Dart are on the PATH, and verifies that dependencies are resolved. If any check fails, the tool provides specific error messages and guidance on how to resolve the issue.
_packages/camera/camera\_android\camerax/.agents/skills/check-readiness · high confidence
Add example app for the Espresso plugin
The \packages/espresso/example/lib\ directory now contains a \main.dart\ file that serves as a demonstration application for the Espresso plugin. This example app is a standard Flutter counter application, providing users with a runnable reference implementation to understand how to integrate and use the plugin within their own projects.
packages/espresso/example/lib · high confidence
Add iOS example app boilerplate for package:animations
The iOS example project for the animations package is now fully scaffolded, providing a complete Xcode workspace and project structure. This includes the standard Runner app configuration (Info.plist, storyboards, assets), an AppDelegate implementing the implicit Flutter engine delegate, and a UIScene-based setup in the Info.plist to support modern iOS window management.
packages/animations/example/ios · high confidence
Add iOS example app build configuration files
The file\_selector example app now includes the necessary iOS build configuration files (AppFrameworkInfo.plist, Debug.xcconfig, and Release.xcconfig) to support building and running the example on iOS devices and simulators.
_packages/file\_selector/file\selector/example/ios/Flutter · high confidence
Add web entry point for the animations example app
The animations example app now includes an HTML entry point (index.html) that loads the Flutter web application via flutter\_bootstrap.js, enabling the example to be served and viewed in a web browser.
packages/animations/example/web · high confidence
Add web example entry point for camera\_web package
The camera\_web package now includes a web example application, providing a new \index.html\ file that serves as the entry point for running the camera functionality in a browser environment. This addition allows users to test and demonstrate the web-specific camera capabilities directly within the example project.
_packages/camera/camera\web/example/web · high confidence
Add web support to the camera example
The camera example now includes web-specific assets, introducing an \index.html\ entry point and a \manifest.json\ for Progressive Web App (PWA) configuration. This enables the example to be served and run in web browsers, providing the necessary metadata for icons, theme colors, and standalone display modes.
_packages/camera/camera/example/web, packages/file\_selector/file\selector/example/web · high confidence
Added Windows camera example app scaffolding
The camera\_windows package now includes a new example application located in the example directory. This app serves as a test harness for manual and automated integration testing of the Windows platform implementation, rather than a demonstration of typical usage. The addition includes standard Flutter project configuration files such as .gitignore, .metadata, and a README explaining the example's purpose.
_packages/camera/camera\windows/example · high confidence
Added pre-push validation skill for camera\_android\_camerax
This location introduces an agentic pre-push skill for the camera\_android\_camerax package that automatically validates changes before they are pushed. The skill checks for a clean working tree, merge conflicts, and the presence of relevant changes, then runs Dart and native Android unit tests, verifies version bumps and CHANGELOG formatting (including backtick enforcement), checks license headers, and ensures public APIs have documentation. It also enforces that native Java/Kotlin changes are accompanied by corresponding native unit tests, while allowing users to explicitly approve bypasses for missing tests. Evaluation scripts and test data are included to verify the skill's behavior.
_packages/camera/camera\_android\camerax/.agents/skills/pre-push-skill · high confidence
Added web example application for file\_selector
A new example application has been added to the file\_selector\_web package to demonstrate usage. The example is a minimal Flutter app that initializes the widget tree and displays a placeholder message, serving as a starting point for testing and integration.
_packages/file\_selector/file\_selector\web/example/lib · high confidence
Android camera exposure point feature implementation
The Android camera plugin now includes a dedicated ExposurePointFeature that allows users to control where in the frame exposure metering is focused. This feature maps user-selected exposure points to the underlying Android Camera2 API's CONTROL\_AE\_REGIONS, handling coordinate conversion based on device orientation and camera boundaries. If no specific point is set, it falls back to the camera's default exposure regions.
_packages/camera/camera\android/android/src/main/java/io/flutter/plugins/camera/features/exposurepoint · high confidence
Android camera plugin introduces feature-based architecture for exposure and flash control
The Android implementation of the camera plugin has been refactored to use a modular feature system, introducing new Java classes to manage camera capabilities. This change adds specific feature handlers for exposure lock (ExposureLockFeature), exposure offset (ExposureOffsetFeature), and flash modes (FlashFeature), allowing users to control these settings via the plugin. It also introduces supporting type definitions for camera properties (CameraCaptureProperties), capture timeouts (CaptureTimeoutsWrapper), and enums for focus, resolution, and exposure modes, providing a more structured foundation for camera configuration on Android.
(repo-wide) · high confidence
Android implementation for cross\_file package
This change introduces the native Android plugin implementation for the \cross\_file\ package. It adds \CrossFileAndroidPlugin\ to register the plugin with the Flutter engine and utilizes a Pigeon-based proxy system to expose Android-specific file APIs (DocumentFile, ContentResolver, InputStream) to Dart. The example app is also updated with standard FlutterActivity classes to support testing this new platform integration.
_packages/cross\_file/cross\_file\_android/android/src/main/kotlin/dev/flutter/packages/crossfileandroid, packages/cross\_file/cross\_file\android/example/android/app/src/main/kotlin/dev/flutter/packages/crossfileandroidexample · high confidence
Android implementation migrated to Pigeon with new in-app browser modes
The Android side of the url\_launcher plugin has been rewritten to use the Pigeon code-generation framework, replacing the previous manual platform channel implementation. This change introduces support for opening URLs in an in-app browser via Custom Tabs (with title visibility options) or a fallback WebView, allowing developers to control whether external browsers are used. The new architecture also supports passing custom HTTP headers to these in-app views and ensures proper activity lifecycle handling through the modern Flutter embedding API.
_packages/url\_launcher/url\_launcher\android/android/src/main/java/io/flutter/plugins/urllauncher · high confidence
CameraX plugin re-architected with ProxyApi bindings for granular CameraX control
The Android CameraX plugin implementation has been rewritten to use a new ProxyApi architecture, introducing a suite of Java classes that wrap specific CameraX components (such as CameraControl, CameraInfo, CameraSelector, AspectRatioStrategy, and CaptureRequestOptions) to expose fine-grained capabilities to the Dart layer. This change enables advanced features like precise focus and exposure point setting, torch control, zoom ratio adjustments, and detailed camera state monitoring, while also improving permission handling and device orientation management through dedicated manager classes.
_packages/camera/camera\_android\camerax/android/src/main/java/io/flutter/plugins/camerax · high confidence
Configures agent skills for the CameraX Android camera package
The \packages/camera/camera\_android\_camerax\ directory now includes a local \.agents/skills\ configuration. This setup symlinks specific third-party skills—such as \dart-add-unit-test\, \flutter-add-integration-test\, and \grill-me\—from the repository's \third\_party\ directory, allowing the package to utilize these tools for development tasks like testing and static analysis. A \.gitignore\ file is also added to exclude locally evaluated skills, and a README documents the policy for managing remote versus local skills.
_packages/camera/camera\_android\camerax/.agents/skills · high confidence
File Selector example app now demonstrates directory selection and multi-file operations
The file\_selector example application has been expanded to include dedicated pages for selecting directories and multiple files. Users can now explore the \getDirectoryPath\ and \getDirectoryPaths\ APIs via new 'Open a get directory dialog' and 'Open a get multi directories dialog' options in the home screen, alongside existing examples for opening and saving single or multiple text and image files. The app also includes a standalone excerpt file for README documentation snippets.
_packages/file\_selector/file\selector/example/lib · high confidence
Import of flutter\_svg package
The flutter\_svg package has been imported into the repository, providing an SVG rendering and widget library for Flutter. This update includes the package source code, example application, and documentation. The package supports rendering SVGs from assets, strings, and network URLs, and offers features such as color mapping, custom error builders, and configurable rendering strategies (picture or raster) for performance optimization. It also supports precompiled SVGs via the vector\_graphics backend for faster parsing and reduced overdraw.
_third\_party/packages/flutter\svg · high confidence
Initial Android example app for file\_selector
The file\_selector\_android package now includes a complete Android example application. This demo app allows users to test the file selection functionality by opening single or multiple image files and text files, displaying the results in dialogs. It also includes the necessary Android manifest configurations, a test content provider for integration testing, and a basic integration test suite to verify the app launches correctly on emulators and devices.
_packages/file\_selector/file\_selector\android/example · high confidence
Initial Android implementation for file\_selector
This change introduces the Android-specific implementation for the file\_selector package, enabling users to open files, select multiple files, and retrieve directory paths on Android devices. The implementation registers as the platform handler for FileSelectorPlatform and utilizes Pigeon (v27.3.2) to generate the Dart-to-Kotlin API bindings. It supports filtering by MIME types and file extensions, handles native exceptions like IllegalArgumentException, and returns file metadata including path, size, and MIME type.
_packages/file\_selector/file\_selector\_android/lib, packages/file\_selector/file\_selector\windows · high confidence
Initial Android implementation for file\_selector plugin
The file\_selector plugin now includes a native Android implementation, enabling file and directory selection on Android devices. This change introduces the \FileSelectorAndroidPlugin\ and \FileSelectorApiImpl\ classes to handle platform-specific interactions, such as launching document pickers and managing activity lifecycles. It also adds \FileUtils\ to assist with URI-to-path conversion and file copying, allowing Dart code to reliably access selected files on the device.
_packages/file\_selector/file\_selector\_android/android/src/main/java/dev/flutter/packages/file\_selector\android · high confidence
Initial example app boilerplate for package:animations
The \packages/animations/example\ directory now contains the foundational structure for the animations package's example application. This includes a README for launching the catalog, a \.gitignore\ tailored for Flutter/Dart development, a \.metadata\ file for project tracking, and the initial Kotlin-based \MainActivity\ for the Android platform, establishing the baseline for running and testing the package's animations.
packages/animations/example · high confidence
Initial file\_selector example project scaffolding
The file\_selector package now includes an example application to demonstrate how to use the plugin. This change adds the initial project structure, including a README, a .gitignore file tailored for Flutter/Dart development, and a .metadata file tracking the project's Flutter channel and revision.
_packages/file\_selector/file\selector/example · high confidence
Initial release of Pigeon code generation tool
Introduces Pigeon, a new code generation tool that adds type safety to Flutter's platform channels by generating Dart, Kotlin, Java, Swift, Objective-C, C++, and GObject code from a single interface definition. The package includes the core generator library, command-line entry point, and a comprehensive example application demonstrating HostApi, FlutterApi, and EventChannel usage across Android, iOS, macOS, Windows, and Linux. This release establishes the foundational API for eliminating manual platform channel boilerplate.
packages/pigeon · high confidence
Initial release of camera\_windows plugin
This entry introduces the \camera\_windows\ package, providing the Windows platform implementation for the federated \camera\ plugin. It enables Windows desktop applications to access camera hardware, supporting core capabilities such as listing available devices, initializing cameras, taking pictures, and starting/stopping video recordings. The implementation uses Pigeon for C++ to Dart communication and explicitly sets the device media type for video previews. Users must explicitly add \camera\_windows\ to their \pubspec.yaml\ as it is not an endorsed implementation, and should be aware of current limitations including lack of support for pause/resume recording, device orientation, exposure/focus/flash controls, and image streaming.
_packages/camera/camera\_android\_camerax, packages/camera/camera\_windows, packages/interactive\_media\ads · high confidence
Initial release of the Flutter Android Lifecycle plugin
This entry introduces the \flutter\_plugin\_android\_lifecycle\ package, providing a mechanism for other Flutter plugins to access Android \Lifecycle\ objects via the \FlutterLifecycleAdapter\. The package includes the core Java implementation, a no-op plugin class required by the Flutter tooling, and an example application demonstrating usage with the v2 Android embedding. It sets a minimum supported SDK version of Flutter 3.41 and Dart 3.11, and relies on Android Gradle Plugin 8.13.1 and Gradle 9.3.1 for the example build.
_packages/flutter\_plugin\_android\lifecycle · high confidence
Initial release of the Google AdSense plugin for Flutter Web
The \google\_adsense\ package is now available for Flutter Web, providing libraries to integrate AdSense into web applications. It includes the \h5.dart\ library for H5 Games Ads (supporting interstitial and rewarded ad formats for games) and the experimental \AdUnitWidget\ for displaying standard AdSense ad units. The package also introduces \AdSenseCodeParameters\ to allow configuration of additional initialization settings, such as custom channels and regulatory compliance flags.
_packages/google\adsense · high confidence
Initial release of the espresso package for Android integration testing
The \espresso\ package is introduced as a new first-party plugin that provides bindings for running Espresso tests on Flutter Android applications. It enables developers to write Android instrumentation tests that interact with Flutter widgets, supporting features such as clicking widgets, matching text, and verifying widget states. The package includes a README with setup instructions for configuring network security for cleartext traffic, adding necessary Gradle dependencies, and running tests locally or via Firebase Test Lab.
packages/espresso · high confidence
Initial release of the standalone material\_ui package
The \material\_ui\ package is introduced as a standalone library, decoupling Material Design widgets from the core Flutter framework. This change provides a complete suite of visual components, motion, typography, and theming tools, along with a migration guide and compatibility bridge (\MaterialUiCompatibilityBridge\) to help users transition from \package:flutter/material.dart\ to \package:material\_ui/material\_ui.dart\.
_packages/material\ui · high confidence
Initial release of vector\_graphics\_codec with half-precision floating point support
This entry introduces the \vector\_graphics\_codec\ package, which provides the encoding and decoding logic for the \vector\_graphics\ binary format. The codec now supports encoding control points as IEEE 754-2008 half-precision floating point values to reduce binary size, a capability implemented in the new \fp16.dart\ module and verified by dedicated tests. The package includes the core \VectorGraphicsCodec\ class for handling vector graphics data, along with standard repository files such as the changelog, license, and README.
_packages/vector\_graphics\codec · high confidence
Initial release of xdg\_directories package for Linux
The \xdg\_directories\ package is introduced to provide a Dart API for accessing XDG Base Directory configuration on Linux. It exposes properties for standard directories such as \dataHome\, \configHome\, \cacheHome\, \stateHome\, and \runtimeDir\, along with methods to retrieve user-specific directories like Desktop or Documents. The package includes a Flutter example app demonstrating usage and integration tests to verify correct behavior across different environment configurations.
_packages/xdg\directories · high confidence
Initial repository configuration and CI infrastructure
The repository is initialized with essential configuration files, including a comprehensive \.ci.yaml\ that defines the continuous integration targets, platform properties (Linux, Windows, macOS), and dependencies for the Flutter packages monorepo. This is accompanied by standard repository metadata and tooling files such as \.gitignore\, \.clang-format\, \AGENTS.md\ for AI agent guidance, \CONTRIBUTING.md\, \LICENSE\, and \README.md\ which lists the hosted packages.
(repo-wide) · high confidence
Introduce Espresso-Flutter Android testing library
Adds the Android source code for the Espresso-Flutter testing framework, providing a public API for interacting with Flutter widgets from Android instrumentation tests. This includes action implementations for clicking (both standard and synthetic), typing text, and scrolling to widgets, as well as utilities for waiting until the Flutter engine is idle. The library establishes a JSON-RPC 2.0 communication protocol over WebSockets to bridge Espresso and the Flutter engine, enabling test writers to match widgets, retrieve widget information, and perform assertions.
packages/espresso/android/src · high confidence
Introduce LUCI-based CI scripts for Flutter plugin analysis and testing
This change adds a comprehensive suite of shell scripts under .ci/scripts to support the migration of CI infrastructure to LUCI. These scripts provide specialized entry points for various CI tasks, including analyzing Flutter goldens and legacy packages, running pathified dependency tests, and executing unit tests on Windows and Linux. The suite also includes utilities for managing iOS simulators, building the all\_packages app (with legacy support), and validating plugin safety and changelog completeness, all orchestrated through a central tool\_runner.sh that standardizes execution of the flutter\_plugin\_tools.dart CLI.
.ci/scripts · high confidence
Introduce Material Motion animation widgets and modal utilities
The \animations\ package now exposes a suite of Material Design motion components for use in applications. This includes \OpenContainer\ for the container transform animation, \PageTransitionSwitcher\ for switching between child widgets with custom enter/exit transitions, and specific transition widgets: \FadeScaleTransition\ and \FadeThroughTransition\ for modal and page fades, and \SharedAxisTransition\ for spatially related page transitions. Additionally, a \showModal\ helper is provided to display modals with configurable transitions (defaulting to FadeScale) and barrier settings.
packages/animations/lib/src · high confidence
Introduce Pigeon-based API bindings for CameraX
The camera\_android\_camerax plugin now uses Pigeon to generate Dart and Kotlin bindings for the Android CameraX library. This change introduces a new interface layer that exposes core CameraX types—such as resolution info, aspect ratios, camera states, and video quality settings—to the Dart side, enabling more robust and type-safe interaction with camera hardware features like video recording and image capture.
_packages/camera/camera\_android\camerax/pigeons · high confidence
Introduce camera\_platform\_interface package
The \camera\_platform\_interface\ package is introduced to provide a standardized abstraction layer for camera functionality across different platforms. This change adds a new \CameraPlatform\ abstract class that defines the contract for camera operations, including initialization, video recording, image capture, and event handling. It also introduces a \MethodChannelCamera\ implementation that bridges Flutter with native camera APIs via method channels. The package includes comprehensive type definitions for camera descriptions, media settings, image formats, and various camera events (e.g., initialization, resolution changes, errors), enabling consistent camera behavior and easier platform-specific implementations.
_packages/camera/camera\_platform\interface/lib · high confidence
Introduce camera\_web package for web platform camera support
This change adds the \camera\_web\ package, providing the web platform implementation for the \camera\ plugin. It introduces a new \CameraPlugin\ that implements the \CameraPlatform\ interface, enabling users to access available cameras, create camera instances, capture pictures, and record video directly in web browsers. The implementation leverages the \package:web\ library for JavaScript interop and includes a \CameraService\ to manage media streams, handle browser-specific constraints (such as zoom, flash/torch, and facing mode), and map browser media errors to standardized camera error codes.
_packages/camera/camera\web/lib · high confidence
Introduce cross\_file as a federated plugin with platform-specific implementations
The \cross\_file\ package is now structured as a federated plugin, providing a unified \XFile\ abstraction for accessing file metadata and content across web, mobile, and desktop platforms. This change introduces the core \XFile\ interface and adds the initial platform implementations for Android (\cross\_file\_android\), iOS/macOS (\cross\_file\_darwin\), and the web (\cross\_file\_web\), alongside the \dart:io\ implementation for native environments. Users can now import \package:cross\_file/cross\_file.dart\ to work with files consistently, with the underlying platform-specific logic automatically selected at runtime.
_packages/cross\file · high confidence
Introduce file\_selector API for opening, saving, and selecting directories
The file\_selector package now provides a unified API for interacting with the system's file dialogs. Users can open single or multiple files using openFile and openFiles, which support filtering by type groups and customizing the confirmation button text. A new getSaveLocation function allows users to specify a suggested file name and control whether new directories can be created during the save operation. Additionally, getDirectoryPath and getDirectoryPaths enable users to select one or more directories, with options to set an initial directory and control directory creation permissions. These functions delegate to the platform interface, ensuring consistent behavior across different operating systems while returning null or empty collections when the user cancels the dialog.
_packages/file\_selector/file\selector/lib · high confidence
Introduce flutter\_svg\_test package for widget testing
Adds the flutter\_svg\_test package, a testing utility that extends Flutter's CommonFinders with methods to locate SvgPicture widgets in widget tests. Users can now easily verify SVG rendering by matching against the BytesLoader, asset path, network URL, file path, or memory bytes, simplifying assertions for SVG-based UI components.
_third\_party/packages/flutter\_svg\test · high confidence
Introduce metrics\_center package for aggregating and writing performance metrics
The new metrics\_center package provides a unified system for collecting performance metrics from various generators (such as Cocoon device labs, Cirrus bots, and LUCI bots) and writing them to destinations like the Skia Perf dashboard. It introduces a \MetricPoint\ data structure to standardize metric data, a \MetricDestination\ interface for pluggable storage backends, and a \FlutterDestination\ that writes metrics to Google Cloud Storage via Skia Perf. The package includes a \GoogleBenchmarkParser\ to convert Google Benchmark JSON outputs into metric points, filtering out irrelevant context keys like host names. It also features a \GcsLock\ mechanism to ensure exclusive access when writing to GCS, with retry logic for transient errors, and supports authentication via both service account credentials and OAuth access tokens.
_packages/metrics\center · high confidence
Introduce pure Dart SVG path parsing library
The \path\_parsing\ package is added as a standalone, pure Dart library for parsing SVG path data, decoupled from the Flutter runtime. It provides the \writeSvgPathDataToPath\ function to convert SVG path strings into a sequence of path commands (move, line, cubic, arc, etc.) via a \PathProxy\ interface, enabling SVG path processing in non-Flutter Dart environments. The implementation includes comprehensive test coverage for valid and malformed paths, and the package is sourced from the original author's repository with appropriate attribution.
_third\_party/packages/path\parsing · high confidence
Introduces EspressoFlutter as a first-party plugin for Android widget testing
Adds the \EspressoFlutter\ Android library, providing a first-party plugin that enables testing Flutter widgets using the Espresso framework. This change introduces the core entry point (\EspressoFlutter.onFlutterWidget\) along with a suite of widget matchers (by text, tooltip, type, value key, and ancestor), actions (click, type text), and assertions, all bridged through the Dart VM Service protocol to interact with the Flutter engine.
espresso · high confidence
Introduces Google Identity Services Web JS-interop package
Adds a new Dart package providing a JS-interop layer for the Google Identity Services (GIS) Sign In With Google SDK. The package exposes Dart bindings for the \id\ (authentication) and \oauth2\ (authorization) sub-libraries, allowing Flutter web apps to integrate Google Sign-In and OAuth flows. It includes a loader utility to dynamically load the GIS SDK and provides example applications demonstrating both authentication and OAuth2 usage patterns.
_packages/google\_identity\_services\web · high confidence
Introduction of the animations package with standard transition widgets
The new \animations\ package is introduced, providing a set of pre-built transition widgets for common UI effects. Users can now import and utilize \FadeScaleTransition\, \FadeThroughTransition\, \Modal\ (for \showModal\ implementations), \OpenContainer\, \PageTransitionSwitcher\, and \SharedAxisTransition\ directly from the package's main entry point.
packages/animations/lib · high confidence
Introduction of the cupertino\_ui package
A new \cupertino\_ui\ package has been added to provide a curated set of Cupertino (iOS-style) widgets for Flutter applications. The main entry point, \cupertino\_ui.dart\, exports a comprehensive collection of UI components including navigation bars, buttons, form fields, pickers, and text selection tools, along with localizations and theme data, allowing developers to easily adopt an iOS design language in their apps.
_packages/cupertino\ui/lib · high confidence
Introduction of the cupertino\_ui package with iOS-style widgets
The \cupertino\_ui\ package has been introduced, providing a comprehensive set of iOS-style UI components for Flutter applications. This new library includes core widgets such as \CupertinoApp\ for application configuration, \CupertinoButton\ with support for various sizes and styles, \CupertinoCheckbox\, \CupertinoTabBar\, and \CupertinoActivityIndicator\, along with essential supporting files for colors, constants, and localizations. This allows developers to easily integrate native-looking iOS interfaces into their apps.
_packages/cupertino\ui/lib/src · high confidence
Linux file selector now supports creating directories
The Linux implementation of the file selector plugin has been updated to support the \canCreateDirectories\ option. This change, driven by a migration to Pigeon v27.3.2 for platform channel communication, allows users to create new folders directly within the file chooser dialog when opening or saving files, aligning Linux behavior with other supported platforms.
_packages/file\_selector/file\_selector\linux/lib/src · high confidence
New API documentation examples for cupertino\_ui
The cupertino\_ui package now includes a comprehensive set of runnable example applications in its example directory, covering widgets such as CupertinoActivityIndicator, CupertinoButton, CupertinoCheckbox, CupertinoContextMenu, CupertinoDatePicker, CupertinoTimerPicker, CupertinoActionSheet, CupertinoAlertDialog, CupertinoPopupSurface, CupertinoExpansionTile, and CupertinoFormRow. These examples are structured to be individually runnable and are linked directly from the Dartdoc API documentation via the {@example} directive, allowing developers to see and test the widgets in context.
_packages/cupertino\ui/example · high confidence
New Linux implementation for file selector plugin
The Linux platform implementation for the file\_selector plugin has been added, enabling file selection, multi-file selection, directory path retrieval, and save dialog functionality on Linux systems. This new implementation registers itself as the platform handler and communicates with the host via Pigeon-generated bindings, supporting features like type group filtering, initial directory setting, and directory creation options.
_packages/file\_selector/file\_selector\linux/lib · high confidence
New Windows camera example app with MediaSettings support
The example application for the camera\_windows plugin has been replaced with a new implementation that demonstrates the federated camera platform interface. This updated example allows users to configure specific capture parameters via MediaSettings, including resolution preset, frame rate, and audio/video bitrates, providing a more comprehensive demonstration of the plugin's capabilities on the Windows desktop platform.
_packages/camera/camera\windows/example/lib · high confidence
New pre-commit hook for formatting and static analysis
Developers can now install a pre-commit Git hook that automatically runs formatting and static analysis checks on staged package changes before a commit is created. The hook is installed via \dart script/githooks/bin/install\_hooks.dart\ and can be bypassed with \--no-verify\. Additionally, configuration files have been added to \script/configs\ to manage test exclusions (e.g., for integration tests on specific platforms, Wasm, or Xcode warnings) and to define custom code coverage minimums, such as the 18.3% threshold for \camera\_android\_camerax\.
script · high confidence
New repository tooling for CI, analysis, and batch releases
The repository introduces a new Dart-based tooling suite in the \script/tool\ directory to standardize and automate package maintenance. This includes an \analyze\ command that runs Dart, Android (Gradle), and iOS/macOS (Xcode) static analysis with configurable platform flags and SDK overrides. A \build-examples\ command allows building plugin example apps across all supported platforms, including optional Swift Package Manager support. The suite also adds a \branches-for-batch-release\ command to automate the creation of release branches and commits based on pending changelogs, and a \ci\_config\ parser to read package-level CI configuration files (e.g., for batch release mode or custom analysis options exemptions). These tools replace or supplement previous ad-hoc scripts, providing a unified interface for common repository tasks.
script/tool · high confidence
Pigeon example app adds Kotlin/Java generated message classes with deep equality support
The Pigeon example app now includes generated Kotlin and Java source files (Messages.java, Messages.g.kt, EventChannelMessages.g.kt) that implement deep equality and hash code logic for complex types. These generated classes handle correct comparison and hashing for nested structures like lists, maps, and arrays, as well as special handling for floating-point values (normalizing -0.0 and NaN), ensuring consistent behavior when comparing data sent across platform channels.
app · high confidence
Remote Flutter Widgets (RFW) package initial release
The \packages/rfw\ directory is introduced as a new package providing a mechanism to render Flutter widgets based on declarative UI descriptions obtained at runtime. This release includes the core library, a comprehensive \README\ explaining the architecture of remote widget libraries and local widget definitions, and a \hello\ example app demonstrating how to use the \RemoteWidget\ widget to render UI from a hard-coded description. The package also establishes its development infrastructure, including a \CHANGELOG.md\ tracking versions from 1.0.0 to the upcoming release, a \CONTRIBUTING.md\ guide for adding new widgets and managing golden tests, and standard project files like \LICENSE\ and \.gitignore\.
packages/rfw · high confidence
Web implementation for file selector platform
Adds the web-specific implementation of the file selector platform, enabling file selection and save path retrieval on web browsers. The new \FileSelectorWeb\ class registers itself as the default platform instance and handles \openFile\, \openFiles\, \getSavePath\, \getSaveLocation\, and \getDirectoryPath\ by interacting with the DOM via a helper class. Notably, \getSavePath\ and \getSaveLocation\ return non-null dummy values (empty strings) on web, as the platform interface expects non-null results for these operations even when the browser does not provide a real file path.
_packages/file\_selector/file\_selector\web/lib · high confidence
Windows desktop example project scaffolding
The camera\_windows example application now includes the native Windows runner files (CMake build configuration, Win32 window management, and Flutter host integration), enabling users to build and run the example directly on the Windows desktop platform.
_packages/camera/camera\windows/example/windows · high confidence
Windows file selector example now supports directory selection
The Windows file selector example application has been updated to include new demo pages for selecting directories. Users can now choose a single directory or multiple directories via dedicated UI screens, which call the platform interface's \getDirectoryPathWithOptions\ and \getDirectoryPathsWithOptions\ methods and display the results in dialogs. The home page has also been updated with navigation buttons to access these new directory-selection demos alongside the existing file open and save examples.
_packages/file\_selector/file\_selector\_linux/example/lib, packages/file\_selector/file\_selector\windows/example/lib · high confidence
google\_maps\_flutter package federation and example app modernization
The \google\_maps\_flutter\ package is federated into a unified app-facing package that endorses platform-specific implementations (\google\_maps\_flutter\_android\, \google\_maps\_flutter\_ios\, \google\_maps\_flutter\_web\). This change includes a major update to the example application, migrating it to Kotlin, upgrading the Android Gradle wrapper to 9.3.1, and consolidating integration tests into a single entry point to run efficiently on Firebase Test Lab. The package also introduces support for Advanced Markers, updates the minimum supported SDK version to Flutter 3.41/Dart 3.11, and adds a new AUTHORS file to track contributors.
_packages/google\_maps\flutter · high confidence
image\_picker: Initial federated release with multi-media support and desktop platforms
This entry covers the initial release of the federated \image\_picker\ plugin (version 1.0.0), which introduces \pickMultiVideo\ for selecting multiple videos, a \limit\ parameter for \pickMultiImage\ and \pickMultipleMedia\, and initial support for Windows, macOS, and Linux via \file\selector\. It also includes the \pickMedia\ and \pickMultipleMedia\ methods for unified image/video selection, while removing the deprecated \get\\ methods and \PickedFile\ return types in favor of \XFile\. The release updates the minimum supported SDK version to Flutter 3.41/Dart 3.11 and includes a comprehensive changelog and updated documentation.
_packages/image\picker · high confidence
vector\_graphics\_compiler: Initial stable release with SVG parsing, optimization, and CLI tooling
The \vector\_graphics\_compiler\ package is now available as a stable library and command-line tool for compiling SVG files into a binary format for the \vector\_graphics\ runtime. This release introduces synchronous SVG parsing, support for groups, paths, basic shapes, gradients, text, images, patterns, and masks. It includes built-in optimizations such as opacity peepholing, transformation inlining, group collapsing, and mask/clip elimination. The compiler now supports parallel processing via isolates, half-precision control point encoding, and modern CSS color syntax (HSL/HSLA, rgb/rgba). It also fixes several parsing and rendering bugs, including handling of circular references, scientific notation in transforms, and text positioning. The CLI tool provides options for input/output directories, concurrency control, and debug output.
_packages/vector\_graphics\compiler · high confidence
web\_benchmarks package initial release
The \web\_benchmarks\ package is introduced as a new benchmark harness for Flutter Web apps. It provides a server-side component to build and serve the benchmark app and a client-side component to run benchmarks in Chrome and collect performance traces. The package supports both JavaScript (dart2js) and WebAssembly (dart2wasm) compilation targets via \CompilationOptions\, and exposes detailed metrics including frame timings (total, build, raster) and percentile statistics (p50, p90, p95). It also includes analysis utilities to compute averages and deltas between benchmark results.
(repo-wide) · high confidence
Architecture
iOS camera plugin adopts Pigeon for platform channel communication
The iOS implementation of the camera plugin has been converted to use Pigeon for generating platform channel code. This change introduces a new \messages.dart\ configuration file that defines the interface between Dart and Swift, including enums for camera lens direction and type, as well as classes for camera descriptions, state, and image data. The generated Swift code replaces the previous Objective-C/Dart bridge, streamlining the communication layer for camera operations on iOS.
_packages/camera/camera\avfoundation/pigeons · high confidence
Behavioural changes
Add Kotlin Result utility helpers for file selector
The Android implementation of the file\_selector plugin now includes a new Kotlin utility file (ResultUtils.kt) that provides helper functions for completing asynchronous operations with either a success value or an error, standardizing how results are returned to the Flutter side.
_packages/file\_selector/file\_selector\_android/android/src/main/kotlin/dev/flutter/packages/file\_selector\android · high confidence
Add NV21 image stream format and refactor media recording on Android
The Android camera plugin now supports NV21 as an image stream format, allowing Dart code to receive camera frames in this specific layout. To support this, a new ImageStreamReader and utility classes handle the conversion from YUV\_420\_888 to NV21 and manage frame delivery with a hard reference to prevent memory-related drops. Additionally, the media recording implementation has been refactored to use a builder pattern (MediaRecorderBuilder) that defaults to the legacy CamcorderProfile when the newer EncoderProfiles API is unavailable, ensuring broader compatibility across Android versions.
_packages/camera/camera\android/android/src/main/java/io/flutter/plugins/camera/media · high confidence
Android WebView communication migrated to Pigeon
The Android implementation of the webview\_flutter plugin has been refactored to use Pigeon for Dart-to-Android communication. This change replaces the previous InstanceManager-based approach with a new set of ProxyApi classes (such as CookieManagerProxyApi, WebViewProxyApi, and WebChromeClientProxyApi) that handle the serialization and deserialization of native Android objects like SslError, ConsoleMessage, and PermissionRequest. For users, this provides a more robust and type-safe bridge between the Flutter framework and the underlying Android WebView, ensuring that complex native callbacks and error states are correctly passed to Dart code.
_packages/webview\_flutter/webview\_flutter\android/android/src/main/java/io/flutter/plugins/webviewflutter · high confidence
Android WebView implementation migrated to Pigeon API
The Android portion of the webview\_flutter plugin has been refactored to use the Pigeon code-generation framework for communication with Dart. This change introduces new Java classes (such as DownloadListenerProxyApi, JavaScriptChannel, and FlutterViewFactory) that handle platform interactions like file downloads, JavaScript channels, and view creation via the new Pigeon-based host API, replacing the previous implementation approach.
_webview\flutter · high confidence
Android camera implementation migrated to Pigeon and new file structure
The \camera\_android\ plugin's Android native code has been restructured to use Pigeon for Dart-to-native communication, replacing the previous method channel approach. This change introduces new generated binding classes (e.g., \Messages.java\) and refactors core components like \Camera.java\ and \ImageSaver.java\ to align with the new interface. Users benefit from a more robust and maintainable plugin architecture, though this represents a significant internal overhaul of how the Android camera hardware interacts with the Flutter framework.
_camera\android · high confidence
Android camera plugin refactors native API bindings to use ProxyApi
The Android camera implementation has been refactored to replace the previous communication mechanism with a new ProxyApi-based architecture. This change introduces dedicated proxy classes for key components—including Preview, Analyzer, Observer, VideoRecordEventListener, and SystemServicesManager—to handle native object instantiation and callback marshalling to Dart. For users, this represents an internal structural update to how the plugin manages camera lifecycle events and surface providers, aiming to improve the stability and maintainability of the native-to-Dart interface without altering the public Dart API.
_camera\_android\camerax · high confidence
Android camera plugin switches to Pigeon for platform communication
The Android camera plugin has been refactored to use Pigeon for Dart-to-native communication, replacing the previous manual method channel implementation. This change introduces a new \CameraApiImpl\ class that implements the generated \Messages.CameraApi\ interface, handling core operations like camera creation, initialization, picture taking, and video recording through typed Pigeon messages. The plugin now uses a dedicated \DartMessenger\ to send events (such as orientation changes and camera state updates) via Pigeon-generated event APIs, and includes new utility classes like \CameraPermissions\ and \CameraRegionUtils\ to support the updated architecture. This migration improves type safety and maintainability of the platform interface.
_packages/camera/camera\_android/android/src/main/java/io/flutter/plugins/camera, packages/camera/camera\android/lib · high confidence
Android implementation migrated to Kotlin Pigeon
The Android platform code for image\_picker has been rewritten to use the Kotlin Pigeon code generation framework instead of the previous MethodChannel approach. This change updates the internal communication mechanism between the Flutter engine and the Android plugin, resulting in a new plugin structure that implements the generated ImagePickerApi interface.
_image\_picker\android · high confidence
Android implementation migrated to Pigeon with new architecture and features
The Android platform implementation for Google Maps has been completely rewritten to use the Pigeon code-generation framework for communication with Dart, replacing the previous manual platform channel approach. This architectural shift introduces a new modular controller structure (e.g., separate controllers for markers, circles, and clusters) and adds support for advanced features including the new LATEST map renderer, advanced markers, and map warmup capabilities. Additionally, the plugin now registers an internal attribution ID for Google Maps Platform usage tracking.
_packages/google\_maps\_flutter/google\_maps\_flutter\android/android/src/main/java/io/flutter/plugins/googlemaps · high confidence
Android in-app purchase listener migrated to Pigeon API
The Android implementation of the in-app purchase plugin has been refactored to use the Pigeon communication layer. The new PluginPurchaseListener now interacts with the Flutter engine via the generated InAppPurchaseCallbackApi, replacing the previous direct binding mechanism. This change modernizes the Android-side code structure and aligns it with the plugin's broader migration to Pigeon for platform channel communication.
_in\_app\purchase · high confidence
Android in-app purchase plugin refactored to support alternative billing modes and updated to Billing Client 8.0.0
The Android implementation of the in\_app\_purchase plugin has been significantly refactored to support new Google Play billing capabilities, specifically Alternative Billing and User Choice Billing modes. This change introduces a new \BillingClientFactory\ and \BillingClientFactoryImpl\ to handle the creation of \BillingClient\ instances with specific configurations for \ALTERNATIVE\_BILLING\_ONLY\, \USER\_CHOICE\_BILLING\, and \PLAY\_BILLING\_ONLY\. The plugin now supports the \showInAppMessages\ API and integrates with the updated Google Play Billing Library 8.0.0. Additionally, the internal architecture has been migrated to use Android Pigeon for method channel communication, improving type safety and performance. Users can now configure their billing client to support alternative billing providers where permitted by Google Play policies.
_packages/in\_app\_purchase/in\_app\_purchase\android/android/src/main/java/io/flutter/plugins/inapppurchase · high confidence
Android map view creation now uses Pigeon-generated configuration objects
The Android implementation for Google Maps Flutter has been updated to use a new \GoogleMapFactory\ that relies on Pigeon-generated \PlatformMapViewCreationParams\ and \PlatformMapConfiguration\ objects. This change shifts how map initialization data (such as camera position, markers, polygons, and map ID) is passed from the Dart layer to the native Android layer, ensuring type-safe and structured configuration during platform view creation.
_google\_maps\_flutter\android · high confidence
Android plugins migrate to Pigeon v27.3.2 and ProxyApis
The Android platform implementations for camera, cross\_file, file\_selector, google\_maps\_flutter, google\_sign\_in, image\_picker, in\_app\_purchase, and interactive\_media\_ads have been regenerated using Pigeon v27.3.2. This migration introduces a new ProxyApi architecture for handling native object instances and method calls, alongside updated message channel and codec logic, to improve stability and performance in Dart-to-Android communication.
android · high confidence
Android quick actions implementation rewritten using Kotlin Pigeon and AndroidX Compat APIs
The Android plugin implementation has been completely rewritten to use Kotlin Pigeon for platform channel communication, replacing the previous method. The code now utilizes AndroidX Core \ShortcutManagerCompat\ and \ShortcutInfoCompat\ classes instead of the direct Android framework APIs, ensuring better compatibility with Google surfaces and older Android versions. The plugin lifecycle is now managed via the modern \FlutterPlugin\ and \ActivityAware\ interfaces, and the logic for handling quick action launches has been refactored to avoid manual thread hopping, relying instead on the Pigeon-generated callback mechanisms.
_packages/quick\_actions/quick\_actions\android/android/src/main/java/io/flutter/plugins/quickactions · high confidence
Android video player refactored to use Media3 and support new playback features
The Android implementation has been rewritten to use the ExoPlayer-Media3 library, introducing support for RTSP streaming, configurable back buffers, and audio/video track selection. The new architecture also improves initialization reliability by waiting for a valid duration before sending the initialized event, and correctly reports display dimensions for anamorphic content.
_packages/video\_player/video\_player\android/android/src/main/java/io/flutter/plugins/videoplayer · high confidence
Android video rendering now uses Platform Views with improved fullscreen stability
The Android implementation has been refactored to use Platform Views (via \PlatformVideoView\ and \PlatformVideoViewFactory\) instead of the previous rendering approach. This change introduces a dedicated \VideoSurfaceView\ that re-attaches the player surface when the view becomes visible, specifically fixing rendering freezes that occurred after full-screen transitions. It also includes a workaround for Android 9 (API 28) to ensure the first frame displays correctly when resuming from a paused state. Additionally, event callbacks have been consolidated into \VideoPlayerEventCallbacks\ to handle initialization, playback state, errors, and audio/video track changes more robustly.
_video\_player\android · high confidence
Animations package version 3.0.0 release
The animations package has been updated to version 3.0.0, which migrates the codebase to the new material\_ui package and raises the minimum supported SDK versions to Flutter 3.44 and Dart 3.12.
packages/animations · high confidence
Camera example app restructured with new state and preview widgets
The camera Android example app has been refactored to improve code organization and state management. The previous monolithic structure has been split into dedicated components: \camera\_controller.dart\ now houses the \CameraValue\ state class and a lightweight \CameraController\ wrapper specifically designed for example and integration test usage, while \camera\_preview.dart\ contains the \CameraPreview\ widget responsible for rendering the live feed and handling device orientation rotations. The main application logic in \main.dart\ has been updated to utilize these new abstractions, providing a cleaner separation of concerns for users studying or extending the example.
_packages/camera/camera\android/example/lib · high confidence
Camera package restructured with new public API exports
The camera package has been reorganized, moving its core implementation into the \lib\ directory and establishing a clean public API surface. The main \camera.dart\ file now explicitly re-exports key types from the \camera\_platform\_interface\ (such as \CameraDescription\, \FlashMode\, and \VideoStabilizationMode\) alongside the new concrete implementation classes (\CameraController\, \CameraImage\, and \CameraPreview\). This change standardizes how users import and interact with the camera functionality, ensuring that platform-specific details are abstracted behind a consistent Dart interface.
packages/camera/camera/lib · high confidence
Camera plugin restructured to use platform interface and adds camera metadata
The camera plugin's Dart source files have been rewritten to delegate to the \camera\_platform\_interface\, replacing the previous direct implementation. This change introduces a new \CameraValue\ state object that exposes camera settings like flash, exposure, and focus modes, and adds a \CameraImage\ class that includes sensor metadata such as lens aperture, exposure time, and ISO sensitivity. The \CameraPreview\ widget has also been updated to handle orientation and rotation logic based on the new controller state.
packages/camera/camera/lib/src · high confidence
Continuous Flutter framework version updates in CI
The CI configuration files are updated to track new Flutter framework commits, ensuring the continuous integration environment uses the latest framework versions for testing and building.
.ci · high confidence
Cupertino Icons package updated to 1.0.9 with SDK and glyph fixes
The cupertino\_icons package has been updated to version 1.0.9, raising the minimum supported SDK version to Flutter 3.35 and Dart 3.9. This release removes an empty Dart file and addresses visual issues by vertically center-aligning the icons and fixing overlapping or broken outlines for specific glyphs such as 'create\_solid' and 'car\_fill'.
_third\_party/packages/cupertino\icons · high confidence
Cupertino UI localizations moved to standalone package
The localization resources for the Cupertino UI library, including the \.arb\ translation files and the \README.md\ documentation, have been relocated from the \flutter\_localizations\ package into the \packages/cupertino\_ui/lib/src/l10n\ directory. This change consolidates the Cupertino-specific internationalization assets within the Cupertino UI package itself, ensuring that localized strings for components like date pickers, dialogs, and text selection menus are managed alongside the UI code.
_packages/cupertino\ui/lib/src/l10n, script/l10n · high confidence
Enforce platform interface extension and prevent const tokens
The \plugin\_platform\_interface\ package now uses \PlatformInterface.verify\ to strictly enforce that platform implementations use \extends\ rather than \implements\, and it rejects the use of \const Object()\ as an instance token to prevent subtle verification bypasses. To support testing, the \MockPlatformInterfaceMixin\ is now a \mixin class\ (requiring Dart 3.0) and works with both mocks and fakes, allowing test doubles to bypass the extension check. The older \verifyToken\ method is marked for deprecation in favor of the new \verify\ method.
_packages/plugin\_platform\interface · high confidence
Espresso example app adopts Flutter v2 embedding and Kotlin
The Espresso example app's Android source files have been updated to use the Flutter v2 embedding (android:name="${applicationName}" and flutterEmbedding value "2" in AndroidManifest.xml) and the MainActivity is now implemented in Kotlin extending FlutterActivity. This change ensures the example app is compatible with modern Flutter tooling and Android standards, replacing the legacy V1 embedding setup.
packages/espresso/example/android/app/src/main · high confidence
Example app Android project modernized for Flutter v2 embedding
The Android example app for the Google Sign-In extension has been updated to use the Flutter v2 embedding. This includes adding a new \google-services.json\ configuration file, creating standard \MainActivity.kt\ and launch splash screens, and defining light and dark mode themes. The \AndroidManifest.xml\ files now explicitly declare the \flutterEmbedding\ value as 2 and include the necessary \\<queries\>\ block for text processing, ensuring the example app aligns with current Flutter Android project standards.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/android/app · high confidence
Example app now uses Gradle 9.3.1 wrapper
The \packages/animations/example\ Android project has been updated to use Gradle 9.3.1 as its build tool version. This change ensures the example app is compatible with the latest Gradle wrapper distribution, which is necessary for supporting newer JDK versions and adhering to current Android build system standards.
packages/animations/example/android/gradle · high confidence
Example app updated to use the new Android embedding API
The example application's MainActivity has been migrated to the new Flutter Android embedding API. It now extends FlutterActivity and uses the new plugin registration flow via configureFlutterEngine, while the included TestPlugin demonstrates how to access the Android Lifecycle using the updated FlutterLifecycleAdapter.
_packages/flutter\_plugin\_android\_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter\_plugin\_android\_lifecycle\example · high confidence
Example apps now use Kotlin instead of Java
The Android example applications for camera, file\_selector, google\_maps\_flutter, google\_sign\_in, image\_picker, quick\_actions, video\_player, and webview\_flutter have been converted from Java to Kotlin. This change updates the native Android boilerplate code (such as MainActivity and test activities) to use Kotlin, aligning the examples with modern Android development standards while maintaining the same functionality.
(repo-wide) · high confidence
File selector example app Android activity converted to Kotlin
The Android example application for the file\_selector plugin has migrated its main activity implementation from Java to Kotlin. This change updates the boilerplate code for the example app to use the modern Kotlin language, aligning with current Android development standards, while maintaining the same functionality of extending FlutterActivity.
_packages/file\_selector/file\_selector/example/android/app/src/main/kotlin/dev/flutter/plugins/file\_selector\example · high confidence
Introduce file\_selector platform interface with new dialog options and return types
The file\_selector platform interface has been established, providing the foundational API for file selection across platforms. This update introduces structured configuration via \FileDialogOptions\ and \SaveDialogOptions\, including a new \canCreateDirectories\ setting for directory dialogs. It also modernizes return types: save operations now return a \FileSaveLocation\ object (exposing the path and active filter) instead of a raw string, and directory selection methods have been updated to accept options objects (\getDirectoryPathWithOptions\, \getDirectoryPathsWithOptions\) while deprecating the older parameter-based methods. The interface also standardizes file type filtering using \XTypeGroup\ with support for MIME types, extensions, and Uniform Type Identifiers.
_packages/file\_selector/file\_selector\_platform\interface/lib · high confidence
Linux file selector now uses Pigeon for platform channel communication
The Linux implementation of the file\_selector plugin has been migrated to use Pigeon for generating the platform channel interface. This introduces a new set of generated Dart and C++/GObject files (messages.g.dart, messages.g.h, messages.g.cc) that define the API contract between the Dart code and the native Linux backend, replacing the previous manual platform channel implementation. This change standardizes the interop layer for Linux, aligning it with the approach used on other platforms.
_packages/file\_selector/file\_selector\linux/pigeons · high confidence
Linux file selector plugin re-implemented using Pigeon
The Linux implementation of the file\_selector plugin has been rewritten to use Pigeon for platform channel communication, replacing the previous approach. This change introduces a new C++ plugin structure (file\_selector\_plugin.cc) that integrates with GTK via the generated messages.g.cc/h bindings, and updates the build configuration (CMakeLists.txt) to compile the new sources and link against GTK. The re-implementation includes unit tests (file\_selector\_plugin\_test.cc) that verify dialog creation, file type filtering, and options like multi-select and folder creation, ensuring the native file chooser behavior remains consistent for users on Linux.
_packages/file\_selector/file\_selector\linux/linux · high confidence
Migration tooling for decoupled Cupertino widgets
The \cupertino\_ui\ package now includes a data-driven Dart fix (\migrate\_design\_widgets\) that automatically updates imports from \package:flutter/cupertino.dart\ to \package:cupertino\_ui/cupertino\_ui.dart\ and refactors deprecated API usages (such as \maxLengthEnforced\ to \maxLengthEnforcement\ and \isAlwaysShown\ to \thumbVisibility\). The package also provides \CupertinoUiCompatibilityBridge\ to allow legacy third-party packages depending on the old framework imports to function correctly within modern widget trees.
_packages/cupertino\ui · high confidence
New Android camera feature implementations for resolution and sensor orientation
The Android camera plugin now includes new Java feature classes to handle resolution presets and sensor orientation on Android. ResolutionFeature manages resolution configuration by selecting the best available CamcorderProfile or EncoderProfiles based on the requested preset, while SensorOrientationFeature and its helper DeviceOrientationManager track device orientation changes and calculate the correct photo/video orientation angles for capture. These changes ensure that resolution and orientation settings are correctly applied to the underlying Android camera2 API.
_packages/camera/camera\android/android/src/main/java/io/flutter/plugins/camera/features/resolution · high confidence
New CameraX-based Android camera implementation
The Android camera plugin now uses the CameraX library instead of the legacy Camera2 API. This introduces a new implementation class (AndroidCameraCameraX) that wraps CameraX components for preview, video capture, and image analysis, and includes a Pigeon-generated Dart proxy layer (camerax\_library.g.dart) to communicate with the native side. The update also adds dedicated widgets to correct camera preview rotation on landscape devices and for Impeller backends that do not automatically handle surface rotation, ensuring the live preview remains upright across device orientations.
_packages/camera/camera\_android\camerax/lib/src · high confidence
New CameraX-based example app for Android
The camera example application has been rewritten to use the new CameraX plugin implementation for Android. This update introduces a complete set of example files (main.dart, camera\_controller.dart, camera\_preview.dart, camera\_image.dart) that demonstrate the new platform interface, including support for image streaming, video recording with audio control, and advanced camera settings like focus, exposure, and zoom. Users running the example on Android will now see the modern CameraX-based UI and behavior instead of the legacy implementation.
_packages/camera/camera\_android\camerax/example/lib · high confidence
New camera example application with advanced controls
The camera example app has been replaced with a comprehensive implementation that demonstrates advanced camera capabilities. Users can now toggle between front and rear cameras, adjust zoom levels via pinch gestures, and control flash, exposure, and focus modes using animated UI panels. The example also supports capturing photos and videos with audio, handling app lifecycle changes to prevent resource leaks, and displaying captured media thumbnails.
packages/camera/camera/example/lib · high confidence
PointerInterceptor example app migrates to UIScene and Swift
The iOS example application for the PointerInterceptor package has been updated to use the modern UIScene lifecycle instead of the deprecated application lifecycle, and the native code has been migrated from Objective-C to Swift. This ensures the example app builds and runs correctly on current iOS versions and aligns with modern Apple development practices, while the core pointer-interception functionality demonstrated in the app remains unchanged.
_packages/pointer\interceptor · high confidence
Preserve EXIF metadata and improve file handling reliability
The Android image picker now preserves EXIF metadata (such as camera model, GPS coordinates, and exposure settings) when images are resized, ensuring that important image attributes are not lost. Additionally, file path resolution has been hardened to handle null streams and security exceptions gracefully, and filenames are sanitized to prevent path traversal vulnerabilities while retaining original names where possible.
_packages/image\_picker/image\_picker\android/android/src/main/java/io/flutter/plugins/imagepicker · high confidence
Skills directory now points to .agents/skills
The .claude/skills location is now a symbolic link pointing to .agents/skills, consolidating skill definitions under the .agents directory structure.
.claude · high confidence
Updated example app to use Google Sign-In v7 API
The example application in this package has been rewritten to align with the Google Sign-In v7 API. Users can now see how to initialize the sign-in instance, listen to authentication events (sign-in and sign-out), and request client authorization for specific scopes (such as reading Google Contacts). The demo demonstrates the modern pattern of using \GoogleSignIn.instance\ and \GoogleSignInClientAuthorization\ to obtain an authenticated HTTP client for calling Google APIs, replacing older initialization and authentication methods.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/lib · high confidence
Updated example web entry point for modern web standards
The example application's web entry point (index.html) has been updated to use the modern HTML5 doctype and includes the necessary script tag to load the Flutter web runtime via flutter\_bootstrap.js. This change ensures the example runs correctly in modern browsers and aligns with current Flutter web initialization practices.
_packages/file\_selector/file\_selector\web/example/web · high confidence
Updated iOS example project boilerplate
The iOS example project for the Google Sign-In as Google APIs Auth extension has been updated with standard Flutter boilerplate files. This includes the addition of AppFrameworkInfo.plist, Debug and Release xcconfig files, and the Xcode workspace configuration, ensuring the example app aligns with current project structure standards.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/ios/Flutter · high confidence
Updated web entry point and manifest for the Google Sign-In example app
The example app's web entry point (index.html) and web manifest (manifest.json) have been updated to align with modern Flutter web standards. The HTML file now includes proper base href handling for non-root paths, updated iOS meta tags, and a placeholder for the Google Sign-In client ID, while the manifest defines the app as a standalone PWA with specific theme colors and icon assets.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/web · high confidence
Web file selector now handles user cancellation and validates type groups
The web implementation of the file selector plugin has been updated to listen for the 'cancel' event on the file input, ensuring that selecting no files returns an empty list rather than hanging or erroring. Additionally, the plugin now validates that provided file type groups contain at least one supported filter category (extensions, MIME types, or web wildcards), throwing an error for unsupported or empty configurations to prevent ambiguous file selection dialogs.
_packages/file\_selector/file\_selector\web/lib/src · high confidence
Windows camera plugin now uses Pigeon for platform channel communication
The Windows camera implementation has migrated its platform interface to use Pigeon (v27.3.2) for C++ to Dart communication. This change introduces a new autogenerated \messages.g.dart\ file that defines the structured data types and serialization logic for platform messages, replacing the previous manual channel handling. For users, this ensures more robust and type-safe interaction between the Dart camera API and the native Windows camera backend.
_packages/camera/camera\windows/lib/src · high confidence
Windows camera plugin now uses Pigeon for platform communication
The Windows camera implementation has been migrated to use Pigeon for communication between Dart and C++, replacing the previous method channel approach. This change introduces a new \CameraApi\ interface and \HostCameraMessageHandler\ to manage camera events and host-side calls, resulting in a more robust and type-safe platform integration for Windows desktop applications.
_packages/camera/camera\windows/lib · high confidence
Windows camera plugin rewritten with Pigeon and Media Foundation
The Windows camera plugin implementation has been completely rewritten to use Pigeon for the C++ to Dart method channel binding, replacing the previous approach. This change introduces a new architecture based on Windows Media Foundation, featuring dedicated handlers for video preview, recording, and photo capture, along with explicit device media type configuration for video previews. The update also improves error handling by introducing specific error codes like \CameraAccessDenied\ and adds support for retrying after initialization failures, resulting in a more robust and maintainable camera experience on Windows desktop.
_packages/camera/camera\windows/windows · high confidence
Windows file selector implementation regenerated with Pigeon v27.3.2
The Windows platform implementation for the file\_selector plugin has been regenerated using Pigeon version 27.3.2. This update replaces the previous generated code in \messages.g.dart\ with a new version that includes updated serialization logic for message passing between Dart and the host platform, ensuring compatibility with the latest Pigeon code generation standards.
_packages/file\_selector/file\_selector\windows/lib/src · high confidence
Windows file selector now returns the selected file type group index
The Windows implementation of the file selector plugin has been updated to expose the index of the file type group (e.g., 'Images', 'Documents') that the user selected when confirming the dialog. This new \typeGroupIndex\ field is included in the \FileDialogResult\ returned by both open and save dialogs, allowing applications to determine exactly which filter category triggered the selection. This change is implemented via a Pigeon interface definition that passes this additional data from the native Windows layer to Dart.
_packages/file\_selector/file\_selector\windows/pigeons · high confidence
Windows file selector plugin rewritten using Pigeon with initial directory fix
The Windows implementation of the file\_selector plugin has been migrated to use Pigeon (v27.3.2) for platform channel communication, replacing the previous method channel approach. This rewrite introduces a new C++ architecture featuring a \FileDialogController\ wrapper for Windows Shell dialogs and a factory pattern to support dependency injection and unit testing. Additionally, the migration includes a fix for a bug where the initial directory was not respected after completing a file selection, ensuring the dialog correctly restores the expected starting path.
_packages/file\_selector/file\_selector\windows/windows · high confidence
file\_selector\_macos example app updated to demonstrate directory selection and save location APIs
The macOS example application has been updated to include dedicated pages for selecting directories (\getDirectoryPathWithOptions\, \getDirectoryPathsWithOptions\) and saving files (\getSaveLocation\). Users can now test directory creation capabilities and the new save location return value, which provides a \FileSaveLocation\ object instead of a simple path string.
_packages/file\_selector/file\_selector\macos · high confidence
go\_router v18.0.0 release with SDK and UI framework migrations
The go\_router package has been updated to version 18.0.0, which raises the minimum supported SDK version to Flutter 3.44 and Dart 3.12. Additionally, the package has migrated its internal implementation to use the new material\_ui and cupertino\_ui packages, replacing the previous Material and Cupertino widget dependencies.
_packages/go\router · high confidence
go\_router\_builder detects duplicate route paths at build time
The go\_router\_builder now warns (or errors) when two routes resolve to the same URL pattern, preventing unreachable routes. This check compares the full resolved URL across the entire route tree, including shell routes and StatefulShellRoute branches, and treats paths differing only in parameter names or casing (when caseSensitive is false) as collisions. Users can configure the behavior via the \duplicate\_route\_paths\ builder option in \build.yaml\ to set it to \warning\ (default), \error\, or \ignore\.
_packages/go\_router\builder · high confidence
google\_fonts package update to version 8.2.1
The google\_fonts package has been updated to version 8.2.1, which includes a fix for the \pendingFonts()\ API to correctly remove failed font loads from the pending list, preventing them from being retained indefinitely. The package also adds support for new fonts such as Akt, Geist Pixel, and LINE Seed JP, while removing Finlandica and Saira Stencil One. Additionally, the minimum supported SDK version has been updated to Flutter 3.41 and Dart 3.11.
_packages/google\fonts · high confidence
google\_sign\_in 7.0.0: Major API redesign for Google Identity Services
This release introduces a breaking API redesign to align with the deprecated Google Sign-In SDKs and the new Google Identity Services (GIS) SDKs. The \GoogleSignIn\ instance is now a singleton accessed via \GoogleSignIn.instance\, and applications must explicitly call and await the new \initialize\ method before using the plugin. Authentication and authorization are now distinct steps: \authenticate\ handles sign-in, while \authorizationForScopes\ and \authorizeScopes\ manage access tokens, and \authorizeServer\ retrieves server auth codes. The previous \signInSilently\ method is replaced by \attemptLightweightAuthentication\, and \clearAuthCache\ is renamed to \clearAuthorizationToken\. Error handling now uses \GoogleSignInException\ with specific codes (e.g., \GoogleSignInExceptionCode.canceled\) instead of generic exceptions. This change affects the core \google\_sign\_in\ package, requiring updates to initialization flows and scope management in all applications.
_packages/google\_sign\in · high confidence
iOS camera implementation migrated to Pigeon with AVFoundation
The iOS camera plugin now uses the Pigeon code-generation tool for platform channel communication, replacing the previous manual method-channel implementation. This migration introduces support for video stabilization modes (standard, cinematic, cinematicExtended) and exposes camera lens type information (wide, telephoto, ultra-wide) in camera descriptions. The change also includes updated type conversions for image formats and device orientations, ensuring more robust and type-safe interaction between Dart and the native AVFoundation layer.
_packages/camera/camera\avfoundation/lib · high confidence
iOS example app migrated to UIScene and Swift
The iOS example project for the camera plugin has been updated to use the modern UIScene lifecycle instead of the legacy application lifecycle, and the native code has been migrated from Objective-C to Swift. This change ensures the example app is compatible with current iOS development standards and Xcode configurations, requiring users to open the workspace and build using the updated Swift-based setup.
packages/camera/camera/example/ios · high confidence
iOS example app migrated to UIScene and Swift Testing
The iOS example app for the file\_selector plugin has been updated to use the modern UIScene lifecycle (replacing the deprecated UIApplicationDelegate-based launch) and has switched its unit tests from XCTest to the native Swift Testing framework, ensuring the example project stays compatible with current iOS development standards.
_packages/file\_selector/file\_selector\ios · high confidence
iOS example app migrated to UIScene lifecycle
The iOS example app for the file\_selector package has been updated to use the modern UIScene lifecycle. This change introduces a new AppDelegate implementing FlutterImplicitEngineDelegate, configures the Info.plist with UISceneManifest and UIWindowScene settings, and adds the necessary storyboard and asset files to support the new architecture, ensuring compatibility with current iOS standards.
_packages/file\_selector/file\selector/example/ios/Runner · high confidence
iOS example app migrated to modern iOS lifecycle and Swift
The iOS example app for the Google Sign-In as Google APIs Auth extension has been updated to use Swift instead of Objective-C and migrated to the modern UIScene lifecycle. This change updates the app delegate to use the new implicit engine delegate pattern and configures the Info.plist to support multiple scenes, ensuring the example app aligns with current iOS development standards and Flutter's latest iOS integration requirements.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/ios/Runner · high confidence
iOS example project migrated to Swift and Xcode 15
The iOS example app for the Google Sign-In as Google APIs Auth extension has been updated to use Swift instead of Objective-C, with the main entry point now being AppDelegate.swift. The Xcode project has been upgraded to object version 54 (Xcode 15.1), enabling modern build settings such as parallel build independent targets and implicit dependency building. The project scheme now includes a pre-action to prepare the Flutter framework and references the FlutterGeneratedPluginSwiftPackage, reflecting the removal of CocoaPods in favor of native Swift package integration for plugin registration.
_packages/extension\_google\_sign\_in\_as\_googleapis\auth/example/ios/Runner.xcodeproj · high confidence
iOS example project migrates to Swift Package Manager
The iOS example app for the file\_selector package has been updated to use Swift Package Manager for plugin integration, replacing the previous CocoaPods-based setup. This change updates the Xcode project configuration to reference the FlutterGeneratedPluginSwiftPackage, ensuring the example app builds and runs using the modern SPM dependency management approach.
_packages/file\_selector/file\selector/example/ios/Runner.xcodeproj · high confidence
iOS example project regenerated with Swift and modern Xcode configuration
The camera\_avfoundation example app's iOS project has been regenerated to use Swift, replacing the previous Objective-C setup. This update includes a new Xcode project structure with a SceneDelegate for modern app lifecycle management, updated Info.plist settings (such as enabling multiple scenes and indirect input events), and the integration of Swift Package Manager for plugin dependencies. Additionally, the example now ships with a comprehensive suite of Swift-based unit tests and mocks to verify camera functionality, alongside an integration test for validating capture resolutions and video recording behavior.
_packages/camera/camera\avfoundation/example · high confidence
integration\_test package moved to Flutter SDK
The integration\_test package has been moved into the Flutter SDK, and the standalone pub.dev version is now deprecated. Users should update their pubspec to include integration\_test as a dev dependency using the 'sdk: flutter' source instead of fetching it from pub.dev, and refer to the updated documentation for integration testing.
_packages/integration\test · high confidence
local\_auth example app updated for Flutter 3.41 and structured error handling
The local\_auth example application has been refreshed to align with the latest plugin standards. It now targets Flutter 3.41 and Dart 3.11, and its Android build configuration has been upgraded to use Gradle 9.3.1. The example code demonstrates the new structured error handling introduced in local\_auth 3.0.0, catching \LocalAuthException\ instead of generic \PlatformException\, and utilizes the updated \authenticate\ API with \persistAcrossBackgrounding\. Additionally, the iOS example project has been migrated to use the UIScene lifecycle and Swift Package Manager integration.
_packages/local\auth · high confidence
macOS example project migrated to Swift Package Manager
The macOS example app for the file\_selector package has been updated to use Swift Package Manager for dependency management, replacing the previous CocoaPods setup. This change includes a new Xcode project structure with Swift-based AppDelegate and MainFlutterWindow files, updated build configurations, and adjusted workspace settings to support the new package integration.
_packages/file\_selector/file\selector/example/macos · high confidence
path\_provider example app updated to Gradle 9.3.1 and iOS 15.1 toolchain
The path\_provider example application has been updated to use Gradle wrapper 9.3.1 for Android builds and migrated to the Xcode 15.1 toolchain for iOS, including a switch to the UIScene lifecycle in the iOS Runner configuration.
_packages/path\provider · high confidence
quick\_actions example project automigrated to modern iOS/macOS templates
The \quick\_actions\ example application has been fully regenerated to match the latest Flutter platform templates. On iOS, the project now uses the UIScene lifecycle (replacing the deprecated UIApplication delegate model), Swift 5 for the \AppDelegate\, and Swift Package Manager for dependency management. On Android, the example targets SDK level 34, uses Gradle 9.3.1, and includes a new integration test to verify shortcut functionality. Documentation and metadata files (README, CHANGELOG, AUTHORS) have also been standardized.
_packages/quick\actions · high confidence
shared\_preferences 2.5.5: Minimum SDK version bump and DevTools extension update
This release updates the minimum supported SDK version to Flutter 3.41 and Dart 3.11. It also updates the dependencies for the \shared\_preferences\_tool\ DevTools extension and fixes related deprecations. Additionally, the README has been updated to reflect the currently supported OS versions for the latest endorsed platform implementations.
_packages/shared\preferences · high confidence
url\_launcher example app updated for Gradle 9.3 and Flutter 3.41
The url\_launcher example application has been updated to use Gradle 9.3.1 and aligns with the minimum supported SDK versions of Flutter 3.41 and Dart 3.11. This includes updating the Android build configuration and ensuring the example app reflects the current supported OS versions for the endorsed platform implementations.
_packages/url\launcher · high confidence
webview\_flutter package structure and documentation reorganization
The \webview\_flutter\ package location has been reorganized to include its core documentation and metadata files (AUTHORS, CHANGELOG, LICENSE, README) directly within the package directory, alongside the example app configuration. The README has been updated to reflect the v4.0 API changes, specifically the split of the old \WebView\ class into \WebViewController\ and \WebViewWidget\, and the migration to a federated architecture where platform-specific features are accessed via \webview\_flutter\_android\ and \webview\_flutter\_wkwebview\. The example app has been updated to use Gradle 9.3.1 and includes a new network security configuration for debug builds.
_packages/webview\flutter · high confidence
Test coverage
Add Android example app test infrastructure and boilerplate; Add comprehensive test suite for the Cupertino UI package; Add legacy Android build test infrastructure for all\_packages; Add legacy Android build-all test infrastructure; Added Android example app boilerplate and test infrastructure; Added Android instrumentation test for FlutterActivity; Added Android instrumentation test for FlutterFragmentActivity; Added Android instrumentation test for SharedPreferences example app; Added Android instrumentation test for path\_provider example app; Added Android instrumentation tests for the webview\_flutter example app; Added Android integration test for the interactive\_media\_ads example app; Added Android integration test scaffolding for example apps; Added Android integration tests for the file\_selector example app; Added Android native UI test for WebView Flutter example app; Added Android native UI test for the example app's main activity; Added Android native UI test harnesses for example apps; Added Android native UI test scaffold for path\_provider example; Added Android test utilities for the CameraX plugin; Added Android unit tests for WebView Pigeon API wrappers; Added Android unit tests for video player components; Added C++ unit tests for the Windows file selector plugin; Added Java integration tests for Pigeon-generated code; Added Kotlin unit tests for SharedPreferences Android plugin; Added automated tests for the camera example app; Added initial test scaffolding for the CameraX example app; Added integration test driver for camera\_web example; Added integration test mocks for camera\_web; Added integration test scaffolding for the espresso example; Added integration tests for Android camera example; Added integration tests for camera Android CameraX plugin; Added integration tests for camera video recording and image streaming; Added placeholder test for camera\_web integration tests; Added test utility for Kotlin Result compatibility; Added tests for camera platform utility methods and test helpers; Added unit and integration tests for Android camera features; Added unit and integration tests for the Android cross\_file implementation; Added unit tests and leak detection for the Windows camera plugin; Added unit tests and validation infrastructure for camera\_android\_camerax; Added unit tests for Android URL launcher and WebView activity; Added unit tests for Android camera resolution feature; Added unit tests for Android image\_picker implementation; Added unit tests for Android local authentication plugin; Added unit tests for Android proxy APIs in interactive\_media\_ads; Added unit tests for ExposurePointFeature; Added unit tests for FlutterLifecycleAdapter; Added unit tests for VideoPlayerPlugin lifecycle management; Added unit tests for authClient integration; Added unit tests for camera image streaming and media recording; Added unit tests for camera platform interface types; Added unit tests for file\_selector public API; Added unit tests for file\_selector\_web utility functions; Added unit tests for the Android camera platform implementation; Added unit tests for the iOS camera platform implementation; Added widget tests for animations package transitions; Initial test coverage for camera\_platform\_interface; video\_player example app regenerated with modern tooling and integration tests.
Dependencies
Gradle wrapper upgraded to version 9.3.1
The Android example app for the camera plugin now uses Gradle 9.3.1 for building, replacing the previous wrapper version. This ensures the example project is compatible with the latest Gradle distribution and build tooling requirements.
_packages/camera/camera\android/example/android/app/gradle · high confidence
Massive dependency and build system updates across 507 manifests
This release updates dependencies across 507 manifests, including major upgrades to the Android Gradle Plugin (AGP) and Gradle (e.g., AGP 7.0.0 to 8.9.1, Gradle 7.2.1 to 8.5.1), migration of Android repositories from jcenter to Maven Central, and updates to core libraries such as Guava, AndroidX annotations, and ExoPlayer. It also includes updates to Dart tooling dependencies like \analyzer\ and \build\_runner\, and migrates several plugins to use Pigeon for platform channel generation.
(dependencies) · high confidence
Updated Gradle wrapper to version 9.3.1
The Gradle wrapper configuration for the camera example app has been updated to use Gradle 9.3.1. This ensures the example project uses the latest wrapper distribution, which may include performance improvements and bug fixes from the Gradle release.
packages/camera/camera/example/android/app/gradle · high confidence
Upgrade Gradle wrapper to version 9.3.1
The Android example app for the camera plugin now uses Gradle 9.3.1 via the wrapper configuration. This ensures the build environment is aligned with the latest Gradle release, which may affect build performance and compatibility with newer Android Gradle Plugin versions.
_packages/camera/camera\android/example/android/gradle, packages/espresso/example/android/gradle · high confidence
vector\_graphics package initial import and SDK update
The \packages/vector\_graphics\ directory is introduced with the full source code for the vector graphics runtime, including the \VectorGraphic\ widget, \BytesLoader\ implementations, and rendering logic. The package now requires Flutter 3.41 and Dart 3.11, and includes fixes for deprecation lints.
_packages/vector\graphics · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 54 → 68 (+14.1)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 97 → 84 (-13.3)
- Architecture 96 → 97 (+1.0)
- Maturity 68 → 73 (+4.4)
- Readiness 47 → 65 (+17.2)
- Security 39 → 61 (+22.1)
- Domain Modelling 100 → 100 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (48)
- Boundary-crossing change coupling: adaptive_text_selection_toolbar.dart ↔ adaptive_text_selection_toolbar.dart (packages/cupertino_ui/lib/src/adaptive_text_selection_toolbar.dart)
- Change coupling: error_panel.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences_tool/lib/src/ui/error_panel.dart)
- Change coupling: pigeon.dart ↔ generator_tools.dart (packages/pigeon/lib/pigeon.dart)
- Change coupling: pre_publish.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences/tool/pre_publish.dart)
- Change coupling: shared_preferences_async.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences/lib/src/shared_preferences_async.dart)
- Change coupling: shared_preferences_legacy.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences/lib/src/shared_preferences_legacy.dart)
- Change coupling: shared_preferences_state_notifier.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences_tool/lib/src/shared_preferences_state_notifier.dart)
- Change coupling: shared_preferences_state_provider.dart ↔ shared_preferences_body.dart (packages/shared_preferences/shared_preferences_tool/lib/src/shared_preferences_state_provider.dart)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- FileTooLong: src/checkbox.dart (packages/material_ui/lib/src/checkbox.dart)
- High: security finding (details withheld)
- No exposed public API
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2
- Off-boarding risk: anonymized user #3
- Scanner failed to run — not a clean result
- Secret: gcp-api-key (example/android/app/google-services.json)
- Secret: gcp-api-key (packages/cloud_firestore/example/android/app/google-services.json)
- Secret: gcp-api-key (packages/cloud_functions/example/android/app/google-services.json)
- …and 28 more
New (2771)
- 2.onResult (cognitive 19) (packages/file_selector/file_selector_android/android/src/main/java/dev/flutter/packages/file_selector_android/FileSelectorApiImpl.java)
- AdvancedMarker.== (cognitive 16) (packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/types/advanced_marker.dart)
- AdvancedMarker.== (cyclomatic 17) (packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/types/advanced_marker.dart)
- AlertDialog.build (cognitive 35) (packages/material_ui/lib/src/dialog.dart)
- AlertDialog.build (cyclomatic 25) (packages/material_ui/lib/src/dialog.dart)
- AnalyzeCommand._runDartAnalysisForPackage (cognitive 39) (script/tool/lib/src/analyze_command.dart)
- AnalyzeCommand._runDartAnalysisForPackage (cyclomatic 25) (script/tool/lib/src/analyze_command.dart)
- AnalyzeCommand.runForPackage (cognitive 18) (script/tool/lib/src/analyze_command.dart)
- AndroidScopedStorageXFile.openRead (cognitive 16) (packages/cross_file/cross_file_android/lib/src/android_scoped_storage_cross_file.dart)
- AppBarThemeData.== (cognitive 19) (packages/material_ui/lib/src/app_bar_theme.dart)
- AppBarThemeData.== (cyclomatic 20) (packages/material_ui/lib/src/app_bar_theme.dart)
- BenchmarkServer.run (cognitive 64) (packages/web_benchmarks/lib/src/runner.dart)
- BenchmarkServer.run (cyclomatic 30) (packages/web_benchmarks/lib/src/runner.dart)
- BitmapDescriptor.fromJson (cognitive 29) (packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/types/bitmap.dart)
- BitmapDescriptor.fromJson (cyclomatic 27) (packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/types/bitmap.dart)
- BlinkTraceSummary.fromJson (cognitive 16) (packages/web_benchmarks/lib/src/browser.dart)
- BottomNavigationBarThemeData.== (cognitive 16) (packages/material_ui/lib/src/bottom_navigation_bar_theme.dart)
- BottomNavigationBarThemeData.== (cyclomatic 17) (packages/material_ui/lib/src/bottom_navigation_bar_theme.dart)
- BottomSheetThemeData.== (cyclomatic 16) (packages/material_ui/lib/src/bottom_sheet_theme.dart)
- BuildExamplesCommand.runForPackage (cognitive 27) (script/tool/lib/src/build_examples_command.dart)
- …and 2751 more
Changes since last survey
- 231 commits — 199 feature/other, 32 fixes
By area
- packages/material_ui — 73 commits
- .ci/flutter_master.version — 24 commits
- packages/cupertino_ui — 24 commits
- packages/camera — 16 commits
- packages/google_maps_flutter — 12 commits
- script/tool — 8 commits
- packages/cross_file — 7 commits
- packages/go_router — 7 commits
- packages/pigeon — 7 commits
- packages/in_app_purchase — 6 commits
- (root) — 5 commits
- packages/go_router_builder — 5 commits
- packages/image_picker — 5 commits
- .ci/flutter_stable.version — 4 commits
- packages/google_sign_in — 4 commits
- packages/video_player — 3 commits
- .github/labeler.yml — 2 commits
- packages/file_selector — 2 commits
- packages/local_auth — 2 commits
- packages/quick_actions — 2 commits
Notable commits
- fix: Fix RangeSlider thumb overlay remains visible after touch interaction ends (#12560)
- fix: Fix chrome 145 web tests (#12486)
- fix: Revert "Manual roll Flutter from 27fec0e365a3 to 8737f11506e7 (9 revisions)" (#12899)
- fix: Revert "[go_router_builder] Migrate to material_ui" (#12962)
- fix: [camera]fix test flake due to expectation fulfilled before flag is toggled (#12400)
- fix: [camera_android_camerax] Fix leaked thread per capture in takePicture (#12361)
- fix: [camera_web] Fix TypeError when reading the torch capability (#12647)
- fix: [cross_file] fixed readAsString decoding in-memory bytes as UTF-16 (#12479)
- fix: [cupertino_ui, material_ui] Fix bad doc references (#12381)
- fix: [cupertino_ui] Fix covered sheet revealing root route through top gap (#12530)
- fix: [cupertino_ui] Fix platform view sheet transitions (#12565)
- fix: [cupertino_ui] Work around dart2wasm optional parameter inference bug in checkbox_test.dart (#12956)
- fix: [cupertino_ui] Work around dart2wasm optional parameter inference bug in example checkbox tests (#12961)
- fix: [cupertino_ui] fix CupertinoIcons font not being included in examples and fix TextEditingController leaks (#12228)
- fix: [go_router] Clarify onEnter/redirect ordering, add regression test (#12337)
- fix: [go_router] Fix ShellRoute chrome dropped from semantics tree by ModalBarrier (#12353)
- fix: [go_router_builder] Fixes text golden test to ignore platform specific newline (#12652)
- fix: [google_maps_flutter_platform_interface] Fix PinConfig code sample (#12259)
- fix: [image_picker] Fix android-16 not picking up file (#11320)
- fix: [material_ui, cupertino_ui, go_router] Command to test dart fixes (#12390)
- …and 211 more
Architecture
- Containers 0 added · 0 removed · contexts 10 added · 1 removed · edges 4 added · 0 removed
Added bounded contexts (10)
- alternate_language_test_plugin
- app
- camera_android
- camera_android_camerax
- espresso
- google_maps_flutter_android
- image_picker_android
- in_app_purchase
- video_player_android
- webview_flutter
Removed bounded contexts (1)
- .
Added dependency edges (4)
- app → webview_flutter (coupling)
- camera_android → camera_android_camerax
- image_picker_android → webview_flutter
- video_player_android → webview_flutter
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
flutter/packages was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8bfc0c2701373d37568ca200bcc138bf4a40237e — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.