« Sutters Mill Again | Main | In Defense of the IPhone API Limitations; the Compatibility Contract »

No maps of the forest, only pictures of trees

Writing iPhone apps are hard. True, it could be much worse, and as cocoa developers, we're spoiled by the MacOS, but the iPhone App Store is quickly gaining notoriety as full of crappy apps and flashlight programs. A great deal of blame is laid at the feet of those rushing in without cocoa backgrounds, especially by the old guard. Even more is laid at the feet of the NDA, which limits idea exchange, and this has a lot of truth. But I've come to believe that the NDA causes an even more subtle issue. That of reliance on demo code.
Whenever someone is interested in iPhone development, I point them to the Hillegasse book, which deals exclusively on Mac programming. However, Hillegasse does two wonderful things. First, he teaches a lot of the design concepts of Cocoa that are universally portable, especially to cocoa touch. Second, the book teaches concepts in a way that is rare, and one I've learned to appreciate. He doesn't do demo apps, one for each chapter to show off a technique. Instead, over the course of the chapters, he slowly develops and integrates the techniques into a handful of apps that have real (if fledgling) utility. In doing so, not only are the techniques of the chapter taught, but overarching design methodologies that don't fit into any one section. These can not be taught by demo code apps. Demo code apps, almost by definition, demonstrate a specific technology or feature. But in order to focus on that one aspect, the rest of the app is paired down and stripped. The job they do is to demonstrate a small subset of the API, and in that they excel. However, they are never designed to demonstrate the entire API as a complete whole. This becomes a problem in the vacuum created by the NDA. A great many iPhone developers are new to Cocoa, and have not developed on the Mac. As such, all they have seen is the demo code, with things like its rampant mixing of model, view, and controller into one. My own code still has much to go, as there is so much more I want to make. But it involves not only reinventing the wheel due to the lack of outside support, but also unlearning the demo code app techniques that have sadly become the de-facto standard in this vacuum.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on September 25, 2008 12:57 PM.

The previous post in this blog was Sutters Mill Again.

The next post in this blog is In Defense of the IPhone API Limitations; the Compatibility Contract.

Many more can be found on the main index page or by looking through the archives.

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.35