Learning to program for the iPhone

It’s probably no surprise that there has been a deluge of folks asking “Hey, what’s the best way to learn to program the iPhone”. Since I set up and run the Seattle XCoder’s group, I’ve been getting my fair share of those.

Some folks have traditional programming/CS backgrounds, and it’s easy enough to redirect them to some good resources to learn. It’s the folks that have little or no programming background, but who want to get into the game anyway that I’ve been finding harder to help. Much as we’re a great bunch of folks to ask questions and get tips, Seattle XCoders isn’t a tutorial house.

I’ve had several folks come to me with a programming background in javascript and nothing else. Javascript is clearly the new “BASIC” – probably has been for a while, and I haven’t been paying attention. I actually think that’s really cool on a bunch of different levels, but it makes explaining Objective-C, C, and memory management quite a bit more difficult. For a lot of those folks, I’ve had to punt – not much to help them. I suggest that they get a basic course in C programming and build up from there. I don’t think that’s really doing the whole setup justice, but it’s the best I could wrangle out.

As of yesterday, I might have a new tactic. Uli Kusterer has put up a “Learning C on the Macintosh” tutorial site called Masters of the Void. Uli’s done some really great things in Mac programming, and definitely know’s his stuff. Way better than me, definitely – and quite a bit more in depth than many I’ve run into. That being the case, I’m hoping it translates well into a tutorial on C for the Macintosh. The examples, details, and so forth in the site all point to using Xcode. I don’t know that it takes anyone beyond strict “C” programming, but it’s a hell of a jump start, and freely available.

So if you’re hunting around for a start on programming for the iPhone and you haven’t ever touched C, I’d say start with Masters of the Void and build up from there.

10 thoughts on “Learning to program for the iPhone

  1. Frankly I found that folks without little programming background have had a very hard time dealing with the low-level constructs of C. Objective-C by itself isn’t hard – and it’s very easy to skim over some of the more difficult concepts in C. That leaves a lot of folks in sort of a bind just a bit further on when they want to use something from CoreFoundation or they’re having an error with the compiler that they just don’t understand.

    I actually prefer to recommend Cocoa Programming for Mac OS X by Aaron Hillegass as an “Intro to Objective-C” book.

    Like

  2. Just to explain a bit, the reason why I wrote MotV is exactly what Joe says: You may be able to wiggle through ObjC and Cocoa without knowing memory management, but eventually you will have to drop down to C for this or that feature, and even in a garbage-collected programming language, you need to understand ownership and control destruction order. MotV is supposed to help people learn the C programming basics they need for ObjC.

    Like

  3. I just purchased the development program from Apple. Jumped in with out any knowledge of programing. I’m a graphic designer, know how program in Flash do some web development. I have a great idea for a app and what it will do. Sounds like that after reading your posts that I’m going to have a heck of a time getting this done!…and it looks like I’m going to learn how to program as I go!!…Sucker for pain arent I!!! Keep you posted

    Like

  4. If the types of people you are talking about are going to struggle to understand concepts of C such as pointers and memory management; they are not going to be able to jump straight into ObjC for the iPhone.

    ObjC uses pointers everywhere and the iPhone doesn’t have a Garbage Collector (only Mac development has the new ObjC2 GC)

    I would recommend learning C, then an object orientated language such as C++, C# (Mono), or Ruby. This way they can grasp the fundamentals before attempting anything commercial.

    It is hard. But isn’t that half the fun????

    Like

  5. Hi I am completely new in all this, I mean programing. I did Basic very long time ago (spectrum 48) but just for fun. I´ve got time in my hands and I really see a potential in my new iPone. I would like to learn how to program applications for the iPhone, so any help will be really appreciate.

    Like

  6. I couldn’t agree more.
    I think the best way to learn iPhone programming is by learning c/c++ first then going on to java and if you feel good with objects and classes in java then move on to objective-c
    If some poor soul were to pick up an objective-c book and learn it as a first language….he woud stop on page 10.
    For me I think programming experience is required.
    Thanks
    matt

    Like

  7. Joe, you’re absolutely right! In my case, even though I’ve been doing web development for the past 10 years, learning to program in ANY language for that matter has been hard. I guess because I never started with a good foundation. I’ve purchased “How to…” books in the past, but the more I read the more confused I got and so eventually I gave up.

    However, just recently I started developing this interested in learning to program for iOS and, I am very proud to be able to say that I officially finished my first programming book two days ago!! It’s called: Objective C for absolute beginners by Gary Bannet. Honestly speaking, apart from learning about Objective C, this book really helped me have a basic understanding of programming principles.

    Obviously, I didn’t finish the book and start making apps complex apps. I personally feel like I still need to read up more on the topic of “Messaging” for Objective C. But overall I definitely learned A LOT with the help of this book and would definitely recommend it to anyone.

    Like

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s