
Developing native apps for Apple’s iOS devices (currently: iPod Touch, iPhone, iPad) is certainly a complex process. Of course, that’s true for almost anything worthwhile. Fortunately, app developers are usually the type accustomed to learning new tools & skills. Back when I managed technology in universities, I hired programmers based on not what they knew but on their aptitude and skills for learning. And I still think that’s valid for hiring developers on salary to work in-house, but I suspect most publishers will contract their app development to firms specializing in those skills.
While there is a significant learning curve for new app developers, Apple provides an extensively documented environment for building apps. The learning curve is about three months to obtain a firm understanding of developing apps in Objective C and Apple’s SDK (known as Xcode). Clearly, though, the learning of new techniques and more involved aspects of the iOS SDK is an ongoing and never ending process. Again, that’s also true for any development environment.
Some sort of programming background is essential for coming to terms with the tools for iOS app development. Experience in a C-based language is helpful but not necessary, though having a basic understanding of how a programming language functions is essential. Those with only a background in scripting languages such as PHP or JavaScript will have a slightly harder time but not so much harder. Personally, I actually find Objective C a lot simpler to understand that JavaScript but that might simply be the way my own mind is wired.
Developing a native app requires a very different mindset than developing for the Web. The screen dimensions is only one aspect. Apple provides great guidance in its interface guidelines. And there are many technical issues. You must deal with memory management. Xcode provides both an iPhone & iPad simulator but what works on the simulator may not work on the actual device, which has much stricter memory limitations than a desktop machine. The complexity of loading views (i.e., a screen of information) is not nearly as simple as making an href link to a new Web page. In iOS a lot more is going on behind the scenes. Of course, that also opens up a great deal of functionality, features, and capabilities that can be presented in a native app.
Knowing how to take advantage of those features in native apps requires an understanding of the possibilities presented by iOS. And that’s where the design of the app is so very important, and not just the visual, graphic design but the underlying structure and functionality of the app. The value of an app rests in the functionality, which really needs to be something more than a page curl animation. That’s merely eye candy. The task of conceptualizing an app is the most difficult part of working in Apple’s app world. But that’s nothing new. System analysis and design always has been more difficult than programming.

Would getting started resources would you suggest for getting up and going with iOS development? Taking us through the basics from the installation of the SDK to “hello world!” and beyond.
Thanks for your time!
Paul Dwinell
User Experience Engineer.
@Paul: First, signup as an Apple developer and read the essential documents provided by Apple, particularly the Human Interface Guidelines and the Application Programming Guide. Plus, Apple provides many other well written documents for developing on their devices. Plus, if you pay the $99 developer fee then you have access to the videos from last month’s WWDC conference. Most of those videos are not entry level but are very useful once you get a grasp of how the SDK functions. Apple is really serious about documentation.
The third-party documentation is not yet out with the latest on iOS but the books that cover iPhone 3 development are still very useful. The Head First iPhone Development: A Learner’s Guide to Creating Objective-C Applications for the iPhone is an excellent introduction, particularly for those not that comfortable with a complex programming environment. The layout of this book is superb.
Beginning iPhone 3 Development: Exploring the iPhone SDK is also excellent.
For those who like a video-based introduction, then lynda.com iPhone SDK Essential Training is a very good course.
For more advanced topics, you’ll find the Apple documentation very useful as well as those WWDC videos. But a couple of advanced books worth noting are More iPhone 3 Development: Tackling iPhone SDK 3 (Beginning)
and The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK. That last one may be getting a bit dated. Check for a new version.
As I said, most of material in the ‘iPhone 3′ books still apply to the renamed iOS. Just be sure to read up in Apple’s documentation about some changes that will impact your apps.