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:
- Generate movement sequences using AI video tools.
- Build a custom web script to strip backgrounds.
- 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:
- WebP over APNG: Switched all assets to WebP, slashing the size to 300MB.
- 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.
- 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)