In the wake of Apple's press event announcing the latest software update to its mobile platform due out this summer, John Gruber and other suggests that, with an interesting modification to the developer agreement, Apple is trying to increase the quality of applications created for their growing family of mobile multi-touch devices.
Specifically the new agreement, which developers must accept in order to use the latest development kit, bans the use of cross-platform compilers in creating applications for the iPhone/iPad/iPod touch.
That is to develop software for the upcoming iPhone OS release a developer has one of two options; use Apple's development environment, complete with compiler and programming interfaces to develop an application specifically designed for the iPhone/iPad/iPod or target multiple platforms by building a web app that can also run in the web browser, Safari.
However, the restriction goes, you cannot develop using, for example, Adobe's pending Flash update which is designed to enable the building of an application in one environment, Flash, and in turn, recompiled for multiple, "less powerful" platforms such as the Android or Windows smartphones.
Yet, as other commentators have noted, Apple already reserves the right to review apps submitted to their iTunes store and that hasn't stopped the store from getting bogged down with lots of crappy apps.
Thus, their logic goes, Apple is really trying to lock in developers. If you want to develop for the iPhone, which everyone has, you can only use our toolkit. Oh and you have to pay us $99 to get a copy of the developer kit. Oh and the software developer kit only runs on a Mac, which only we make, so that will be another $1,000. Mahhhaaaa, we're so evil....
Compared to the number of Windows developers or web developers out there, few have developed using Cocoa or Objective-C given the Mac's market share compared to other computers. Few individuals or companies have looked to develop Mac-only or Mac specific applications.
But now the iPhone and iPad are the toast of the town. Everyone wants to get in while the getting is good. Naturally, Apple wants to capitalize on this.
Now, it just so happens that Xcode, the software development kit for the iPhone, is the exact same development kit Apple provides to Mac developers. Objective-C the exact same language. Cocoa Touch, a variation of the Cocoa framework for the Mac.
All these new iPhone developers have everything they need to develop for the Mac.
Apple isn't looking to lock in these iPhone developers, instead Apple is looking to open up the number of Apple developers out in the wild, be it iPhone, iPad, iPod or Mac.
See, a few years ago, when the iPod was growing in popularity, there was a lot of talk about the "halo effect." The idea that consumers, who for whatever reason had ignored Apple and the Mac, but now wanted an iPod, would in turn take a second look at Apple when looking for their next computer purchase.
By all accounts the halo effect is real. While the PC industry has been in the dumps during the recent recession, Apple has sold record numbers of Macs.
But the Mac still doesn't command the market to demand individual developer's attention. The iPhone, however does.
By getting developers to use only Apple's software development kit for the iPhone, Apple gets a chance to say "See how easy that was to develop for the iPhone? Now just imagine what you could do for the Mac! You already have everything you need to write a killer Mac application. Go on, we dare you!"
The only other option, developing a web application, still works overall in Apple's favor. Since the framework for Safari on the iPhone, Webkit, is the same that drives the Safari web browser on the Mac.
In other words, Apple is looking to grab the attention of developers, who for whatever reason had ignored Apple and the Mac, but now want to develop for the iPhone/iPad/iPod, and in turn might take a second look at the Mac when looking at their next software project.