flutter-caching-data
Installation
Summary
Local data caching and offline-first synchronization patterns for Flutter apps.
- Covers five caching strategies:
shared_preferencesfor 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, customImageProviderimplementations, and configurableImageCache.maxByteSize - Provides scroll and widget caching best practices, including
scrollCacheExtentconfiguration and guidance on avoidingoperator ==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
SKILL.md
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.