Joe Hewitt

iPhoneDevCamp

My blog has been a little quiet this weekend, but the offline version of joehewitt.com has been quite busy these last three days. Since Friday night I've been at iPhoneDevCamp in San Francisco with an incredible group of people and a whole lotta iPhones.

I had never been to an event like this, so I didn't know what to expect. My expectations going in were that it would be like any other time when I've been in a room full of engineers, like at any corporate campus I've worked at. Let me tell you, this was different. This was 300+ of the brightest and most enthusiastic people in software. It was very weird meeting one person after another who was overflowing with optimism and capable of bringing new ideas to life on the spot.

People were incredibly kind to me at this event, especially Christopher Allen, who masterfully organized the Hackathon in the style of the late great MacHack conferences. As soon as I got there, Christopher introduced me to a very talented video game designer, Nicole Lazzaro, who had an endless stream of ideas for games that would use the iPhone's accelerometer. Nicole's ideas quickly ran into the limitations of the phone, as we discovered that the browser doesn't rotate when you hold it vertically upside down, nor is it possible to distinguish the two horizontal orientations. When we realized that her four-sided Tetris idea was not possible, we initially tried to compensate by adding in button pressing and other methods, but decided that we wanted to make a game that was very simple and used only the tilt sensor for input. Nicole's philosophy is to focus on the emotional ride a player feels while being challenged and rewarded at just the right times, as opposed to just realistic graphics and long monotonous missions. From an engineer's standpoint, I was overjoyed to focus on the psychological impact of my code instead of trying to build a technical or artistic masterpiece.

Later in the night we met Colin Toomey, a great designer who volunteered to create some Atari-style graphics for the game. A day of JavaScripting later and the iPhone game Tilt was born. Tilt may just be the first game that uses the iPhone's accelerometer as its controller. The idea is that stuff is falling from the sky towards your character - some things you want to eat, some things that will injure you. You have to tilt the phone just in time to catch the stuff whose color matches your own. The game is still incomplete, in that it only has one brief level, and we haven't yet nailed the patterns of falling objects to make it really challenging, but you can play it now anyway (on an iPhone, unless your computer screen rotates when you tilt it):

Another fun thing about iPhoneDevCamp was my constant surprise as I found one project after the other using the iPhone app template that I threw together on Thursday night. I didn't really think this bit of code was ready for prime time, which is why I didn't even mention it on this blog. I only posted a link to it on the iPhoneWebDev Google Group. When I woke up the next morning it was already on Ajaxian. Later that evening, Jeffrey Grossman launched Movies.app, which used the template for its UI. The next morning I met Kristopher Tate of Zooomr, who had created a Google Code project based on my code and started using it to build a music browser. Throughout the weekend I met one group after another using the template for their Hackathon projects. I guess the lesson is that people are really happy to be able to focus on their apps instead of re-inventing Apple's UI! I'm definitely going to put some more time into it this week to clean it up and add some more features that people asked for.

A constant theme throughout the weekend was people's disappointment in the hackability (or lack thereof) of Safari. Seems just about everyone who signed up for iPhoneDevCamp planned to write an app that involved touch screen interaction. We were all extremely saddened that Safari does not yet support any mouse events beyond click. On the first night I met a developer who didn't own an iPhone but was boasting to me about his cool idea for touch screen painting. When I told him it was not yet possible he didn't believe me, to the point where he practically stole my iPhone and MacBook Pro and banged out some drag and drop code to prove his point. When he ran it on the phone and it didn't work he stood there in shock, dragging his finger across the screen over and over again, begging Safari to hear his plea. As for me, I still have faith in the Webkit guys, and I think it won't be long before we are able to start building the multi-touch web. I'm working on a blog post for later in the week that outlines my "wish list" for the next iPhone Safari update.

Thanks again to the people who organized iPhoneDevCamp, and to all the people I met who were so gracious to me. Thanks especially to Apple for creating such a stunning product. I've only owned this thing for 9 days now and my view of software design has already done a 180.