Recently I’ve downloaded a few iPhone applications that have used the UITableView in ways I could have never even imagined. Really classy, brilliant interfaces that make using the software a real delight. Check out Tweetsville, Facebook, and Twinkle to see what I’m getting at.
Tweetsville in particular is outstanding. The amount of work Ed Voas put into getting the scrolling right and the little thought bubble embellishments is a real inspiration.
I want to do something similar with an application I’m working on for the Colab, but scattered blog posts aside, getting up to speed on creating these kinds of pimped-out interfaces is real work, and it needn’t be.
Now that Apple has lifted the NDA on iPhone developers, I figured there’d be a wealth of not only books, tutorials, blog posts, and screencasts, but also real open source projects to hack on by now. This could not be further from the case.
I think the reason for this is pretty self-explanatory, albeit two-fold.
- The iPhone SDK itself is not Open Source
- The App Store offers a built-in business model
And while both of these points are undeniably true, their unessecary impact on open source code projects is truly baffling.
As for the iPhone SDK itself not being Open Source, it certainly doesn’t cause the welcoming, hack-me-into-submission community we’ve come to expect in our web frameworks, but it’s truly inconsequential. Sure, you don’t see the same amount of Open Source contribution in the .NET community that you see with Rails, but the barrier is entirely mental. If you want to Open Source any code you’ve written, you have that right.
So onward to the second point. The point about the App Store offering a built-in business model. I’ve already argued that this is not only revolutionary but potentially the biggest deal in software that exists today, but you might want to grab a chair for this one, because I’m about to blow your mind.
CHOOSING TO GIVE AWAY YOUR SOURCE CODE DOESN’T MEAN YOU CAN’T CHARGE FOR THE PRODUCT.
It’s one of those truths that is so obvious it’s almost not worth saying, but just think about how deeply it runs throughout every software community.
If Ed Voas was to contact me tomorrow with full source code of Tweetsville, there are several things I would do with it. First, I would open it in XCode and see what does what. Second, I would start tweaking it to see what works and what doesn’t. Third, I would import the parts that are helpful to me into the project I’m working on and get the two pieces glued together. Fourth, I would save the project and blog about how Tweetsville is the best iPhone app in the world. Fifth, I would blog about what I learned, tar up my project, and share it with you all.
What I would not do (and what I seriously doubt anyone else would do) is slap a new logo on Tweetsville and try to undercut him on the App Store, just as you don’t see anyone taking the Open Source Wordpress iPhone project, rebranding it, and selling it for 99 cents as “iWordpress.” It’s a totally unjustified fear.
Sorry to single out Ed here, but it serves an example for my needs.
The fact is, you can only learn so much from tutorials. But even if we reach a point where there is a wealth of information to get you going on the iPhone, what begins to happen is a natural chasm between newbie tutorials and advanced brainmelting information.
Most people who want to get serious with any software framework want to spend most of their time in the middle, and that’s the place where real projects are the most beneficial.
So what do we do, then?
This is the real meat of what I’m trying to get at, and to be honest I’m not entirely sure.
I’m totally willing to set up and even initially front the bill for any kind of solution we can think of to mend this chasm.
Is it something as simple as an IRC room? A message board? A God damned iPhone app? Something over-the-top complex?
I really don’t know, but the moment we figure it out and set up a place where creative Open Source hackers are not only encouraged but expected to trade back and forth full working projects is the day we begin to see a huge shift in the evolution of iPhone software.
And since we’ve found our business model, we don’t have to be all punk rawk about it either. If five dudes want to use whatever resource we come up with to go 20-20-20-20-20 on a paid application, more power to them.
But right now we need to trade source or it won’t happen.
If you’ve got any bright ideas, twitter me, and if you know of a community starting up like I’m suggesting, let me know so we can join forces.

