Dig Deep Fitness iPhone Fitness Application Prototype

Posted February 16, 2008 at 3:52 PM by Ben Nadel

Tags: ColdFusion, HTML / CSS

Last weekend, I put down some initial thoughts and screen ideas for Dig Deep Fitness, my iPhone fitness application. This is basically just a way for me to combine my love of ColdFusion with my love of working out while simultaneously breaking into the mobile device world. Since last weekend, I have taken my rough ideas and fleshed them out into an XHTML and ColdFusion prototype which can be seen at www.DigDeepFitness.com.

Designing for a small, iPhone based fitness application is very different than designing a web based application even though they are both technically using the Safari web browser. I have to say that I was very thrown by this. For starters, there is extremely little screen real estate to work with. The viewport is only 320 by 480; of course, that is for portrait - for landscape that switches, which presents a little more complication (that I ended up not caring about). But, when the iPhone loads your web page, it doesn't care how wide your data is, it opens up to a viewport designed to fit a web page that is 920 pixels wide which is what it considers to be the average width of web sites.

My iPhone fitness software application is designed to only be 320 pixels wide, so to deal with this, I had to set some Meta data in the HTML head:

  • <!-- Scale property for iPhone. -->
  • <meta name="viewport" content="width = device-width"></meta>
  • <meta name="viewport" content="user-scalable = no"></meta>

Here, I am telling the iPhone to default to a viewport meant to accommodate web sites that are as wide as the "device-width". I am using device-width because that is what Apple suggested as a best practice, but this could also have been a numeric value. Device-width simply tells the iPhone to have no default zoom since the site will be as wide as the actual viewport.

I am also turning off the user's ability to scale the interface using the double-tab or pinch technique. Now, I know, a lot of web usability people are probably rolling over in their graves right now, but I just felt like this is an application and doesn't need to be zoomed. I don't see how you could zoom into this iPhone fitness application and still have any sort of usability. Therefore, I just turned it off so as not to have people zoom by accident.

Once I had those tags in place, I was all set to design a "web site" that was 320 pixels wide. Of course, I had to keep in mind that I was designing my fitness software for the iPhone and that that iPhone works on the painfully slow EDGE network. As such, I am writing my CSS to the page itself as well as not using any images. This is to keep the page from making any additional server requests that would slow the load time down. Now, you may think that I am crazy as I am getting rid of any ability to cache external files; however, after some testing, I definitely felt that the page load times were faster after removing the linked CSS files. Maybe that is all in my head, but I am pretty sure that linked file caching wasn't doing anything to help me.

I have also wrapped the whole page in a ColdFusion custom tag so that I could strip out all the excess white space that could slow down the page load by adding additional bandwidth requirements. Normally, I wouldn't care about such things, but I think that in order to make this fitness software usable on the iPhone and the EDGE network, I really have to take every little care to optimize the page download time.

That being said, here are a few screens that can be seen at www.DigDeepFitness.com. I am not totally happy with the colors, but I tried to keep it very clean and consistent; the bottom line is that I didn't want my lack of design skills to slow down the development process as design can always be tweaked later:


 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Login Screen  
 
 
 

 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Home Screen  
 
 
 

 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Exercise List  
 
 
 

 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Exercise Detail  
 
 
 

 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Select Next Exercise  
 
 
 

 
 
 

 
Dig Deep Fitness iPhone Fitness Software Application Prototype - Perform Current Exercise  
 
 
 

So there you have it; that's the mostly-clickable prototype for Dig Deep Fitness, my fitness software application for the iPhone. I've been viewing it on my iPhone and it is a bit slow, but I think it will be usable. The trick will be to keep the Javascript AJAX code really small so that it doesn't kill the download time. I would have loved to use jQuery, but I think the 20+K is just going to be too large for the tiny subset of features that I need.

I think adding the database and the actual ColdFusion functionality should be fairly easy to do. Hopefully I can have this up and running in the next week so that I can do some field testing (namely, me lifting some serious steel and storing the weights).

Well, time to hit the gym... and so, a little inspiration:


 
 
 

 
Mavi Gioia Looking Very Sexy With Strong, Muscular Legs  
 
 
 



Reader Comments

Feb 16, 2008 at 7:36 PM // reply »
34 Comments

Looks good, Ben.

I just finished a little proof-of-concept project that involved reformatting some small ColdFusion-powered apps for use on an iPhone/iPod Touch. One thing that caught me off-guard was that when you tapped a drop-down box like the one you have for selecting the next exercise, the iPod would zoom in slightly on the box and display the choices in the keyboard pop-up area. Fine and dandy, but after tapping the Done button to make the choice, it wouldn't zoom out again. In my case, that meant it hid the button to the left of the drop-down box for submitting the form.

