A Marvel: iPhone Development Environment
Well, school is out for the summer and, while I still have plenty to do to prepare for teaching in the Fall, I have some time to focus on Sugar Maple Software. I’ve downloaded the iPhone SDK, upgraded Xcode, started the Perforce server process, bought the third edition of Aaron Hillegass’ excellent Cocoa Programming for Mac OS X which provided a good refresher and update. To keep from getting too lonely and re-establish contact with old Mac acquaintances, I’ve created a Twitter account: @gcschmit and am following a number of Mac folks that I’ve at least met.
I’ve decided to focus my efforts this summer on the iPhone since I love to learn new stuff and don’t have enough time to develop a full-blown Mac OS X application. I hope to release a “fun” app later this summer and at least make enough progress on a more “serious” app that I can use it during the upcoming school year. If you are intrigued and would like to beta test, let me know; otherwise, I’ll be sure to announce the release when it happens.
We’ve all read, heard, or seen a ton of information about the iPhone in general and a little bit about developing for it. One aspect of iPhone development that I haven’t heard anywhere is the amazing usability, power, and quality of Apple’s iPhone development tools. I suppose I shouldn’t be surprised by this since I expect that most iPhone developers are desktop developers of some flavor and, therefore, expect that developing for the iPhone should be similar to developing a desktop application. However, this blissful expectation is unreasonable — the iPhone is an embedded system. With a few notable exceptions, developing software for embedded systems is extremely challenging in part due to confusing, buggy, limited, and expensive development tools. (One notable exception is my former employer whose LabVIEW development environment makes embedded system development familiar and easy for LabVIEW desktop developers.) Perhaps I appreciate Apple’s iPhone development environment more than other developers due to my previous experience, and pain, developing for embedded systems. I’m trilled with the extremely low barrier to entry both in terms of learning curve and fees. I’m overjoyed to use an object-oriented language and architecture for embedded development. I’m ecstatic that I don’t have to debug code by modifying the assembly by hand to set breakpoints and using a flaky serial port to spew messages displayed in a terminal emulator.
While I’m sure that I will have gripes about iPhone development and will write about them here, today I’m only focusing on the positives. Today, I’ll highlight the amazing accomplishment that is Apple’s iPhone development environment and try to help iPhone developers appreciate how fortunate they are!
