flutter-caching-data

Installation
Summary

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
SKILL.md

Implementing Flutter Caching and Offline-First Architectures

Contents

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.
Related skills
Installs
8.7K
Repository
flutter/skills
GitHub Stars
1.9K
First Seen
Mar 13, 2026