Sunday, May 3, 2009

iPhone and Django Beginnings

Over the last couple of months, I've been working on a new application. I'm not quite ready to talk about the application yet. I have no illusions about it being a smashing success or anything like that (oh, wait, never mind, it is a Google killer ;). I just think it will be easier to show than talk about when it is ready. For the short-term, I'll be talking a little about the technology choices and how I got from start to (eventually) finish.

First, let me say that this is not a game (unlike most iPhone apps :). It is a personally utility that will go in the Medical category. I'm still trying to decide exactly what the revenue model will be. At present, my options are ad-supported (both iPhone app and website) or charging for the app. That's a decision (and discussion) for another day, I suppose.

Learning Objective C for the iPhone has been a lot of fun. It has been a bit of a throw-back to do weird things like memory management again, but the overall novelty of the environment has renewed some of the interest that waned over years of same-language programming. I'm about 75% of the way complete on the application. There's probably 15% more code and 10% design updates.

The iPhone application is just a few screens using a UINavigationController to manage the screens. All data is stored in a Sqlite3 database on the device. I've built a few custom UIViews that are just aggregates of other controls. Data will be transferred from the phone using a JSON and a RESTful API.

The other half of the project is the web site that will visualize the data. After more than a decade of using Java to build web sites, I needed a change. I've been using Python for some time for scripts and testing. This time, I decided it was time to use it for the entire site.

The technologies for the site are Python, Django, Django-Piston (for REST), NumPy, and SciPy (for graphing). The pages will also include jQuery and assorted plug-ins as needed. So far, I'm deepest into Django and Django-Piston; I'm looking forward to the NumPy and SciPy integration.

Over all, it is nice to be enjoying writing code again. The biggest issue that I'm facing now is not technological. I have enough of an idea to be a good "Feature", but not a full "application." I'm left with building a feature and maybe getting some side-cash or trying to build a real application to turn into a business.

No comments: