back
loading skill details...
Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or…
Local data caching and offline-first synchronization patterns for Flutter apps. Covers five caching strategies: shared_preferences for UI state, SQLite/Hive for structured data, file system for binary media, state restoration for navigation, and FlutterEngine pre-warming on Android Implements offline-first repositories using streams for reads (yield local, fetch remote, update cache) and dual write strategies (online-only vs. offline-first with background sync) Optimizes image caching with cached_network_image, custom ImageProvider implementations, and configurable ImageCache.maxByteSize Provides scroll and widget caching best practices, including scrollCacheExtent configuration and guidance on avoiding operator == overrides on parent widgets Includes two complete workflows: building an offline-first repository with synchronization flags and pre-warming the Android FlutterEngine for fast initialization Implementing Flutter Caching and Offline-First Architectures Contents Selecting a Caching Strategy Implementing Offline-First Data Synchronization Managing File System and SQLite Persistence Optimizing UI, Scroll, and Image Caching Caching the FlutterEngine (Android) Workflows Selecting a Caching Strategy Apply the appropriate caching mechanism based on the data lifecycle and size requirements. If storing small, non-critical UI states or preferences: Use shared_preferences. If storing large, structured datasets: Use on-device databases (SQLite via sqflite, Drift, Hive CE, or Isar). If storing binary data or large media: Use file system caching via path_provider. If retaining user session state (navigation, scroll positions): Implement Flutter's built-in state restoration to sync the Element tree with the engine. If optimizing Android initialization: Pre-warm and cache the FlutterEngine.
don't have the plugin yet? install it then click "run inline in claude" again.