Over the years at the Boulder Java User Group, I have discovered many technologies that have eventually played an important role in my daily software development, YUI or YSlow, for example. Matthew McCullough's fascinating talk earlier this month on iPhone development may
eventually turn out to have been another influential moment.
For a bit of background, last year Apple finally opened up the iPhone platform to non-Apple developers. This sea change reveals a vast and relatively unexplored landscape for software developers where there are probably many good ideas ripe for the picking. In addition, iPhone's smart phone market share is large and growing rapidly potentially providing many customers for iPhone developers. The revenue model is also tantalizing; developers may sell their applications at the iTunes store -- an extremely high visibility marketplace. I know of no other high profile online store where small independent developers have relatively easy access to huge audiences. Of course, this scenario makes the rosy assumption that Apple will approve the application for sale at the iTunes store. Nevertheless, this possibility is better than the alternatives. Hopefully, we will be seeing more of these high visibility online software bazaars.
Contrast this situation to the web application arena, where it seems every good idea has been already explored, not to mention the fact that the competition is cut throat, and the revenue model usually depends on mega traffic, which is difficult if not almost impossible to attain. Overall, it remains extremely difficult to break through and get attention in the web application world.
As a consequence, Matt's BJUG talk certainly whet my appetite for iPhone development. The major caveat, of course, is developers such as myself must learn Cocoa and Objective-C, which is not a small feat. Back in 2003, I became interested in Objective-C and Cocoa development when OS X and the iPod were really becoming popular. I spent about a year tooling around during evenings and weekends learning Objective-C and Cocoa. While I was interested in this environment, nothing concrete ever materialized from my efforts and I moved on to other projects. At any rate, I am glad I did not toss those Cocoa and Objective-C books I purchased a few years ago. Indeed, I have been brushing up on my Cocoa as fast as I can.