A few people have asked about the app creation process so I decided to write a couple posts. This is post one of two. Part one covers the background info and part two covers the core features and results. You can read part 2 here >
The core group of guys I play with wanted a GPS app to use while practicing on the range. We wanted an app like this and I wanted to create it. Like a lot of golfers, I use a GPS app to provide accurate distances and keep my stats on the course. But these apps don’t allow you to get distances on the driving range, just golf courses that have been mapped. Also, driving ranges typically mark their distances to one spot, forcing you to guess the actual yardage to the targets. To get accurate distances on the range, you’d need to pay a couple hundred dollars for a laser rangefinder, but if you’re not going to use that on the course, what is the point.
Ranger was created with a single goal: to be the definitive GPS app for the driving range.
Ranger has been a really fun side project. I don’t consider myself a developer. I’m an interactive product guy that can dig in and code to get things done. I like the challenge. With Ranger, I could’ve simply created the app and used ad-hoc distribution to shoot it to a few friends, but once I decided to invest time in the app, I wanted to go all in. I wanted to build this app as if it was my primary job and I was going to build a business on the back of this app. This post is about the process of building and launching Ranger Golf GPS for iOS.
The name and logo ended up being the easiest part of this process. I wanted to come up with a one-word name for the app (why go against conventional wisdom) and it only took a few minutes of brainstorming to decide ‘Ranger’ was the name. The play on both “driving range” and “range finder” was almost too obvious. I was surprised to find that there wasn’t a driving range (or GPS app) with that name already. There are a few other aps in the App Store that combine Ranger and GPS, including a set of Park Ranger apps, but I felt like the name was solid and went with it. Ranger.com was taken, but I snatched up rangerapp.com and eventually getranger.com, which became the final site URL.
I had two versions of the logo. The first was a mixture of an “R” and a target symbol, using the target as the round part of the “R.” But that didn’t look great and I moved on to the second and final option, combining a flagstick flag and an “r.” I sent it to a couple people who instantly liked it and I was done. The logo is at the top of this post.
The decision build Ranger for iOS over Android was an easy one. I’ll admit I’m a fanboy and the core group of guys I was building this for are all fanboys, too. But that aside, I likely would’ve chosen iOS anyway. Many large-scale app startups start with iOS. It is widely recognized that the iOS platform provides a more consistent experience and makes it easier to get the first app out the door. I’ve already had requests for an Android version – which I’d like to build – but I’m not sure I can really create and support the app across two platforms doing this as a side project (hobby).
My goal with Ranger was to create an app that was really good at one specific thing, instead of tying to be just OK at multiple things. With that in mind, I wanted to keep the interface very clean, simple and uncluttered. I also wanted the app to have a flat look, without a lot of textures or gradients.
The typography needed to look good in all caps, and I wanted it to have a condensed feel. Any icons created would be flat and simple, adding to the overall look.
I didn’t want to have a traditional tab bar because the core functionality would be contained on basically one view and I wanted to maximize the viewable area. With mapping and yardage being the primary elements on the main view controller, I tried to keep the nav bar as thin as possible while still providing easy-to-tap buttons.
The grey color was easy and I need to give my wife Andrea credit for the gold color. She said “… why not use one of the colors of a traditional tee marker, like gold.” I was sold.
The flat, simple design turned out to be a good idea. Apple’s new iOS7 UI is flat and Ranger will only require a few subtle tweaks to comply with the new guidelines and still support iOS6, which I will do for at least the next update or two.
Ranger is a free app and always will be. But, it didn’t start that way. Originally, I had planned to charge for the app. I didn’t plan on really marketing this app or trying to get wide-scale adoption, so I thought, why not charge $3.99 and if I sell 100 of them, great! But as I got further into the development process, I started to become interested in getting Ranger in the hands of as many people as I could, and going free was the only way to make that happen.
That said, I never gave up on the idea of making some money – even just enough to cover hosting – and decided to integrate iAd and in the future, an in-app purchase to remove those ads. I went with iAd because the integration was relatively straightforward. I looked into different ad platforms and the idea of having fallback ads when iAd doesn’t serve an impression (basically anywhere outside of the USA, UK, Spain, Australia and few other major countries), but that process would’ve added a significant amount of additional development and QA with a limited payoff.
Once I added iAd into the mix, it instantly added a few additional nights of development and conditional statements to the process. iAd requires that you not serve a blank ad impression. That means that I have to ensure there is an ad impression and show the ad, but be prepared to remove the ad if a future ad doesn’t fill. I need to be prepared to monitor the serving of ads even while on other view controllers and show/hide the ad appropriately. Failure to do this will almost certainly result in the app failing the review process. The code to do all this isn’t complicated, but testing each and every possibility was time consuming and made me wonder if I really needed to integrate ads to being with!
In a future update I’m going to offer an in-app purchase to remove the ads. The ad unit itself is only on the main GPS screen and is at the bottom. It really doesn’t interfere with the design or use of the app, but in-app purchases are where the app store $ are flowing and removing the ads will be the first in-app purchase Ranger will offer.
This question required a lot of research and a pro/con list. When I started the development, Google had not officially released their SDK. Apple Maps was the only option, and MapKit wasn’t getting a lot of love. Because it was the native option, I could drop an MKMapKit onto the viewcontroller, wire it up, and I was good to go. I could focus on the more challenging tasks. However, Apple Maps, to be quite honest, doesn’t provide the level of clarity of Google Maps.
Midway through the development Google released their SDK and I was intrigued. I setup a couple of test apps and I liked what I saw. The clarity of the satellite imagery was much crisper, and since Ranger relies on being able to see the targets, that is very important. GMaps also allows the user to rotate the map with two fingers. That becomes very important when the targets happen to be heading any direction other than north. People like to view their map (and targets) the same way they are looking, which is straight ahead.
Apple Maps fell short in both of these critical areas. That said, those areas are “nice to have.” One of the requirements of Ranger is that a user could drag the target to any other location to find the distance. GMaps did not (and still doesn’t as of this post) allow users to drag a marker. As much as I wanted to use Google and have those beautiful maps and user interaction options, I had to go back to Apple.
I considered leveraging the Heading data point from Location Services, and rotating the map to match the heading. It is doable, but again, a nice to have feature. And with iOS7, I believe the rotation option will be included.
To date, Apple Maps has performed well. There are certain cases where the fidelity of the maps causes an issue, like with water-based driving ranges, but I can’t control (or test) for all those conditions. We’ll see what happens with iOS7.
The last piece of development that needed to be done to create a solid app and support infrastructure, was a responsive website – http://getranger.com. Like I did for this site, I leveraged Zurb Foundation for the responsive framework. To go with the design of the app, I wanted to leverage a big visual, clean and simple design, and the fonts and colors from the app. The site is simple, but has the opportunity to grow.
In addition to the site, Ranger needed a Twitter account – @RangerGPS. As of right now, the account has posted mostly status updates about the process and a few golf-specific posts. I’m also using it to post screenshots of Ranger showing the distance to specific pins at major PGA Tour and European Tour events. Ranger isn’t the first to do this, but it is a fun way to promote the core feature of the product and provides a great reason to tweet on behalf of the app.
I'm the Vice President of Digital Innovation and Mobile, which is probably the coolest job title out there. You can learn more about my work in emerging technology on the About or Work Pages.
As for this site, it's a place where I can jot ideas down and share some of the stuff I'm working on. The views are my own and some of them might not make much sense, but hey, that's part of the process. I'm also working toward being a single digit handicap golfer, so I post a lot about my golf game.