DEV Community

Cover image for Why My 500MB Pomodoro Timer Failed (And How It Led to a Better Shovel)
Louis Chen
Louis Chen

Posted on

Why My 500MB Pomodoro Timer Failed (And How It Led to a Better Shovel)

In the world of indie development, we often set out to build a house but end up inventing a better shovel just to dig the foundation.

My journey with PurrrrrFocus—a China-Chic (Guohua) inspired Pomodoro app—is a story of technical debt, a 500MB asset crisis, and how a "failed" build turned into a standalone macOS AI tool.

1. The Vision: Hand-Painted Souls on Rice Paper

I didn't want another "flat" productivity app. I wanted the soul of a traditional ink-wash (Guohua) cat stretching and napping while you worked.

The Technical Wall: How do you render high-fidelity, transparent animations with hand-painted textures on a mobile budget?

As a developer without an animation background, I started with a scrappy workflow:

  1. Generate movement sequences using AI video tools.
  2. Build a custom web script to strip backgrounds.
  3. Convert them to APNG (Animated PNG).

It worked... for one cat.

2. The Disaster: The 500MB Pomodoro Timer

When I expanded the roster to 8 cats, including a highly detailed Opera Cat with intricate silk textures and semi-transparent edges, the technical debt came due.

I hit "Build" in Xcode and my heart sank: The app size exceeded 500MB.

For a minimalist focus tool, this was a death sentence. I spent weeks in "Developer Paralysis," evaluating every alternative:

  • Lottie? Too expensive for a solo dev and struggled with heavy-texture brushwork.
  • Rive? Incredible, but the learning curve and export limitations for complex textures felt like a moving target.

3. The Pivot: Building the "Shovel" (TransMov)

Since no existing tool met my standards for transparency quality + privacy + cost, I stopped building the timer and started building the tool.

I migrated my clunky web script to a native macOS app: TransMov.
By leveraging the Apple Neural Engine, I created a workflow that could:

  • Remove backgrounds locally: No cloud costs, total privacy.
  • Multi-Format Export: Seamlessly convert video to APNG, WebP, and GIF.
  • Refine Frames: Essential for the shimmering silk details that make the "China-Chic" aesthetic pop.

The Lesson: When you build a wheel to climb a mountain, that wheel itself has value. TransMov eventually gained its own life (and subscribers) on the Mac App Store.

4. The Final Stretch: Optimizing for Performance

With assets managed by TransMov, I made three critical technical moves to save the app:

  1. WebP over APNG: Switched all assets to WebP, slashing the size to 300MB.
  2. On-Demand Resources (ODR): I kept only 2 default cats in the main bundle. The rest are downloaded only when the user unlocks them, keeping the initial download light.
  3. The Rendering Bottleneck: Early users on Product Hunt reported animation stutters. After weeks of aggressive caching trials, I realized my custom rendering path was the culprit.

The Fix: I swapped my custom logic for SDWebImage + SDWebImageWebPCoder. The result? The cats finally moved with the silky smoothness I’d envisioned on day one.

Closing Thoughts

Indie development is rarely a straight line. PurrrrrFocus isn't just a timer anymore; it's the result of an obsession with detail that birthed a whole different product (TransMov).

If you’re currently stuck on a "500MB crisis" of your own, remember: The tool you build to solve your problem might be just as important as the problem itself.


💡 Tech Stack used in this journey:

  • SwiftUI for the frontend
  • Apple Neural Engine for on-device AI background removal
  • SDWebImage for optimized WebP rendering
  • Apple On-Demand Resources for asset management

Check out the apps mentioned:

Top comments (0)