When Apple opened up the iPhone to developers, I got as excited about developing software as I did when I first discovered the power of the Mac. The iPhone was a new platform, one that opened up possibilities for applications that never existed before. It was more than a phone, and not just simply a small computer. Its hardware and software made it possible to wander the world, or your own neighborhood, and stay connected to whomever and whatever you wanted to. It enabled a new class of here-and-now applications that allowed you to do what you needed to, based on what was going on around you and where you were.
Of course, at first I thought developing for the iPhone would be like developing for the Mac. And, in the beginning, developing software on the Mac was like crawling over broken glass in midsummer at high noon in Death Valley. (I remember it fondly.) But when I downloaded the iPhone Software Development Kit (SDK), I was amazed. Here was a set of mature, easy-to-use, and (the best part) free tools. The frameworks were amazing! I had used frameworks before, but the ones that came with the iPhone were especially rich and mature. All I really had to do was add my application's user interface and functionality to the framework, and then *poof* ... an instant application.
I had discovered an (almost) easy and fun way to develop software. Of course, I say that now in hindsight.
If that seemed too good to be true, well, okay, it was, sort of. All that convenience came at ...