The Idea

I was hanging out with my friend Grant (also a transportation biker) and we were talking about how annoying it was that the cycling tracker Strava had to be manually started and stopped. We loved the idea of timing our commute, but could never remember to pull out our phones every time we left work. We also found battery consumption to be a major barrier to everyday use.

The idea came when I realized that I could use geofences to automatically start the GPS. I could then record the user's ride until they stopped moving and upload it to a server. Just like Strava, except without the pesky start and stop requirement.

Going in to the project I never felt that this would be a blockbuster product, but I did feel there was potential for sustainable revenue. I could sell access to the data my software would collect. Unfortunately I decided to build Ryde first and then research the value of that data later...

Step 1: Automatic Start and Stop

I had never worked with the geofencing API before so I read a bunch of documentation. Eventually I started to implement the basic functionality of the app.

Here's how the first version worked: let's say the rider gets home from her commute. Her phone records her location and drops a geofence around her. If she leaves the radius of the geofence Ryde is launched in the background and flips on the GPS. If the rider stays stationary for long enough Ryde turns off the GPS and sets another geofence around her.

This plan worked pretty well. The app started in the background, recorded stuff, and even flipped off the GPS when the ride had ended. It also took 4 months and hundreds of test rides to fully sort it out. Debugging a suspended app in iOS is ridiculously difficult.

At this point I started using the app myself. I liked it. w00t

Step 2: Social

I wanted the rider's data in order to build a business. But I needed to give users a reason to want to share it with me. (I'm just being honest)

So I decided to gamify the app. Users would give their rides a start and end point like "home", "work", or "grocery store". This would allow a rider to compare their similar rides to each other. Riders could compete against their own times, share rides with friends, or just clock how many miles they had biked.

I used Parse for my backend (because it's a magical unicorn from internet land) and I was up and running in a day or so.

The trickiest part was packaging all of that location data into a file and saving it up on the server. Hack, hack, hack and a few days later it's all working.

At this point I added some friends and my wife on Testflight. Yay! I had a few users. For about a week. Then they all uninstalled the app because of battery consumption.