Sam Soffes

iOS Resources

Posted on

If you’re new to iOS or are just learning, it can be tough to move forward when you’re stuck or discover what you should learn next. This is a list (in no particular order) of things that should help.


Dash is a great tool for documentation. Apple’s built-in documentation isn’t bad, but Dash is great. It gives you tabs and much better searching. It can do documentation for tons of other stuff too.

I set the keyboard shortcut to launch Dash to the default one to launch Xcode’s documentation in Dash’s preferences and then change Xcode’s to something I’ll never press in the Key Bindings preference area. Best thing I’ve done in awhile. My friend Caleb Davenport got me hooked on Dash.

There’s even fallback searches. So if you search for something, it can show you Stack Overflow or Google.

Stack Overflow

Stack Overflow is a great place to ask for help if you get stuck. If you’re having a problem and Google it, there’s a good chance once of the first links will be Stack Overflow with the answer.

If you ask a question, try to break down the problem as much as possible so people can understand and answer quickly. If you post code, only post what’s relevant. No one wants to read a huge chunk of code. Most importantly, be sure you’ve searched before asking. A little resourcefulness codes a long way.

If you can’t find what you’re looking for on Stack Overflow, expand your search to Google. Maybe someone has written a blog post about what you’re trying to do. It’s more common than you think.


NSHipster is a journal of the overlooked bits in Objective-C and Cocoa. Updated weekly.

This is a great resource. My good friend, Mattt Thompson, writes a new amazing article every week on something you probably didn’t know. I highly recommend reading all of this if you’re starting out.

Some of it is fun little things you’ll probably never use but are still neat. A good part of it is stuff you never knew about but are super handy.

If you’re not familiar with Mattt. Check out his GitHub profile. He is a madman when it comes to open source. He has released tons of useful stuff. At least follow him on Twitter.


CocoaPods is the dependency manager for Objective-C projects. It has thousands of libraries and can help you scale your projects elegantly.

I’m a big fan of CocoaPods. It makes adding third-party code to your projects really simple. Check out their getting started guide to get going. There is a huge community around open source libraries.

Also checkout CocoaDocs. You can get documentation for the pod if the author has written some. You can even add the documentation set to Dash!

Apple Developer Forums

The Apple Developer Forums are sometimes a good place to get help. Apple engineers even answer stuff here and there. Personally, I haven’t had the best luck here except for pre-release things. Since you’re not allowed to talk about pre-release iOS stuff, the dev forums are the only place to go.

You just need a free Apple Developer account to get going here.


Personally, I’m not a big fan of reading. I don’t have the patience for it. I did learn Objective-C and Mac development from a book way back in 2006 though. That book was Cocoa Programming for Mac OS X. There is an iPhone version called iOS Programming that I’ve heard is good. I haven’t read it myself since it came after I had started.

The author, Aaron Hillegass, is a pretty cool guy. He used to teach programmers Objective-C at NeXT. This guy knows his stuff and is a really great teacher.

Aaron Hillegass has another book called Objective-C Programming that looks pretty good. I haven’t read this one either.

All of the other iOS books I’ve flipped through didn’t really impress me. It’s hard to get books on iOS for anything other than just starting since things change so fast.

I’d recommend mainly sticking with online resources.


If I can impart anything to you: a little resourcefulness codes a long way. Seriously. Once you can learn how to teach yourself something, you’ll be unstoppable.

I constantly have Dash open to read the documentation. Don’t feel bad if you can’t remember everything. No one can. There’s too much. Don’t even try to memorize stuff. Eventually, you’ll start to remember things you use a lot.

This stuff is hard. Don’t quit. Push through. You’ll be glad you did.

This content was originally intended to be part of a chapter in the Execute iOS book, but it never got released. I’m no longer involved with Execute iOS any more.