High-Performance Short Video / Reels Application
60 FPS TikTok/Reels Style Vertical Video Social Experience
A high-throughput short-form video mobile platform delivering ultra-smooth vertical swipe feeds, intelligent video preloading and disk caching, asynchronous metadata ingestion, double-tap interactive reactions, and real-time comment threads.
Key Verified Outcomes & Results
Consumer short-video platforms live and die by playback latency. Buffering wheels, frame drops during fast swipes, and memory leaks from unreleased player controllers cause severe user abandonment (>40%).
Engineered an optimized video playback pipeline in Flutter utilizing native Android ExoPlayer / iOS AVPlayer hooks, a dual-layer LRU memory/disk cache, pre-fetching algorithms for adjacent videos (N+1, N+2), and a strict controller recycling pool to prevent memory leaks.
Clean Architecture + BLoC State Management + Video Controller Pool Pattern
Separates feed navigation from video decoding. A dedicated `VideoFeedBloc` coordinates playback states, while a `VideoPlayerPool` manages hardware decoders, preloads upcoming index buffers, and releases off-screen surfaces to guarantee 60fps scrolling.
1. Vertical PageView Swipe
User flicks upward; index changes from video [i] to [i+1].
2. Controller Pool Activation
Pre-buffered instance at [i+1] plays instantly with 0ms buffering.
3. Preload Ahead Worker
Asynchronously fetches initial media chunks for index [i+2] and [i+3].
4. Discard & Recycle
Controller at [i-2] is stripped of decoder hardware and reset into idle pool.
Core Engineering Features & Capabilities
Complex Engineering Challenges & Technical Solutions
Challenge #1Out-of-Memory (OOM) Crashes on Budget Android Devices
Initializing a new VideoPlayerController per feed card quickly exhausted hardware media decoder limits on budget phones (max 4-6 decoders).
Built a strict 3-slot Controller Pool (Previous, Current, Next). Cards further away render high-res thumbnail covers only, and controllers are reassigned dynamically as the user scrolls.
Challenge #2Cold-Start Playback Latency
Waiting for HTTP metadata handshakes caused a 400-800ms black flash when switching videos.
Implemented a custom CacheManager that pre-fetches the initial 1.5MB of upcoming videos into local storage, enabling instantaneous playback onset.
Complete Technology & Tooling Stack
Key Architectural Takeaways
- Hardware video decoders must be treated as scarce finite resources on mobile operating systems.
- Optimistic UI rendering combined with intelligent preloading makes cross-platform Flutter feel faster than unoptimized native code.