Having your app featured by Apple is quite the experience: the only clue you get at first is a spike in traffic (and maybe a couple texts from friends)- then you buckle down.

Here’s an abbreviated version of our slack after we saw that we were featured:

Adam Oxner [3:50 PM]: Why do we have so many users on right now? Did someone send a push?

Fabric active users featured

Fares Ksebati [3:52 PM]: no

Michael Allon [3:55 PM]: woah, wut

Adam Oxner [3:55 PM]: I looked on Twitter, no hints

Adam Oxner [4:01 PM]: Wtf is going on

Michael Allon [4:01 PM]: we’re featured!

Adam Oxner [4:02 PM]: lol 😑

Michael Allon [4:03 PM]: not joking

Adam Oxner [4:03 PM]: !!!!!

Adam Oxner [4:03 PM]: **bikes to computer as fast as possible**

I biked home as soon as I found out to try and contain the damage… but we were lucky: there was hardly any. We were smack dab on the front page of the US App Store. In 24 hours, MySwimPro got over 28 million impressions! That means our app icon was on someone’s screen that many times- crazy! Our installs didn’t quite hit 28 million (lol), but we did learn a few things from a surprise 60x boost in downloads.

Home page of the US App Store.
Home page of the US App Store.

Backend Scalability

With so many more downloads, the backend was going to take a hit from increase in requests for workouts, profiles being created, and everything else our app does. We have yet to migrate our data from Parse (R.I.P. ⚰), which actually turned out to be a good thing in this case (I think): Parse handled all the scaling automagically. If we had migrated our servers to a self-managed system already, we could’ve been in a lot more trouble.

dailyactiveathletes-myswimpro-featured-apple-growth

Another thing keeping our backend stable was hitting it only when necessary. By writing our queries efficiently and putting together our API intelligently (shoutout to Michael), we were able to keep our hits well below the “free” tier on Parse and avoid any other backend performance issues the traffic may have raised.

Related: 5 Things I’m Excited About From WWDC

Application Stability

No client-side code is without its bugs, either. We had luckily just put out a fix for a big crasher a few days prior to the featuring (phew), but having so many more users really exposed a lot of bugs. A couple new crashers showed up on our crashlog (we use Crashlytics), helping us to identify rarer bugs for future fixes! We hadn’t been seeing library crashes (crashes from within UIKit or other libraries that are typically not the developer’s fault) previously, but those started showing up, too. We hovered at around 99.7% crash-free sessions.

To Release, or not to Release…

To make things more interesting, that same morning we were featured, I had also submitted a new release for review on iTunes Connect and it had gone into review right after the feature started. The release had some bug fixes in it, but also contained a new feature: HealthKit integration (🎉). Since a new feature typically means new bugs, I was understandably worried about releasing it while MySwimPro was on the front page of the App Store…

I slept on it (wasn’t keen on releasing right before bedtime), reviewed the code a dozen or so times (luckily not too many changes were made), and QA tested everything for about an hour. Things were looking good and my team trusted my judgement, so I gave it the green light and crossed my fingers! Despite an instant thought of regret, things turned out just fine: bugs were squashed and even more people got to use the new HealthKit integration!

Athlete Support

With so many new athletes on board – probably many of whom are not even swimmers – we were bound to get hit with a ton of support requests. It turned out that dealing the requests was actually fun, and they often contained words of encouragement! It really is great hearing from athletes around the world. Even when we were working through bugs, other athletes were usually happy to help us by providing us with debug data. It’s truly awesome to be a part of the amazing swimming community.

“Thank you so much for creating an app actually geared toward tracking swim workouts!” – Alanya

“Did my first workout this morning… It felt awesome!! I’d been thinking about getting back in the pool and MySwimPro gave me the extra nudge to get back at it with a good workout. Thanks for the great workout and app!” – Joe

“I absolutely love the app! Didn’t know I wanted and needed it until I happened to find it!” – Erik

Fares shows off our feature in front of the Apple Store on Fifth Avenue.
Fares shows off our feature in front of the Apple Store on Fifth Avenue.

Conclusion

Being featured by Apple is a real treat. Technically, things get crazy, fast. Emotionally, my adrenaline was through the roof – it felt like just before the big race. If you have a good team (like Michael and Fares) and manage to keep your head on straight, things should go fine. Don’t think I still haven’t been checking our numbers and stability percentage every couple of hours, though…

At minimum, be sure:

  1. The servers can scale- preferably automatically.
  2. You have a crash reporting tool so you can see when things are going south.
  3. Users can easily contact you for support requests, so you can get reports from the front lines and fix them on the fly.

Interested in learning more? Shoot me an email at adam@myswimpro.com.

Leave a Reply

Your email address will not be published. Required fields are marked *