So You Want To Code iOS?

I thought it might be useful to share some opinions on resources for new and experienced iOS developers. While there are dozens of books and other resources available, I’ve found 3 that I use regularly.

Learning For The First Time

If you are just starting out, then there are two excellent resources available: books from Big Nerd Ranch (BNR) and Ray Wenderlich (and no, I’m not just partial to the Big Nerd Ranch because I used to work for the real, original “Big Nerd Ranch”, Bell-Northern Research, aka BNR, for several years).

Both feature well-organized texts that are easy to follow, build nicely from chapter-to-chapter, and are thorough enough without trying to explore every last little nook and cranny out of the gate. While there are other great books that you can use to augment your skills (Erica Sadun has some good books, and the O’Reilly Nutshell books can be very handy), the BNR and Wenderlich books are very good at walking you through the whole environment. You can skip around, or you can follow along chapter-by-chapter.

The BNR books are available digitally on Kindle and iBooks, as well as in print. The only downside is that, each time a new revision is released, you have to essentially re-purchase the book, and they aren’t exactly cheap. They are very, very good books, but you may find yourself skipping editions in the name of economy.

For the Ray Wenderlich books, they are also available in digital form and in print. The digital versions, though, are in the form of a PDF, which means you don’t have to depend on a vendor to stick around in the future. While I like Kindle books (and I buy a healthy number of them), I know I’m taking a chance that Amazon might not be around, or may deprecate their Kindle service. With PDF, I can read them on whatever I want, and I always have them (as long as I remember to back them up!). The other advantage of the Ray Wenderlich books is that you get free upgrades for as long as they keep coming out. Any updates, extensions or improvements that are made to a book are part of the deal.

Questions, Answers and New Topics

Once you’ve got the basics under your belt, two things are going to happen. First, you are going to encounter situations or issues that weren’t covered in your first go-round with whatever book or course you followed. Obviously, you start with Google, but most questions invariable lead to one place: Stack Overflow. This is a nicely curated site of answers to questions, and you likely will find that most questions you have will already have been asked and answered. While there are exceptions, most answers include code snippets that you can look at, or even copy and paste.

The other place to look for answers are the tutorials on the Ray Wenderlich site. Most are free, some coming in the form of text-and-example “step-by-step” tutorials, and some as videos. Either way, it can be a great way to get a solution or dive deeper into some aspect of iOS.

What will also happen is that a new Apple technology will come along, and you may want to learn it. Again, this comes back to Ray Wenderlich for me. Between the tutorials and new volumes added to their library, it can be pretty easy to come up to speed on something new.

Other Resources

Apple has published a couple of books around Swift, as well as making their interface guidelines available on the iBooks Store. When I first looked at Swift, I used the Apple material (because it was all that was available at the time), but I found it was rather limited and didn’t dive “deep enough”. Meaningful examples and tutorials were basically absent. I still refer to them from time to time, since the Apple books on Swift are the definitive rules for the language. But I didn’t find their Swift book all that good in teaching me the language.

Obviously, there is the Apple documentation available inside XCode. Overall, I’ve found it to be readable and fairly easy to understand. The documentation is more than just a description of the classes and how they work. There are also guides with ideas, approaches to building things using Apple technologies, and how to best use what Apple provides. Apple sometimes provides sample projects that demonstrate their technologies, but they aren’t always diligent about keeping them up to date.

There are dozens (hundreds?) of other books out there on iOS programming. Some may be good, some not. There are many, many sites that provide tutorials and examples of various Apple technologies. Some are good, some less so. Some of that you will have to find out on your own.

But what I have found is that what works for me may not work for you. Not everyone learns the same way. When approaching a new platform, I generally prefer books where I follow chapter-by-chapter, in order, with apps that are built up over time. I don’t mind doing some of the repetitive bits (create a new project, type in some boilerplate) to start, because it gets me familiar with the tools, the environment and the “typical workflow” for that platform. What I hate are books where the examples are incomplete or incorrect (or just flat-out don’t work), and where the order of things is jumbled or nonsensical.

Technology has gotten more complex over time, and building software for that technology has also become more complicated. Fortunately for us, the resources available have also increased in volume and sophistication. There’s lots out there to help.