fifty_scroll_sequence 1.0.1
fifty_scroll_sequence: ^1.0.1 copied to clipboard
Scroll-driven image sequence animation for Flutter. Apple-style frame scrubbing mapped to scroll position.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.1 - 2026-03-04 #
Documentation #
- Rewrite README with selling-points-first structure and customization section
1.0.0 - 2026-02-27 #
Added #
- Pinned mode with
PinnedScrollSectionfor viewport-sticky scrubbing. SliverScrollSequenceforCustomScrollViewintegration.ScrollSequenceControllerfor programmatic jump-to-frame/progress, preloading, and cache management.NetworkFrameLoaderfor HTTP frame loading with disk caching (dart:io HttpClient).SpriteSheetLoaderwith multi-sheet grid extraction and lazy-loaded sheet caching.- Three
PreloadStrategyimplementations: eager, chunked (sliding window), progressive (keyframes first). SnapConfigwith three constructors: explicit points, everyNFrames, scenes.SnapControllerwith velocity-based momentum detection for fast snap triggering.- Lifecycle callbacks:
onEnter,onLeave,onEnterBack,onLeaveBackviaViewportObserverstate machine. - Horizontal scrolling via
scrollDirection: Axis.horizontalparameter. builderparameter for reactive overlay widgets.loadingBuilderwith normalized 0.0-1.0 progress reporting.- Strategy-driven cache sizing (eager keeps all frames resident).
- Direction-aware preloading for chunked and progressive strategies.
- Example app with 6 demos: basic, pinned, multi-sequence, snap, lifecycle, horizontal.
Changed #
- Ticker-based frame interpolation with configurable
lerpFactorandcurve. - LRU cache uses deduplication via in-flight load tracking (Set + Completer).
- Snap controller uses raw progress (not lerped) to prevent overshoot.
- Non-pinned mode uses ScrollPosition listener instead of NotificationListener.
Fixed #
- Eager strategy cache eviction when frameCount > maxCacheSize.
- Snap overshoot caused by lerp lag in progress delta calculation.
- Non-pinned mode frame updates (NotificationListener architecture bug).
- Frame centering in pinned mode via Center wrapper.
0.1.0 - 2026-02-25 #
Added #
ScrollSequencewidget for scroll-driven image sequence animation.FrameControllerfor progress-to-frame-index mapping withChangeNotifier.FrameCacheManagerwith LRU eviction and properui.Imagedisposal.AssetFrameLoaderfor loading frames from Flutter asset bundles.FramePathResolverfor{index}pattern-based path resolution.FrameDisplaywidget with gapless playback via nearest-frame fallback.ScrollProgressTrackerfor viewport-relative scroll progress calculation.FrameInfoandScrollSequenceConfigimmutable data models.
