I have just released the Beta of Dig Deep Fitness, my iPhone fitness application that allows users to track their workouts over time:
Working with the EDGE network is a little bit slow; but, the pages are small enough that the fitness application works with acceptable speed. Plus, the real meat of the application is the screen where you enter your weights and reps for a given exercise and that page functions using AJAX-style data commits which means that as you are going through the exercise sets and adding the data for each lifter, there is no page lag to deal with. The only page lag is when you have to go and select the next exercise; but, since that is a rest time between exercises anyway, I feel that this will be acceptable.
For now, I just threw in some system exercises to help the testing. I am not sure how I feel about the system exercises. Do people want a list of popular exercises? Or, do they just want to enter the ones as they go? My concern is that if I have a huge list of exercises, they might not make sense to people, especially people who are not too familiar with my naming convention. I fear that it will lead to too much redundancy in the list of exercises, causing the list to become large and unmanageable. I might just end up getting rid of them in the long run.
When selecting the next exercise to perform, the drop down select box that has the list of exercises poses a bit of a problem. The iPhone screen is a bit too narrow to handle the lengths of the option values. To deal with this, I found that if you rotate the iPhone 90 degree counter-clockwise, the landscape view of the screen gives a much better view of drop down options. For now, that seems like common sense, but I might throw in a note on the page itself to help people figure that one out.
So, if anyone wants to try out this fitness software for the iPhone, please feel free to sign up for an account and give it a whirl. All passwords are stored using one-way hashing for maximum security (in the future, passwords can never be retrieved, only reset). And, because it is a pain to type on the iPhone, I have enabled a "remember me" feature that uses a non-expiring cookie to allow automatic login.
I plan to start field testing this iPhone fitness software today (remember, I AM my target audience), so expect that it will start to change slightly over the next few days based on my experience and the feedback of my beta testers. Thanks in advance to anyone who gives me feedback.
On a programming side-note, as you might know, I developed the prototype for this iPhone fitness software before I even built the database. I am trying my best to follow the Interface Driven Design methodology created by Hal Helms and Clark Valberg. As such, I created a fully clickable prototype that mapped out the page flow and look and feel of every page in the application. Then, when it came time to build the ColdFusion driven iPhone fitness application, it was quite literally a matter of copy, paste, and add ColdFusion. I made almost no changes to the interface as I moved from Prototype to Beta. It was such an awesome feeling; I really felt the full benefit of the prototype driven development cycle! I just can't image ever developing applications in any other way again.