JOE HEWITT

November 14th, 2008
October 10th, 2008

Developing Facebook for iPhone

Last week I launched the second major iteration of Facebook's iPhone app, which finally lives up to our users' expectations and delivers most of the features they wanted. Getting here has been really challenging, and I'm finally at a point where I can reflect back on the experience and try to share what I've learned.

The 1.0 version of the app was trashed in reviews for its lack of features, which was really hard for me to take given how hard I worked on it. People must have assumed that all I had to do was plug Facebook's data into Apple's ready-to-use UI components and hit the GO button. I wish it had been that easy, but unfortunately many of the components I needed were missing from the iPhone SDK, even though they existed in Apple's own apps. The lack of a mail composer and a photo browser were particularly disappointing.

I had to make a choice: I could dash off weak versions of these components and hope Apple adds the full versions to the SDK later, or I could attempt to replicate them in great enough detail to convince users they were using a standard interface. I chose to take the latter path, and it definitely cost me a lot of development time which could have been used to add more features. One other side effect was that users actually did think they were using a standard interface built by Apple, and so they gave me no love for the work I did, and instead insulted me for not taking the time to deliver more features.

In retrospect, I think I made the right decision. I still can't believe how many apps I've downloaded from the App Store which exhibit no ambition to reach the high bar of quality set by Apple's apps. Many of these apps still receive great reviews for having long feature checklists, which is unfortunate because it only encourages more lazy UI engineering. Just the number of half-assed photo browsers I've found is astounding. I've spent a ton of time working on Facebook's photo browser and it is still only about 80% as good as Apple's, but it close enough to feel familiar to anyone that has used the built-in Photos app.

I have no doubt that Apple will make big improvements to the SDK in the near future, but in the mean time I want to help the open source community fill in the gaps. The iPhone SDK agreement says that you can't distribute "frameworks", but my contacts at Apple Developer Relations have said that it is OK to distribute "sample code". I would like to try and extract as much as I can from Facebook for iPhone and publish it as simple Xcode projects that you can play with and copy from.

June 16th, 2008

Firebug News

A lot of people have been emailing me with Firebug questions in the last couple months - more emails than I've been able to reply to, so I apologize if you haven't heard back from me. In the last few days the emails have been more urgent than usual, so I figured that blogging would be the best way to get some answers out to everyone.

A lot of people have been writing to let me know that getfirebug.com has been down for the last week or so - especially bad timing given that Firefox 3 is here and people are looking to upgrade Firebug too. I'm very aware of the problem with getfirebug.com's web host. To prevent this from happening again, I decided to just transfer ownership of getfirebug.com to Mozilla, who will take much better care of it than the crappy web host it has been running on to this point. The transfer is in progress and getfirebug.com should be up and running again within a day or two.

Firebug 1.2 is the new version that is compatible with Firefox 3. Don't thank me for the new version, as I didn't write a line of code for it. The credit goes to the open source community that has sprung up around Firebug in the last year, led by John J. Barton of IBM. They've done an amazing job and made me feel really good about the decision to make Firebug free and open source.

getfirebug.com may not be back online tomorrow when Firefox 3 ships, but fret not, because Firebug 1.2 is already available to download from addons.mozilla.org. If you have Firebug 1.0x installed in Firefox 2 then you should get automatically upgraded when you install Firefox 3.

April 1st, 2008

Blog 3.0

Today marks the third major iteration of this blog since its inception in 2002. On the outside there is nothing interesting about the new design - it's intentionally plain. The really exciting thing (to me, at least) is what you can't see: joehewitt.com is now 100% Python-powered.

The blog had previously been running on Movable Type (Perl) with some PHP around it. I'm really a Python guy, so that kind of irritated me. I've always wanted to use the site as an experimental platform for new publishing ideas, but not so much that I wanted to suffer through PHP or Perl to do it. Now the blog is a very simple Django application which I can easily enhance at a moment's notice. This was my first Django app and I can say without qualification that Django rocks. It was so easy that I wrote most of the code on airplanes while flying across the country.

Another change is that I have decided to go without comments this time around. I think that I've self-censored a lot of potentially interesting blog posts because I didn't want to get into arguments with readers in the comments. I'd like to blog because it helps me find clarity in my thoughts and improve as a writer, not because I want to entertain or persuade anyone.

Conservation

The Carnegie Deli may be partially responsible for global warming.

March 31st, 2008

Almost Done

I'll be right back.