Before and afterRe-contract the integration
Resolve each dimension explicitly. “It compiled” does not prove identity, lifecycle, failure, privacy, or operational compatibility.
DimensionLegacy exposureCandidate targetRequired proof
Release graphThe Dart package and native dependencies can drift independently across old project files.
Lock Flutter/Dart, plugin, Android/iOS SDK, build tools, architecture, and signing as one release decision.
Clean dependency graphs, Android bundle, iOS archive, physical-device launch, and rollback artifact.
Platform view lifecycleControllers, streams, and callbacks may survive rebuilds or disposal.
Own one controller generation, reject late callbacks, and detach streams deterministically.
Hot/cold launch, navigation, rebuild, rotation, background, memory pressure, process death, restoration, and disposal tests.
Behavior parityMap, camera, annotation, gesture, and API-kit behavior can differ by native platform.
Normalize only application-owned behavior and accept Android and iOS independently.
A shared fixture corpus plus platform-specific visual, accessibility, interaction, error, and performance evidence.