How flutter/packages works
This repository hosts Flutter first-party packages; the supplied tree shows native platform implementations for camera, maps, file selection, cross-platform file access, webview, and ads. The typical workflow is a Flutter app request crossing a platform API bridge, invoking a native plugin or SDK, then returning results or events. The graph emphasizes these runtime product areas and omits package delivery infrastructure. Some links reflect explicit API behavior in the excerpts; broader package capabilities are represented by tree paths where implementation excerpts were not provided.
Main entry points: Messages.java Flutter platform bridge · google_maps_flutter Maps API · webview_flutter Webview APIs · camera Camera API
Components 23
Camera capture
- Camera API
packages/camera - Android camera
packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java - CameraX adapter
packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java - AVFoundation camera
packages/camera/camera_avfoundation/darwin/camera_avfoundation/Sources/camera_avfoundation/CameraPlugin.swift - Windows camera
packages/camera/camera_windows/windows/camera_plugin.cpp - Preview handler
packages/camera/camera_windows/windows/preview_handler.cpp - Capture listener
packages/camera/camera_windows/windows/capture_engine_listener.cpp - Capture engine
- Camera permissions
Maps
- Maps API
packages/google_maps_flutter - Android map controller
packages/google_maps_flutter/google_maps_flutter_android/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java - iOS map controller
- Google Maps SDK
File access
- File selector API
packages/file_selector - Native file dialogs
packages/file_selector/file_selector_windows/windows/file_dialog_controller.h - Cross-file access
packages/cross_file - Platform file APIs
packages/cross_file/cross_file_android/android/src/main/kotlin/dev/flutter/packages/crossfileandroid/proxies/ContentResolverProxyApi.kt
Web and ads
- Webview APIs
packages/webview_flutter - Web storage
packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebStorageProxyApi.java - Web content control
packages/webview_flutter/webview_flutter_wkwebview/darwin/webview_flutter_wkwebview/Sources/webview_flutter_wkwebview/UserContentControllerProxyAPIDelegate.swift - Interactive media ads
packages/interactive_media_ads/ios/interactive_media_ads/Sources/interactive_media_ads/AdsManagerProxyAPIDelegate.swift
Platform bridges
- Flutter platform bridge
packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/Messages.java
Other components
- Flutter app
Connections 23
- Flutter app → Camera API: requests capture
- Camera API → Flutter platform bridge: uses platform API
- Flutter platform bridge → Android camera: dispatches calls
- Flutter platform bridge → CameraX adapter: dispatches calls
- Flutter platform bridge → AVFoundation camera: dispatches calls
- Flutter platform bridge → Windows camera: dispatches calls
- AVFoundation camera → Camera permissions: requests access
- Windows camera → Preview handler: starts preview
- Preview handler → Capture engine: starts preview
- Capture engine → Capture listener: delivers samples
- Flutter app → Maps API: requests map
- Maps API → Android map controller: dispatches calls
- Maps API → iOS map controller: dispatches calls
- Android map controller → Google Maps SDK: controls map
- iOS map controller → Google Maps SDK: controls map
- Flutter app → File selector API: selects files
- File selector API → Native file dialogs: opens dialog
- Flutter app → Cross-file access: accesses file
- Cross-file access → Platform file APIs: uses platform API
- Flutter app → Webview APIs: controls webview
- Webview APIs → Web storage: calls storage API
- Webview APIs → Web content control: manages scripts
- Flutter app → Interactive media ads: controls ads