Dig Deep Fitness iPhone Fitness Application Beta

Posted February 29, 2008 at 9:10 AM by Ben Nadel

Tags: ColdFusion

I have just released the Beta of Dig Deep Fitness, my iPhone fitness application that allows users to track their workouts over time:


 
 
 

 
Dig Deep Fitness - iPhone Fitness Software Application Beta  
 
 
 

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.


 
 
 

 
Dig Deep Fitness - Sexy Software, Sexy Phone, Sexy Girl In Panties  
 
 
 



Reader Comments

Feb 29, 2008 at 10:41 AM // reply »
25 Comments

Cool stuff Ben. Now all I need is an iPhone. :|

Why no Deadlifts or Cleans in the system??! :)


Feb 29, 2008 at 4:20 PM // reply »
27 Comments

I noticed that the styles are being included in each page. Is this necessary for the iPhone or something that could speed up performance if moved to its own file that could be cached?


Mar 6, 2008 at 8:49 AM // reply »
10,640 Comments

@Aaron,

I didn't want to scare anybody away :)

@Daniel,

I found that the cost of having the browser do a second (CSS) and third (Javascript) call to the server to have the page render was too much for the EDGE network to work effectively. I found noticeable gains when I moved my linked files inline to the head of the HTML. Plus, I don't have a tremendous amout of CSS or Javascript, so it's not too much of an issue.

Not a "Best practice" of web development by any means, but a tweak that I think I needed for the iPhone.


kay
Mar 8, 2008 at 5:32 AM // reply »
1 Comments

Thanks for this new great application for iPhone


Joe
Mar 24, 2008 at 4:02 PM // reply »
1 Comments

I like what you have so far. Maybe a list of past workouts or a summary of the current workout would be good. Unless I missed how to do that.


Mar 26, 2008 at 9:07 AM // reply »
10,640 Comments

@Joe,

Don't worry, you did not miss that anywhere. Those will be future-soon features. To kick it off, I just wanted to get a way to start entering workouts.

I will come up with a site and a better overall experience, thanks.


May 2, 2008 at 9:43 AM // reply »
1 Comments

Thank you, great application.
Another reason to love my iPhone.


May 13, 2008 at 4:25 AM // reply »
1 Comments

I use your application since 4 weeks. Thank you very much.
A history of the last workouts would be great.


May 13, 2008 at 7:24 AM // reply »
10,640 Comments

@Ralf,

Thanks man. I am looking for ways to improve it and have some cool ideas. I just haven't quite gotten the time yet.


Cat
Jan 13, 2009 at 1:18 PM // reply »
1 Comments

This is the closest I have found to exactly what I need. I *know* how to do the basic weight training exercises, I just hate not being able to track what I did from day to day on my iPhone. Lugging around a notebook seems so... 1990's...

Are you still updating this app? Will you ever consider creating a standalone app for the Apple store?


Jan 13, 2009 at 1:22 PM // reply »
10,640 Comments

@Cat,

I am really psyched to hear that you are liking this. I am most definitely still updating the app. I actually recently just added a display Widget (see lower-left corner of main blog page: http://www.bennadel.com/blog/recent-blog-entries.htm ). I also just added a "notes" field to each exercise last week.

And, YES, I am working on making this a stand-alone iPhone app. In fact, I have a Mac Mini being delivered as we speak! I hope to begin development on the stand-alone version in the next few weeks.


JR
Jan 2, 2010 at 8:01 PM // reply »
1 Comments

It would be nice to have an iPhone application that allows a user to run on a treadmill while tracking the miles via a visual of landscapes. i.e., trails, hills, mountains etc.


Sep 28, 2010 at 6:15 AM // reply »
1 Comments

An application to track workouts? Brilliant! Just what I need.



Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
InVision App - Prototyping Made Beautiful With Prototyping Tools Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
Feb 12, 2012 at 3:37 AM
Learning ColdFusion 8: CFImage Part III - Watermarks And Transparency
Hi Ben, Just to ask currently it is placed bottom right corner, if i need to replace the same rendered image on the bottom left side or in the bottom center, how that can be calculated. bottom ce ... read »
Feb 11, 2012 at 9:29 PM
Use jQuery's SlideDown() With Fixed-Width Elements To Prevent Jumping
I can't say how glad I am that I found your post. Thank you very much. ... read »
Feb 10, 2012 at 7:21 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
Update! Instead of $(eval(options.insertAfter)).after(data['insertData']); I now use: var ajaxNode = document.createElement('span'); var parent = $(eval(options.insertAfter))[0].parentNode; ... read »
Feb 10, 2012 at 6:18 PM
jQuery AJAX Strips Script Tags And Inserts Them After Parent-Most Elements
encountered this same, what I consider, jQuery bug last week. I'm building a site in which I load some content via AJAX. This content contains Linkedin share button placeholders which Linkedin API ne ... read »
Feb 10, 2012 at 11:30 AM
Cross-Origin Resource Sharing (CORS) AJAX Requests Between jQuery And Node.js
After you understand the concepts here, this is an awesome cheatsheet for enabling CORS in just about anything http://enable-cors.org/ ... read »
JM
Feb 10, 2012 at 9:10 AM
My Safari Browser SQLite Database Hello World Example
@Amy, Here is a very good tutorial on how to use JOIN: http://www.sqltutorial.org/sqljoin-innerjoin.aspx ... read »
Feb 10, 2012 at 4:42 AM
Building A Twitter-Inspired RESTful API Architecture In ColdFusion
This is great, very useful Ben. I spotted a small typo in the api.cgm listing: <cfthrow type="Unauthroized" /> Cheers Stefan ... read »
Feb 9, 2012 at 10:35 PM
CFDirectory Filtering Uses Pipe Character For Multiple Filters (Thanks Steve Withington)
I was wondering if there would be a filter you could apply so that you got everything but what you included in the filter. As in show me all docs that are not a .pdf. ... read »