Learning iOS Development : Tips & Suggestions

I made the mistakes so you don't have to.

Published Nov 6

Want to develop an iOS app? Not sure where to start? Well, here are a few tips and suggestions that I think may help you on your way.

Should I learn Obj-C or Swift?

I see a lot of people asking this and I think its fair to say that you need to know objective-c. While ultimately Swift will be the defacto iOS progamming language, it is still in its infancy. Moreover, objective-c has years of documentation and QA published on the internet. Any legacy apps you may have to work with will all be in Obj-C. Have a problem you can't solve in objective-c? Well, you're way more likely to find the answer online than if you were coding in Swift. Plus, there's more to iOS development than just the programming language. Cocoa touch, familiarity with xCode, the appstore submission process, etc will all be easier to navigate and learn while learning objective-c.

Where to start

Start Developing iOS Apps Today - Apple's very own getting started guide. A great place to start and to get your hands dirty. Won't take you very long to get through and leaves you satisfied with a nice to-do app you can play with at the end.
Time: 3 hours.

Developing iOS 7 Apps for iPhone and iPad - Stanford's course on iTunes was an absolutely incredible resource for learning iOS. They start off with you expecting a bit of knowledge on Object Oriented Programming + MVC, so if you're unfamiliar with those, I'd suggest doing a bit of homework before hand. I would strongly recommend rewriting everything he writes in class on your own computer. Also, don't skimp out by not doing the homeworks. Very comprehensive and an absolute fantastic resource. I still reference the lecture slides today.
Time: 1 month.

iOS Programming Subreddit Ordered By Top Ranking - Ranked by the subreddit community, this should basically be bedtime reading. Find anything you find interesting and read it, it'll help boost your knowledge.
Time: Ongoing

How to start a new project

Your first instinct in starting a new project is to just open a new project and start coding away, but you have to realize, a lot of the features you're trying to build may have already been built.

Use github's advanced search to find new/updated repositories. Save (star*) the ones you find interesting or potentially useful and think about ways you can integrate them into your project. Even better, clone them and examine how they work - there's a lot to learn from reading other people's code.

Check out Cocoa Controls for other premade controls.

What to Bookmark

WWDC Videos - Development instructional videos by Apple software engineers. This is as close to the source as you can get.

iOS Cheatsheet - a quick reference iOS cheatsheet. Ctrl-F those stupid string literals.

Objc.io - fantastic site with editorial style posts regarding iOS development. Most articles have extra links at the bottom at each article worth checking out for extra reading.

nshipster.com - another great site with lists of articles with typical design problems and patterns.

iOS Goodies - Updated list of interesting articles and modules. Worth checking weekly or signing up to newsletter.

And I think you should be set! Email me with questions/suggestions, I'd love to hear from you.