Do you see the same thing with yours? It probably wouldn't affect your layout as much as the rest of the elements on that screen fall underneath the drop-down.


Feb 17, 2008 at 10:18 AM // reply »
10,640 Comments

@Brian,

I did not notice this; but, remember that I disabled the ability for my users to zoom the browser since the app was designed to fit exactly on the screen. That might be preventing this from happening on my app.


Feb 17, 2008 at 6:51 PM // reply »
1 Comments

Cool little app!

I thought of the same thing myself this morning at the gym! The only problem is that it forces you to go online to record your progress.

I wonder if it would be possible to install Air onto the iPhone or some other way of keeping track of progress on a local data store ?


Feb 23, 2008 at 8:31 PM // reply »
1 Comments

Dam the picture at the end is awesome.


Feb 23, 2008 at 8:48 PM // reply »
34 Comments

@David: Funny, my wife didn't think so.

"NSFW" can also mean "Not Safe For Wife" :)


Feb 24, 2008 at 10:12 AM // reply »
10,640 Comments

Ha ha ha, Not safe for wife :)


Dec 31, 2008 at 10:54 AM // reply »
1 Comments

Who is that girl, wow!


Apr 23, 2009 at 5:18 AM // reply »
1 Comments

fantastic


un
May 26, 2009 at 9:24 AM // reply »
1 Comments

nice ;)


Jun 6, 2009 at 2:43 AM // reply »
1 Comments

umm? that chick is sooooo fat!
look at thise friggen chucnky thighs!
get a skinny(and alot younger) blonde and....... maybe one without a retarted face!!!!!!


Jun 6, 2009 at 2:45 AM // reply »
1 Comments

actually yeah she is fat!


Jul 8, 2009 at 9:48 AM // reply »
2 Comments

Pat, Henery you need to learn the difference between fat and muscle, I'm sure she would be mightily impressed with you two as wel!!

Any way on to the reason for the post.

Ben, love the app. Have been using it for a few months now and was wondering if there was some way of incorporating supersets into the system. At the moment I create a new excersice which incorporates both halves of the superset then alternate the weights and rep info, it's all a bit cumbersome.

Also is there any progress on being able to transfer the info into a spreadsheet/database?


Jul 17, 2009 at 10:42 AM // reply »
1 Comments

look at er legss!! n arms i woulndt want to bang a chick that had arms bigger thn mine, mmhhmmhh no thankyou!


Jul 18, 2009 at 1:18 PM // reply »
10,640 Comments

@Ian,

The idea of a super set is something that I have struggled with a long time. I've wanted to build a fitness app for so long and could never quite figure out what the good interface for super sets would be. I think I have an idea though.

What kind of export would you want? That would be fairly easy.

I'm glad you like that app. I wish I had more time to devote to it. I want to rebuild it from the ground-up!


Jul 21, 2009 at 1:44 AM // reply »
2 Comments

Hi Ben,

re export from dig deep.

Anything that would allow me to view details from a chosen date to current on selected excersises and store them as a file on my mac.

Don't really need to see details on everything just the main ones - bench press, bent rows, shoulder press, squat (front and back), deadlift

Though if it makes life easier for you and gives you more time to train details on all exercises from a set date to current would be cool!


Jul 21, 2009 at 7:45 AM // reply »
10,640 Comments

@Ian,

Sounds like a good idea. Let me work on it.


jhk
Aug 18, 2009 at 10:24 PM // reply »
1 Comments

waaaaaaaaaaaaaaaaaw


Oct 4, 2009 at 4:00 AM // reply »
2 Comments

thank you . Ben Nadel


Nov 16, 2009 at 4:48 AM // reply »
1 Comments

looks pretty


Jun 15, 2010 at 9:15 PM // reply »
4 Comments

Love the pic of Mavi Gioia :) She's beautiful.


Jun 16, 2010 at 8:52 AM // reply »
10,640 Comments

@Justin,

Agreed - she maintains a nice feminine edge that some of the other lose along the way.


Jul 23, 2010 at 3:11 AM // reply »
1 Comments

please send me alot of style of gym or body building


Oct 10, 2010 at 9:37 AM // reply »
1 Comments

She is not nice!!!


Nov 10, 2010 at 2:06 PM // reply »
1 Comments

Umm no thats all muscle, she could probly knock the living daylights out of both of you with those muscles:)


san
Nov 22, 2010 at 12:41 PM // reply »
1 Comments

mmm....nice she hit


May 23, 2011 at 9:51 PM // reply »
1 Comments

yup, she looks extremely wonderful.



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 »