I’ve often been asked by people about where to start with iOS programming, whether they be co-workers, colleagues in the same line of work at other companies, or even total strangers who happen to see me happily working away on my personal projects in Xcode. Some rather naïve people assume that I learned from a book, still others even think I took a class to learn all of this! I can say definitively that it’s in my opinion that to be a great iOS developer, you just need to write apps, and lots of them. Experiment, try different things out, and more importantly, buy a few really good iPad and iPhone apps so you can see for yourself the design patterns that make good apps, and those that make poor apps.
More than that however is knowing how to implement tiny techniques. It’s the tips to get you started on animations or laying out UITableViewControllers, or perhaps how to do that tiny bit of custom drawing you need. It’s also the libraries and 3rd-party modules that fill in the gaps in Apple’s SDK, such as handy progress indicator alert classes, or easy-to-use async HTTP libraries. Knowing a few key points can take you a long way toward building your first few apps, and in the process you’ll learn more than if you were to take a class.
I usually keep my bookmarks organized using Delicious.com, being one of their early adopters (back when their domain was del.icio.us). Check my iPhone tag on Delicious to see my full list of links that I found bookmark-worthy. For a more decisive list that isn’t sorted chronologically, here’s my breakdown of some of the better sites to find information on iOS mobile development.
iPhone Core Audio Part 1 – Getting Started
Tim Bolstad’s first in his three-part series on Core Audio on the iPhone.
iPhone Core Audio Part 2 – Setting up the AUGraph
Second installment from Tim Bolstad on Core Audio.
iPhone Core Audio Part 3 – Audio Callback
Final installment from Tim Bolstad on Core Audio.
Core Audio Brain Dump
Excellent brain-dump from a Core Audio guru on pitfalls and tips on using Core Audio.
Data & Databases
The UI library used in the Facebook and many other apps. It certainly has its place and can make developing the initial release of an app quite a lot quicker. Certainly it’s useful for developers who think in terms of arranging an app using URLs.
If you deal with HTTP connections to the outside world, this library is an absolute must-have! It is far easier to use than Apple’s default support, and this package also includes a number of helper classes for dealing with Amazon S3, Rackspace Cloud, form posts, bulk / queued uploads, and more. I can’t recommend it enough!
Hardware-accelerated 2D game framework, based on OpenGL. Most games (e.g. Angry Birds, Trainyard, etc) use this.
One of the many JSON parsers for iOS.
Library for making it easy to write parsers in Objective-C.
Facebook SDK for iOS
The official library for interacting with Facebook.
A graphing and charting library for iOS.
This alternative to the standard UISplitViewController adds more behaviours and patterns than the standard controller provided by Apple supports.