Ride is Live!

On September 3rd I launched Ride, an app which is designed for people who ride electric skateboards.

It is undoubtedly one of the most fun things I’ve ever created, and I think that is largely why the app has been well received by the community. Riding an electric skateboard is ridiculously fun, and it deserves a fun app to go with it.

Ride isn’t really the first of its kind. There’s two main parts to Ride, the part which tracks your ride, and the part which connects to a Boosted Board. Both of these have been done individually, but neither has been done fantastically or indeed in the same app.

Apps like Strava and RunKeeper can all essentially do the same thing, you can often just choose “bike” instead of running and they’ll adapt their tracking. But that’s still not designed for electric skateboards, and often shows you things like your average pace. I don’t really care what my pace is on an electric skateboard tbh.

That’s where Ride comes in. It is built with electric skateboards as the primary use case, so focuses on speed, battery level and distance rather than pace etc.

Small beginnings

The whole project started as something much simpler; just a speedometer on your Apple Watch so you can see how fast you’re going. Two months later, it blossomed into a gorgeous ride tracking app that has the added benefits of being able to warn you when your board is running low on juice, and even change ride mode and see how much range you have left.

Now that Ride is on the store, I can take my finger off the throttle a bit and start to plan the next major release. It’s a nice position to be in, working to your own schedule, with your own ideas and with support from an incredible community.

Boosted and I

Let’s address the elephant in the room. Ride does not use official APIs to connect to the board. I would never knowingly do anything to damage people’s boards, but I do have a small disclaimer when you first run the app stating how Boosted aren’t responsible for anything that happens if you use Ride.

Boosted haven’t reached out in either a positive or negative stance towards Ride. If they ever did, I only hope it would be positive and that they understand that I want to help them and the community. This is the sort of app a Boosted Board deserves, and I would be very happy to work with them to make some amazing shit, if they were interested!

Shut up and tell me how well Ride is doing

Okay fine. So today is 13 days since Ride launched (12 really as I launched quite late at night) and I’m happy to say that Ride has had almost 500 downloads. The first full day saw the biggest spike at 239 downloads and then it fluctuates as people talk about the app, but I guess averaging about 20 downloads a day after that.

Ride has an in-app “tip jar”, but in my haste to release for fear of Apple rejecting the app it has ended up quite hidden, so although there have been a few donations from very kind people, there haven’t been as many as I had hoped. There are 4 different options people can choose from to donate, ranging from £0.99 to £9.99. According to iTunes Connect, there have been $63 of sales, however iTunes Connect is currently sending me in a redirect loop when I try to break this down into which tier people have paid, so I can’t give you more information than that just yet. I’m hoping when I surface the tip jar a bit better, this number will be a bit healthier. I’m incredibly grateful for everyone who has donated, though!

I guess you’re wondering how that compares to MacID? Well, they’re actually similar in number of downloads per day, however MacID is a paid app, so I would say that MacID is doing better, even with all the macOS Core Bluetooth bugs.

Marketing

I have spent very little on any sort of marketing for Ride or MacID. I have ran a few ad campaigns on Twitter for MacID right at the start, but found I didn’t need to. As egotistical as it sounds, I didn’t really need to. I made stuff people want to use, and made it better than other people who made similar stuff. That’s really the key to a successful app.

Word of mouth is worth significantly more than any ad conversion, although the people who make Clash of Clans might disagree with me there. You can make the comparison yourself between a game like Clash of Clans versus one like Mini Metro or Monument Valley. I’ve never seen an ad for the latter, and yet I would say it’s more popular than the former.

So my advice to anyone who is launching an app: make a big deal about it, tell everyone, get as many people using and talking about it as you can by giving it away if it’s a paid app, and create a community around your app.

Give your app a personality and brand, make a Twitter account for it and use it, engage with your users, give them a voice and make them feel cared about.

Create stickers and get your friends to give them out. Email every single blog and give them promo codes. Make a YouTube video. Put it on Product Hunt.

Shout about your app, you worked hella hard to make it, you deserve to make a big deal about it!

Ride for watchOS and iOS – Now in Beta

Not too long ago I got my grubby hands on a Dual+ Boosted Board. I absolutely love it, so much so that even after having a medium-nasty accident I was back out on it two days later.

That said, there’s on glaring issue with it. The official Boosted Board companion app is lacking a bit in features. So I started thinking about what I would really want from a companion app (and asked some people on Reddit too).

The first thing I thought of that I thought would be fairly achievable quickly was a speedometer. To be able to see my current speed on my Apple Watch would be great, and after a quick investigation I realised that I could use the Workout APIs to keep the app on screen for as long as I want.

To get the speed from the watch, I can just use location tracking and do some averaging and filtering of the locations from the Core Location APIs. While working on it I thought: “hey, I’ve got these locations, why not keep hold of them and display them on a map?”. So then I started working on transferring the ride information to display on a map in the iOS app. This gave the iOS app some purpose, as well, which is great.

I started off with a shitty design on the phone, really just to get to grips with the MapKit framework on iOS. I still haven’t got everything worked out but I’ve got it pretty good now. If there’s a massive gap between locations, I show a dotted line. That was more challenging to implement than I imagined!

So at this point I’ve got a pretty decent app that anyone with an Apple Watch can use to track their rides. But I really wanted more. I wanted to be able to connect to the board with my app and display the battery level on the watch.

Luckily (or not so luckily), I have some experience with Core Bluetooth on iOS. I was quickly able to get a sample project set up to look at the characteristics that the board has, and then just figured out which one was the one for determining if the board was charging etc. After a little while I got the app reading the battery level, charge status and board mode from the board which is now displayed on iOS and watchOS, as well as in an iOS widget and a watchOS complication.

Better still, Ride doesn’t even need to be re-launched when the system kills it for memory, because it implements full background Bluetooth and restoration. So long as the app is in the App Switcher (a limitation put in place by Apple), the board can reconnect. This meant that I could then start adding things like notifications for when the board connects and disconnects, as well as custom triggers for “sufficient charge” and critical battery. This is super useful because while you’re in a coffee shop recharging, you might only want to get back up to say 80% charge so that you can carry on riding.

Since then I’ve been tweaking the location filtering and adding nice little features, like automatically ending a ride if the board disconnects. I found myself forgetting to end a ride when I got to work and wasted my watch battery, as well as skewing some of the ride data.

It’s been a fun project, and even if it never makes it on to the App Store for whatever reason I’ve gained knowledge and I’ve made an app I will use a lot. You can keep up to date with the project at @RideHelp on Twitter. (Seriously how was that Twitter handle available?)

Also, if you’re reading this, Boosted, and you want to work together let me know 😉

IMG_3468IMG_3510IMG_3473IMG_3491IMG_3509IMG_3508IMG_3478

IMG_3479
IMG_3480
IMG_3476