Case 03 — EdTech / Mobile

How we rescued a half-built feature from a previous vendor — and shipped Offline Viewing on Android and iOS.

Wesay's previous agency left Offline Viewing 60% done on Android and 0% on iOS. Users were already asking for it. The codebase was a mess. Budget was tight.

Week-by-week timeline

Week 1

Codebase audit — worse than expected

3 deprecated libraries (including ButterKnife), broken view injection, and conflicting offline cache logic. We documented every issue and gave the client an honest timeline: 6 weeks, not 3.

Week 2–3

Android — stripped and rebuilt the offline layer

Removed all deprecated dependencies, rebuilt the download manager, and fixed the 4 documented user-facing bugs. Added a progress indicator and resumable downloads as scope was clear.

Week 4–5

iOS — built from scratch

No existing code to inherit. Used AVFoundation for video caching with full playback in airplane mode. Built in parallel with Android QA.

Week 6

Both platforms shipped, clean builds

Store-ready builds delivered on both Android and iOS. Feature parity achieved. Zero regressions in any previously working functionality.

Key technical decisions

🗑️

Stripped ButterKnife entirely instead of migrating it

ButterKnife was deprecated in 2020. Migrating it would have taken as long as replacing it with ViewBinding — and left technical debt. We removed it completely and updated all view references in one pass.

📱

Chose AVFoundation over a cross-platform caching lib on iOS

Cross-platform video caching libraries all had limitations around DRM content. AVFoundation gave us full control, better performance, and first-party Apple support. The extra effort was worth it.

What almost went wrong

⚠️

Offline playback silently failed on low-storage devices

Our QA caught this 2 days before final delivery — cached videos weren't being validated for storage availability before download. A silent failure. We added pre-download storage checks and a user-friendly error state. Caught in QA, not in production.

Result

Platforms shipped

Android + iOS

Delivered in

6 weeks

Regressions

Zero

Bugs fixed

7 inherited

“They responded dutifully to our needs.”
— Jose Luis Gutierrez, CTO · Wesay

Want us to do this for your product?

Book a free 20-minute call. We'll scope your project, recommend the right team composition, and give you a realistic timeline — no pitch, no pressure.

Book a Free Call →