Dig Deep Fitness iPhone Fitness Application Prototype

Posted February 16, 2008 at 3:52 PM

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:

 Launch code in new window » Download code as text file »

  • <!-- 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  
 
 
 

Download Code Snippet ZIP File

Post Comment  |  Ask Ben  |  Other Searches  |  Print Page





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 »
7,572 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 »
7,572 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 »
7,572 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 »
7,572 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


Post Comment  |  Ask Ben

Recent Blog Comments
Mar 21, 2010 at 6:32 AM
ColdFusion CFPOP - My First Look
Apologies... The field name in the db for C. is "BounceCode" It stores the code / message which is returned in the email. Sorry for the confusion. ... read »
Mar 21, 2010 at 6:29 AM
ColdFusion CFPOP - My First Look
@Jose Galdamez, Hi Ben and Jose 1st of all.. big thanks to Jose for his Skype chat a few weeks back. Your time was much appreciated. I have come up with a rather unelegant solution to my problem a ... read »
Mar 21, 2010 at 3:42 AM
A New Wrist Pain
Chiropractic treatment is one of the best methods for treating numerous health problems naturally. After years of experience being a chiropractor, I have found that it is a powerful way to solve many ... read »
Mar 20, 2010 at 12:07 PM
Drawing On The iPhone Canvas With jQuery And ColdFusion
Simply awesome. Saved my day. ... read »
Mar 20, 2010 at 9:00 AM
Building A Fixed-Position Bottom Menu Bar (ala FaceBook)
I would like to say thx for an easy way to create a bottom bar. I do have a ?. Is it possible to center the bar if i want to resize it to ex 85%. Regards Offenbach ... read »
Mar 19, 2010 at 7:26 PM
MySQL 3/4 - com.mysql.jdbc.Driver And allowMultiQueries=true
Thank you very much for this post. Adding allowMultiQueries="true" in context.xml didn't help until I added it to url as allowMultiQueries=true Good idea is to use prepared statements and it will he ... read »
Jim
Mar 19, 2010 at 4:49 PM
Nobody Puts Baby In The Corner!
Wow. This is like suddenly finding a support group for your secret shame. I'm not alone! I always liked this movie, even though it is extremely cheesy. I just wish Jennifer Grey hadn't gotten the ... read »
Mar 19, 2010 at 4:47 PM
Application.cfc OnRequest() Method Affects OnError() Arguments
@Jason and @Ben, I've been doing some CF9 refactoring on our systems and noticed an odd occurrence with onError as well. Found a way to work around my problem, but what I saw was... Background: Our ... read »