Every app begins with an idea. Some are good ideas and some are just flat out horrible. I’d like to take a moment to discuss not only my first iOS app but also one of the most successful.
2012 Software LLC
The first thing I’d like to discuss is the “Why”. Throughout the 2000’s I really enjoyed bowling. I bowled on 3 leagues a week and was part of a pretty large community of bowlers in the Orlando, Florida area at Boardwalk Bowl Entertainment Center. Our leagues and facility were the biggest(80 lanes) in the state which drew a large amount of serious bowlers. The center also housed the University of Central Florida’s bowling team, the UCF Striking Knights.
I wanted to improve my game
In 2007 I heard about a new type of phone which was touchscreen and ran multiple different types of apps. Now let’s be honest, at first I was highly skeptical since I was always the 1st adopter of various Windows CE phones with the good ol’ stylus woes… I wanted something more and this device seem to offer many of the things I was looking for in a good device. After seeing the device and immediately knowing I had to have this thing I picked up an early iPhone and grabbed the iPhone SDK in early 2008. I’ll be honest here, Objective C was horrible to me at first and the tools were very clunky to say the least. However, I was able to build to my device and see an app come to life so life was good.
What to build?
I thought to myself, what would be a good app to make for myself to get acquainted with the SDK and bowling immediately came to mind. I dove right in and created the 1st version of BowlSheet to track my personal games during practice and league. As with most first versions, it was horrific but it did actually work. The persistent file storage was nothing more than a CSV based file to store all games but hey, it got the job done although at the expense of keeping everything in memory to parse. Then I was asked the question “What’s that?”. I responded, “An app I wrote to store my bowling games.”. And then it hit me, why did all apps on the App Store have to be iFart or calculator apps? Why couldn’t we offer more helpful tools using this device? That’s when I decided I would release this app to the public and support multiple bowlers. I released the app on the App Store after months of battling back and forth with Apple on rejections and eventually did get approved as being the first bowling score app on the App Store that I knew of. The immediate feedback was better than I had assumed it would be so I kept improving the app and releasing updates.
Knowing your customer is key
The first thing I noticed is customers were not using the app exactly how I was and were wanting much more details and flexibility in the app. Know your customer. I received numerous emails about how to improve the app, why it sucked, why it was great and everywhere in between. I listened to all of this and came to one conclusion. The app architecture had to change.
I knew I wouldn’t be able to properly do this with a CSV file so I explored SQLite. Wow, this was not going to be easy at all. Integrating SQLite into early versions of iOS was a nightmare and not very DRY looking. The organization was a PITA when dealing with a very large amount of fields so after spending a lot of time integrating this and writing queries I stumbled across Core Data (released in iOS 3.0) This is exactly what I was looking for. Something that could speak SQLite but make the integration much simpler and powerful for iOS.
BowlSheet 2 started cooking
I listened to the customer, gathered all of the feedback from local coaches in the area such as Pat Costello and Jerry Dean McDonald (Owner of Perfect Shot Pro Shop in Orlando, FL). I knew what I would do, create the most feature rich bowling app for iOS possible. This app tracked every single thing you could possibly imagine an app tracking for bowling. Below were the features and these are just “some” of the features. Again, while all of these are great, know your customer…
* Supports single player AND multiplayer games (team)
* First iOS bowling app to support the baker scoring system
* Now supports opponent score (match play)
* Bowling ball speed calculator built in (mph / kph)
* Check averages and stats from directly in the app
* Post stats, oil pattern markups and ball drilling specs directly to Facebook, Twitter, or email with .csv file
* Automatically calculates splits / common leaves and displays their common name
* Pin by Pin, Ball for Ball scoring
* Keep track of everything important in bowling
* Easily slide your foot (Approach), Arrow, or BreakPoint Targets for each ball thrown and store the actual hits as well as attempted hits
* Store and use different types of oil patterns as well as mark them up and send to others via email
* Customizable color scheme for entire app
* Store High, Middle, or Low pocket hits for each 1st ball of each frame thrown
* Analyze games in their entirety
* Keep track of every bowler and their equipment (balls, shoes, wrist supports, and other)
* Store bowling ball surfaces and other important equipment options as well as use your own bowling ball image for target sliders
* Track bowlers hand layout (span, finger sizes, pitch) and bowling ball layout (Pin / Pap / Dual Angle Layouts)
* Store each bowling ball’s drilling and pin layouts
* Track which shoe slide (front and back) you used at different bowling centers and even each shot
* Take notes for each ball rolled
* Store important aspects of each location / event bowled including addresses, phone numbers, coordinator’s contact information, you can even take a photo of each location and view the location on a map as well as auto locate via GPS
* View common statistics for each bowler as well as their pin hit / miss ratios and percentages
* Easily view series totals for each event
* Bowl as a single bowler, team or as a Baker Team (bowler 1 thru 5 is assigned automatically to each frame 1-5,6-10).
* Change team lineup prior to every Team Game
* Filterable statistics for :First Ball average, Strikes, Spares, Splits, Pocket Shots, Open Frames, Split Conversions, Pinfall and more!
Too Many Features Will Kill You
This was a hard concept to grasp at first. How could an app that does everything possibly be bad? I mean, if people don’t want to use the feature then simply don’t use it? Right? No… While it’s great to add many features, one must still track if those features are being used enough to justify putting in the app. If they aren’t being used, strip them out.
We’ve heard about this before. Keep it simple stupid, or is it Keep it short and simple? Regardless, they have the same meaning. If you’re going to add tons of features to your app you absolutely have to make them very easy to understand and access or the feature will do more harm than good. It’s ok to have a ton of features but I would recommend writing them all out on a sheet then sort them by most importance. Focus on your top features and gradually add the rest incrementally over time so you can gather valuable feedback from your customer as to whether they’re worth keeping around. Keep listening to your customers…
WARNING : Removing features after they have been implanted will always lead to at least one irate customer leaving negative feedback since you removed “their” feature they relied on. So choose carefully and be sure of your decision. In many cases, simply not adding the feature until there is enough demand is a better route to take, IMO.
The Future of BowlSheet
BowlSheet is undergoing a major change right now. Over time, writing apps for various companies and working full time for a pharmacy software provider, I’ve learned a great deal of knowledge concerning a great UI / UX ratio. (user interface / experience). This importance can’t be stressed enough. Without one, the other is worthless. An app can look great but if it functions horribly it’ll still be deleted and vice versa. We are now in the process of rewriting and redesigning the entire app from the ground up leveraging multiple technologies and ecosystems. We have listened to valuable feedback and have a very good understanding of what the customer expects and would actually use. Now I can gladly say, we “know our customer”. There will be multiple versions although I can’t quite speak of their primary focus as of yet. But they are very exciting and we know you’ll love them. 😉 I appreciate the support throughout the years on the product and hope to continue creating products that exceed the expectations this app has already exceeded.
Mark McCorkle – The Edibu Team