vunet_flutter_plugin_cached_network_image 0.0.1 copy "vunet_flutter_plugin_cached_network_image: ^0.0.1" to clipboard
vunet_flutter_plugin_cached_network_image: ^0.0.1 copied to clipboard

cached_network_image instrumentation for vuTelemetry Flutter RUM.

vunet_flutter_plugin_cached_network_image #

cached_network_image / flutter_cache_manager instrumentation for vuTelemetry Flutter.

Emits Android-parity image.load spans (image.source = memory | disk_cache | network) with optional child HTTP GETs on the network path. Shared image recorder APIs live on package:vunet_flutter_plugin/image_instrumentation.dart.

Setup #

  1. Initialize the core SDK with VuTelemetry.initialize.
  2. Add this package alongside vunet_flutter_plugin and cached_network_image.
  3. Opt in via cache manager injection or drop-in providers/widgets:
import 'package:cached_network_image/cached_network_image.dart';
import 'package:vunet_flutter_plugin_cached_network_image/vunet_flutter_plugin_cached_network_image.dart';

// Lowest friction — keep existing CachedNetworkImage call sites
CachedNetworkImage(
  imageUrl: url,
  cacheManager: VuInstrumentedCacheManager.instance,
);

// Or swap the widget / provider
VuCachedNetworkImage(imageUrl: url);
Image(image: VuCachedNetworkImageProvider(url));

Stock CachedNetworkImage / CachedNetworkImageProvider without the instrumented cache manager (or provider) produce no image.load spans. Flutter ImageCache memory hits are only recorded when using [VuCachedNetworkImageProvider] / [VuCachedNetworkImage]. Re-resolving an already-decoded image (Flutter Image.didChangeDependencies, including MediaQuery changes such as the soft keyboard) emits another source=memory span with no decode work.

License #

VuNet Systems Ltd. proprietary and confidential (LicenseRef-VuNet-Proprietary). See LICENSE.