I recently had an idea for an app. Something to help keep score while playing basketball. Great, not really a big deal, should be able to do this in a day or so. So, it took about a week once all was said and done, after which it sat in the Apple App Store queue for longer than it took to actually create.
The first thing I did was put together some rough designs in Photoshop. Initially I was thinking it would just be an iPad app, but after talking to some other people I decided to add the iPhone version too. This bit set me back a few more days, thanks to those gaul-dern Adaptive Layouts.
Setting up the basic mechanics of the app was pretty straight forward, plus buttons add points, minus buttons take away points. Two teams, the classic red vs. blue. Each with their own score controls. I really wanted to make the scoring process quick and easy, with big buttons you can easily see and press while actually playing basketball. I imagine the player keeping score would run over to the sidelines to quickly add points or check the score.
From there I realized I wanted to add a game countdown timer to help fill out the app feature set. Just a timer wouldn’t be very useful during a game, but a timer with beeps for the last ten seconds and a final game over buzzer would make everything better. So, that’s what I did.
Once I had all the code in place I could add the iPhone version. I had yet to use the Adaptive Layouts in xcode for iOS 8. I really wish I could use CSS. Adaptive Layouts sound great on paper, but in practice, they don’t really seem to be made for graphically unique and complex interfaces. Also, Interface Builder sometimes seems to randomly adjust things that I thought were already set. It’s a very frustrating experience using one single storyboard for both iPhone (in all it’s crazy sizes) and iPad (so much easier).
Thinking I was going to use the same design for both iPad (my original design) and all iPhone sizes turned out to be a mistake. It ended up being easier and a better UI/UX once I decided to do a separate, streamlined design for iPhones. This meant choosing a compact width device Size Class and disabling pretty much everything and recreating them with different graphics for the compact width devices. It was frustrating but I think made for a much better app in the end.
All in all, I learned a lot about Adaptive Layouts and Size Classes. Things that will definitely help with future projects. I feel like I made a pretty good app given it’s limited use case and the time put into it.