How I Built a Viral iOS App from Scratch
From idea to 45K users: the technical journey of building Smashspeed.
The Spark
It started at my local gym. I was watching tennis players through the glass wall, and noticed something that bothered me: they had access to all kinds of professional analytics tools—radar guns, swing analyzers, ball-tracking systems. Meanwhile, badminton players had almost nothing.
This gap felt unfair. Badminton is one of the fastest racquet sports in the world, with smash speeds regularly exceeding 300 km/h at the professional level. Yet measuring this critical metric required expensive radar equipment that most players couldn't afford.
What if I could build something that used just a smartphone camera?
The Technical Challenge
Detecting a shuttlecock in video is surprisingly hard. Unlike a tennis ball or basketball, a shuttlecock is small, moves incredibly fast, and can blur into near-invisibility in standard 60fps footage.
I needed to solve several problems:
- Detection: Train a model to find the shuttlecock in each frame
- Tracking: Connect detections across frames to form trajectories
- Speed calculation: Convert pixel movement to real-world speed
- Mobile deployment: Make it run fast enough on a phone
Building the Dataset
There were no public datasets for shuttlecock detection. I had to build my own from scratch—scraping match footage, filming at local clubs, and manually annotating over 15,000 images.
This was tedious work, but it taught me an important lesson: in machine learning, data quality matters more than model architecture. Every hour spent on careful annotation paid off in model performance.
The Model
I chose YOLOv5s for its balance of speed and accuracy. The "s" (small) variant was crucial—it needed to run in real-time on mobile without draining the battery.
Training happened on NVIDIA A100 GPUs via Google Cloud. After extensive hyperparameter tuning, I achieved 93% detection accuracy on the test set.
But detection alone wasn't enough. Frame-by-frame predictions were noisy, with occasional missed detections creating gaps in the trajectory. I added a Kalman filter to smooth predictions and fill in missing detections—a classic technique that proved essential for reliable speed calculations.
Going Viral
I launched Smashspeed on the App Store, and honestly, I couldn't have done it alone. I'm incredibly grateful to my friends who helped spread the word—they jumped in to help with marketing, creating content, and getting the app in front of the badminton community. Their support turned what could have been a quiet launch into something much bigger.
A huge turning point came when we partnered with Badmintonfamly on Instagram—my childhood badminton idol. Seeing them use and promote Smashspeed was surreal. They helped introduce the app to their massive audience, and from there, other badminton influencers started picking it up too. The community effect was incredible.
Within weeks, the app hit #1 in Taiwan's Sports category. Videos of players testing their smash speeds went viral, accumulating over 5 million views. Users were sending me recordings from tournaments, casual games, and training sessions around the world.
Then came the moment I never expected: Viktor Axelsen—Olympic gold medalist and World Champion—noticed the app on TikTok after one of our viral posts and requested an Android version. That was the push I needed. I quickly recruited friends to help build out the Android version for a rapid release. What started as a solo iOS project suddenly became a cross-platform team effort.
Today, over 45,000 people have used Smashspeed to measure their smash speeds. What started as a side project became something that genuinely helps players improve—and I owe so much of that success to the people who believed in it and helped along the way.
Lessons Learned
1. Solve your own problems. I built Smashspeed because I wanted it to exist. That authenticity showed in the product.
2. Don't underestimate classical techniques. The Kalman filter, developed in the 1960s, was just as important as the neural network.
3. Ship early. The first version was rough, but real user feedback taught me more than months of solo development would have.
4. Technology should disappear. Users don't care about YOLOv5 or Kalman filters. They care about getting an accurate speed reading quickly and easily.
What's Next
I'm continuing to improve Smashspeed—expanding the training dataset, exploring newer architectures, and adding features users have requested. I'm also working on related projects that apply similar techniques to other sports.
If you're interested in the technical details, I've published my research on arXiv, and the app is available on the App Store and Google Play.