I'm three weeks into developing my first iPhone application, for Plancast. It's been crazy and fun to try to learn something new so quickly! In case you are thinking of getting started with iPhone development, here's how I got started...
First I picked up a copy of the book, iPhone SDK Application Development, by Jonathan Zdziarski. I pretty much picked it up randomly - I made a last-minute stop at borders to get a book on iPhone development to read on a flight. Zdziarski's book looked good and was the skinniest one I could find. Turns out that for such terse text, it gets the job done. More impressive is that half the text are tutorials and I love (love love love) tutorials. My first day of iPhone development was spent typing out these tutorials and running them in the simulator.
Next, for general good iPhone stuff, I tried out Facebook's Three20 project. It's a bit skimpy on documentation but there's some great UI stuff in there. It's actually a whole framework but so far I'm only using a tiny part of the library for the Plancast app (tabs and loading spinners).
For connecting to the web, I'm using ASIHTTPRequest which is fantastic. It has a lovely page of documentation and handles most use-cases for making requests including authorization and asynchronous requests.
Early on my app was running very slowly because it was loading lots of images from the web. I complained of this issue to Cathy from Chomp and she pointed me to this blog post on loading images in the background. The Three20 library also has this functionality.
Overall I've really enjoyed iPhone development so far. After working on web apps for so long it's nice to have a different set of pain points. Memory management in Objective-C isn't nearly as terrifying as I thought it would be but it is very frustrating to see the non-descriptive EXEC BAD ACCESS. I always make a ton of mistakes when trying out new things. Luckily, I'm good at debugging!