Note: I include affiliate links to Treehouse in this post, but they didn’t influence any of the content. I realized after I wrote the post that they had a program, so I figured hey, why not. Also, I may be doing some more posts on iOS development soon, so keep an eye open here.
A few years ago, I got into iOS development, and spent quite a while learning to program iPhone and iPad apps. I occasionally get people asking me what I did, and what they should do to learn, so I thought I’d make a definitive list of things I recommend.
I’ll try to highlight the main decisions you’ll have to make, and give you a couple of options – some that cost a small amount of money, some free.
Step 1: Book vs. Video Training.
So, the two methods I would recommend are to learn through books, or through videos. You can of course combine the two, which is an effective choice, but here are my thoughts on each:
There are many, many books on all aspects of iPhone/iPad programming, and I’ll cover the best later.
Videos are seductive, because it feels like you can just sit back and let the information come to you, instead of actively reading.
Videos are a great way to learn stuff, the only thing I would say is that you have to pay attention. If you’re sitting and watching a screen, it’s very easy to zone out and not pay close enough attention, and this could mean you miss an important point and have to rewind later.
There can also be an issue with the speed of the teaching. If you’re a beginner, some videos might be too fast for you, and if you’re a bit more advanced, some can be too slow.
Videos also aren’t as easy to use as a reference later, so I’d personally recommend using them if you want, because they are great, but also you should plan to grab at least one book for reference.
Paper Book vs. Ebook:
I love Ebooks, and I buy a ton of Kindle books, but for programming, paper probably has the advantage. It costs a bit more, but you’re able to flip back and forth between chapters and subjects quickly.
If you do want to use Ebooks, I would highly recommend checking out O’Reilly’s Safariweb, which is essentially Netflix for computer books. You pay a monthly fee, but get access to almost every computer out there, not just O’Reilly ones.
If you’re doing Ebooks, and you only plan to learn iOS programming, I’d stick with just buying a few Kindle books, but if you also might want to look at some books on other computer subjects, give Safariweb a whirl.
Which videos to use?
For videos, I mentioned my two main choices were iTunes U, or TeamTreehouse. I’m going to narrow those down more now, depending on your general skill level.
If you are a beginner to computer programming, I recommend TeamTreehouse videos. There is a subscription fee ($25/mnth as of this writing), but they’re done extremely well, and if you put in the time, they are great value.
I haven’t been a Treehouse member for a while now (and I was using it largely to brush up on some other subjects, although I did watch the iOS videos), so I’m not up to speed on the extra stuff they’ve added lately, but it looks quite good! I know they have a lot of career stuff built-in, and I assume they are making some money by trying to place their members in jobs somehow, so being able to use those facilities with them might be a great bonus.
They also have some new features on their $50/mnth plan that look very compelling (extra video content including interviews, tutorials, etc.) I’d give those a look, but you probably don’t need them to start – you’ll know if they apply to you basically.
Also, as I alluded to, one of the great things about the site is that they cover all the modern technologies that most people want to learn. If you’re a web developer who is looking to make iPhone apps, you might still be interested in watching their videos on jQuery or Ruby on Rails, etc. So that’s a nice bonus.
If you already know some computer programming, I would still recommend Treehouse – they are fine for intermediate users. I also would recommend the Stanford University lectures by Paul Hegarty. This guy is an excellent speaker, and the course is free. If you have access to iTunes U (I think all you need is iTunes), it’s well worth checking it out. If you can follow everything well enough, you’ll probably quite enjoy it.
With the Paul Hegarty course, make sure you get the most recent one, Stanford has updated it a few times, and may update it in the future. Here’s a little clip of him breaking from the course for a few minutes and talking about Steve Jobs, who he worked with at NeXT:
Which Books To Use?
So, when you learn to develop for iOS, you are going to need to learn 2 things:
Some books will cover both, and some just cover one. The 2 books I used when I started were:
Programming in Objective-C – This has to be the go-to book for learning Objective-C. It’s very well written, and it does cover iOS stuff a bit, so the examples can be run on an iPhone or iPad.
Beginning iOS 6 Development – I used an earlier edition of this book to learn the iOS SDK, and it’s great. Very well written, and of course covers everything you need to make a wide variety of apps.
So personally, I’d say it was more than fine to use those 2 books, but there is one more I thought I’d mention:
Programming iOS 6 by Matt Neuburg looks quite good, and seems to start with Objective-C, and then moves on to the iOS SDK after that. It’s almost 1200 pages (!) so I can only assume it’s quite comprehensive.
The reason I mention that book, having only looked through the start of it a bit (using the Kindle free preview), is that it looks very all-in-one as I said, but also, I read a book by Neuburg on REALbasic, many many years ago, and it was fantastic, one of the best computer books I had read, I remember telling people that. REALbasic was a very cool language/environment for making desktop apps, and it’s very easy to assume that if Neuburg was good at teach REALbasic, he should be good at teaching iOS stuff.
So I feel like I’ve probably written enough here. My closing thoughts: It doesn’t look like there are too many bad books or resources out there, and whatever you end up doing, your only impediment to success is the effort you put in. If you really concentrate as you learn, and you spend a lot of time trying things, and following examples and tutorials, you will learn to program iPhone apps (and/or iPad apps.)
Let me know if you have any questions, thoughts, etc!