Monthly Archives: July 2007

Dream House

This looks like my dream house – beautiful location in the La Sal mountain range of Utah, modern, solar powered, great kitchen, infinity edge pool, etc. Yeah, I could get used to that. And it’s a bargain at just $23,224.80. Utah real estate sure is cheap!

UPDATE: Oops. Apparently I was in error. The $23,224.80 is the estimated annual (monthly?) taxes. The house itself is apparently $9.75 million. My bad. (Yes, I was kidding.)

Coding for the iPhone, Part Two

I’m really having a blast developing a web app for the iPhone. Some iPhone simulators are beginning to appear, which makes it a bit easier to test what apps will look like on the iPhone. www.testiphone.com is one example. The computer-based simulators are not perfect; since they are based on desktop web browsers, they do not support all of the CSS styles present on the iPhone version of Safari.

So, the app I am developing is called iPhoneWO. A couple recent screenshots of iPhoneWO are shown below.

Coding for the iPhone

I’ve had an iPhone for a week now, and I’m already deep into coding some web applications for it. This has been keeping me up late at night, but it’s fun. The iPhone is like a new frontier, ready and waiting to be populated by cool applications.

My first application is still in early beta (and not yet ready to be unleashed onto the world), but I provide a sneak peek here. It allows you to track exercises and health metrics such as weight and blood pressure. I had written a similar web application a couple years ago, which I run on my home network and use daily during workouts, but I never shared that application with the world. Although I am carrying forward many of the concepts into the iPhone version, it is requiring a complete rewrite to adapt to the iPhone’s touch-screen interface and unlimited number of potential users.

Here is the (current) main screen, shown once a user logs in. There are four main sections to the program: anaerobic (weightlifting) exercises, aerobic exercises, weight measurement, and blood pressure measurement.

Although the iPhone runs a full-blown version of the Safari web browser, users do not use a mouse to navigate: they use their finger. The finger is a much lower resolution pointing device than a mouse. The screen on the iPhone is also smaller, and network performance can be slow when users are surfing over Edge (vs. WiFi), so pages need to be optimized for file size and load quickly. These are all important considerations, and I am putting a lot of thought into each screen to figure out how to make it easy to navigate and understand.

Here is a screen that allows you to enter your current weight. The program will keep track of readings and show graphs of weight changes over time, etc. On a traditional desktop computer, I probably would have made the weight field an editable text field so the user could simply type in their weight. On the iPhone, I am using a popup menu; the iPhone allows a user to “flick” through the entries, so this is a much more natural input mechanism on the iPhone. My application remembers your last measurement and uses that as the default, so barring any extraordinary weight fluctuations, you should not need to flick far to set your weight (maybe only going up or down a couple entries).

Same logic applies to the blood pressure screen.

Several screens are shown below from the anaerobic/weightlifting portion of the program. I spent a bit of time trying to figure out the best way to organize and display the wide variety of exercises possible, while making it quick and easy for someone to use this application as they perform a workout. During most workouts, people focus on exercises that target specific body areas, so this seemed like a natural hierarchy to use. And what’s better than simply touching the body part you wish to exercise? (I recognize there is some opportunity for dirty jokes here, but please refrain.) So I created male and female models in Poser.

If you wish to perform arm exercises, simply tap the arm and you will be presented with a list of exercises that focus on the arm. Or shoulders, abs, legs, back, etc. You can flip the model around to show the front or back. I experimented with different poses, trying to create one that provides for the most error-free taps. For example, you don’t want to tap the back by accident when you really mean to tap the shoulder.

There are many parameters for exercises (for example, number of sets and reps and weight), and this application will keep track of the parameters you last used, making it easy to move from exercise to exercise and setting weights appropriately. I intend to make it very customizable, allowing you to limit what exercises are shown in the menus or to add additional exercises or activities. I am debating about whether to enable the customization through the iPhone screen or to require users to initially set up the customization on their desktop computer. Of course, the app will be able to present lots of useful statistics and graphs.

Anyway, that’s a sneak peek. I’m having a lot of fun playing with the iPhone and imagining development opportunities. Oh yeah, and my one sentence review of the iPhone? It’s like a gift sent from the future. So cool! (And gosh, it even makes phone calls!)