Instructions for recording the GIF demos used in package READMEs.
- Device: iPhone 14 or Pixel 7 simulator (375×812 logical pixels)
- Duration per GIF: 6–10 seconds
- Frame rate: 30fps
- Tool: macOS QuickTime Player screen recording, then convert to GIF with
ffmpegor Gifox
Package: flutter_debounce_throttle / dart_debounce_throttle
App: packages/flutter_debounce_throttle/example/ → Search tab
Script:
- Tap the search field
- Type "flutter" quickly, one letter at a time with ~150ms between keys
- Pause — watch the spinner appear and results load
- Highlight the stat cards: "Keystrokes: 7, API Calls: 1, Saved: 6" Total time: ~8s
Package: flutter_debounce_throttle
App: packages/flutter_debounce_throttle/example/ → Anti-Spam tab
Script:
- Tap "Pay $99" button 8 times rapidly (all within 1-2 seconds)
- Show stat cards: "Taps: 8, Payments: 1, Blocked: 7"
- Wait 2 seconds
- Tap once more — it fires again (Payments: 2) Total time: ~7s
Package: flutter_debounce_throttle
App: packages/flutter_debounce_throttle/example/ → Async Form tab
Script:
- Tap "Submit Form" — spinner appears, button disables
- Tap 3-4 more times while spinner is running (button stays disabled / grey)
- Submission completes — "Submitted!" appears
- Show "Attempts: 4, Submitted: 1, Blocked: 3" Total time: ~8s
Package: flutter_debounce_throttle
App: packages/flutter_debounce_throttle/example/ → Concurrency tab
Script:
- Type "d" → log shows "Request #1 started"
- Quickly type "da", "dar", "dart" — each replaces previous
- Wait — only "Request #4 completed ✓" appears (others were cancelled)
- Scroll log to show all entries Total time: ~8s
Package: flutter_debounce_throttle_riverpod
App: packages/flutter_debounce_throttle_riverpod/example/ → Search tab
Script:
- Type "flutter" quickly
- Stat cards show: "Keystrokes: 7, API Calls: 1, Saved: 6"
- Results appear after debounce fires Total time: ~7s
Package: flutter_debounce_throttle_riverpod
App: packages/flutter_debounce_throttle_riverpod/example/ → Auto-Dispose tab
Script:
- Type a few characters — log shows "Started debouncing..."
- Immediately tap "Reset Provider"
- Log shows "Provider reset — debounce CANCELLED" (red)
- Verify "API called" does NOT appear Total time: ~6s
Package: flutter_debounce_throttle_hooks
App: packages/flutter_debounce_throttle_hooks/example/ → Search tab
Script:
- Type "hooks" quickly
- Shows "Keystrokes: 5, API Calls: 1"
- Results appear Total time: ~6s
# Record .mov with QuickTime, then:
ffmpeg -i recording.mov -vf "fps=30,scale=390:-1:flags=lanczos" -c:v gif demo.gif
# Or use Gifox (macOS app) for best qualityPlace all GIFs in docs/images/ directory in the repo root. Then reference them in READMEs as:
