I noticed that another CrossFit iPhone app appeared on the App Store, which, automatically, made them my competition and therefore mortal enemies.
Just kidding.
But I still think my app is better, and I want to tell you why it is, not only because I want people to purchase my app instead of theirs, but more because I think apps like this don’t do much for the mobile application marketplace: they aren’t of any quality, don’t have any sense of design, and otherwise basically command the very cheap price attached to them. The problem is that it’s difficult to make a decent application that can survive, if it’s swimming in an ocean of mediocrity.
But to the app, which I did purchase, so I could try to give a fair review for it.
First Impressions
The thing I like the best about this app is its apparent focus on a core function: starting a workout. The first screen after the app loads is a big wheel with workout names, a button that lets you select that workout, and a button that selects a random workout. Selecting a workout brings you to another screen that describes the workout, and has a big green button that starts the workout (e.g., it starts a timer, or opens a “score card” kind of interface). This is one thing the app does right:
The most common function should be the most obvious one in the interface.
At the description screen, you can also look at the workout, broken down into the various movements. Now, the first time I played with it, I chose “CrossFit Total,” and saw that the third lift (Deadlift) in the list (that is, in a UITableView) had a bug: the disclosure indicator was the wrong one. Instead of the expected plain gray chevron, it was the white chevron in a circle — the former means “tap this entry to bring up detail on this item,” while the latter means “tap this circle to edit or view detail about this item, aside from the function that tapping the item itself does.” And, when I tried tapping the “Deadlift” item, the app crashed.
This should be rule number one about developing a mobile app, or if not #1, at least damned near the top of the list:
You cannot have bugs in basic navigation in an app, ever.
A bug like this indicates one thing: a novice programmer. Learning while shipping is OK, for indie developers with limited resources. I’m in the same boat, since I’m learning a lot while shipping an app. But if you’ve clearly just started learning how to develop for the iPhone, and ship a product with bugs as fundamental as this, it is seriously difficult to think how you can demand a price to be paid for that app, even if it is only 99¢.
Features for Features’ Sake
Tapping on a movement — when it works — brings up an sequence of photographs that show an athlete performing the movement. This is a decent way of illustrating a movement, and it was something that I originally conceived of having in WOD: photographs, illustrations, or videos/animations of each movement. It would have taken a ridiculously long time to produce these, however; it even took too long to write up a brief paragraph that explained the movements in WOD, and I don’t think I did that great of a job.
But the thing I realize now is that:
An application on your phone is not a replacement for a coach.
You likely fall into one of two categories, as far as CrossFit goes:
-
You have never worked out at a CrossFit gym, and may only be familiar with some of the movements or lifts used, or
-
You have been doing CrossFit for at least a short while, and have learned the movements and lifts involved.
If you are in group 2, I find it unlikely that you will need a reminder about how to perform a clean and jerk. A description or illustration of the movement is hardly of any use.
If you are in group 1, an application on your phone will not teach the movement to you. You will not learn how to properly snatch, clean, jerk, press, deadlift, or do anything else by looking at photographs. You need a coach, or at least, a partner, to watch what you do and point out to you what you are missing, or what you are doing wrong.
A brief description of a workout is fine, and is useful — I may forget what Annie is — but an illustration of a lift is not useful. It seems like a useful thing to have in an application, since it adds richer media and provides a reference, but it fails in providing any useful function.
Style and Form
The application is ugly, and poorly designed. That’s subjective and an opinion, but I did put a lot of time into some of the details you probably barely notice in WOD. Some examples:
-
When you update something in one screen, other screens are affected. Like if you add a workout, special care is taken to make sure that the log list is properly updated, so when you go back to that view it looks consistent with what you expect.
-
When you tap the notes field while editing a workout or record, the notes field slides upward, pushing the other fields “off the screen” so the field you are editing takes up all the real estate on the screen, and — most importantly — so the keyboard doesn’t obscure what you are doing.
-
And, more on that point, special care is taken on the size of the text areas when the keyboard is present and when it isn’t: when it’s not present, the text area takes up all the vertical space on the screen; when it is present, the text area’s vertical size matches the vertical space not obscured by the keyboard. It’s a simple thing, but you might miss it: the keyboard, since it’s another layer above your view, can obscure things.
-
When a “wheel” selector is shown in landscape mode, a special background image is used, so the UI element takes up the entire horizontal screen space. This makes it look like the wheel element takes up the entire horizontal space, instead of leaving the sides of the element “blank” and showing the view beneath it.
I doubt anyone ever noticed any of these things, even though they took the bulk of the time to get right. That’s exactly the point: you have to work very hard to make sure people don’t notice things, because if they do notice something, it’s likely that it’s unpleasant to them.
iCrossFit has the feature over WOD where you can time a workout in the app itself, but here’s the problem: when you finish a workout, it isn’t listed in your log! You apparently have to quit the app and relaunch it for new log entries to show up. This is fundamental when programming with UITableView — you have to reload the data when needed, so it shows up properly. But yes, it violates what’s expected to happen when you move through the application’s flow.
You have to meet the expectations of people using your app.
This goes for visual style, as well as expectations of how things flow. For an app on the iPhone, this means that unless it is an app where a unique visual style makes sense — games, obviously, and these small, single-function apps that use a unique and beautifully-designed visual style — then you should follow the form and style of Apple’s apps. iCrossFit Lite flaunts this convention a little, not egregiously; mostly it just uses the standard widgets in the wrong contexts, or overloads them so they’re too dense and hard to look at. Garish colors are used too much, as in, are used at all.
You should never format a time as “min: 03 sec: 41”.
Overall, iCrossFit Lite is an attempt at a grander, richer feature set than WOD’s deliberately modest attempt, and it’s embarrassingly amateurish and buggy.