Getting Started with iPhone Programming
A friend of mine asked recently for some resources for learning iPhone programming so I thought it would be a good time to compile a list of the sources I have found useful through my journey to iPhone programming:
- Stanford’s iPhone Programming Course – This is probably the most valuable source I can recommend someone watch to get started with the iPhone. The course is well done, the instructors are knowledgeable (actually Apple engineers), best of all, they go through the course assuming you only have a basic knowledge of programming in general (it’s a 100 level course). Why is this great? Because this means they aren’t just teaching you iPhone programming, they’re teaching you iPhone programming AND Objective-C! I watched the older course but I’m sure the newer course linked above is just as good, if not better.
- After the Stanford course, I would check out the Apple documentation. It might take a bit of getting used to but it is very well done and contains a library of knowledge. The human interface guidelines are also good to read; they provide order upon the chaos that could be the design of some applications. They way I heard it was, “Learn it. Live it. Love it. Only stray away if you ABSOLUTELY have no other choice”. You can definitely tell when people stray from them because most of the time their UI sucks.
- The biggest stumbling block for me was the fact that no one I knew had any understanding of Objective-C. Someone to bounce ideas off of and ask what the correct way to do something in such a different language can be pretty important. If you don’t already have an account, I would recommend heading over to StackOverflow and checking it out. It has been invaluable to me to solving that weird bug or that question to might ask someone in the computer labs.
- If you are just starting out in Objective-C, Cocoa Dev Central is a wonderful resource that has a good number of tutorials to get someone started that has no knowledge of Obj-C.
- Ray Wenderlich writes some incredible tutorials on how to use different specific aspects of Cocoa / iOS. His Core Data tutorial (which is excellent for someone looking to learn Core Data) was how I found his site. If you’re on twitter, he (@rwenderlich) also post some awesome tidbits of information like a new HTTP library or simple design guidelines.
- Cocoa Is My Girlfriend – Good site with helpful tips. Might be a bit advanced for a beginner but good to keep it in mind.
I think most important of all though is to just keep on it. I tried to learn Objective-C 3-4 times before and I would learn it for a day or two then I would pick it back up an long length of time later and I would have forgotten everything. Coming from C# or some other language, Obj-C needs a different type of thinking when it comes to using delegates and Interface Builder. So probably the best advice I can give you is to find a project and work on it for a week or two, even if it’s an hour or two a day. You really need to get that different way of thinking built up in your mind.