Making Apps

I’ve gotten a few questions from friends and strangers about how I went from making videos to making iOS apps. Specifically, I’m asked what resources I used to get up and running in the first place.
To be clear, before August of 2010 I didn’t really have any programming experience. I worked in XHTML and CSS2 between 2007-2009. Around the same time I dabbled in learning Ruby on Rails (which was a complete failure). I’ve had an interest in programming for years, but every time I tried to entertain the thought I quickly became overwhelmed with how hard it was.
And it is hard. Really hard. In fact, it’s still hard. But it’s worth it.
Here’s how I got started.
One of the best technical books I’ve ever read is Beginning Mac Programming by Tim Isted. Tim, it turns out, is a fantastic writer. Also, don’t be scared that the book is about Mac programming and what you want to do is iOS. Tim teaches you valuable conventions and best practices that you’ll use in iOS development too.
As a person who previously had no concept of object-orientated languages, memory management etc., I couldn’t have asked for a better resource to help me get started. I loved this book.
If you get through that and you’re interested in learning more about what kind of neat things you can do with the iOS APIs, I’d recommend Head First iPhone & iPad Development by Dan and Tracey Pilone. Now in its second edition (I have the first edition which, unfortunately, was already out-of-date when I read it) this book doesn’t teach you to program. Instead it teaches you to work with the iOS-specific stuff. It’s a great tool to rapidly expand your skill set after getting the Objective-C language and conventions down.
It goes into some detail about working with web services, location-aware applications, animated user interfaces and so on.
One note though, I actually read this book first which was a big mistake. Since I knew nothing about Objective-C I had no idea what most of the code meant. This was a huge disappointment. After reading Tim’s book I reread most of the Head First book and had a much, much better time with it.
If you’ve finished those books and are looking for something exciting to get into (I chose Core Data), I’d advise against getting Marcus Zarra’s Core Data: Apple’s API For Persisting Data on Mac OS X (no link for this one). This might be the worst technical book I’ve ever read. It’s possible it’s just me. Maybe it’s a great book for other people. My experience with it was mostly unmitigated frustration and rage. If you’re looking for a Core Data book, maybe check out Pro Core Data for iOS by Michael Privat and Robert Warner. SO MUCH BETTER.
All of the books I’ve mentioned here are available in ePub except for the Head First book. Oddly enough, it’s still only available as a PDF. Kind of a bummer since reading technical books on an iPad vastly improved my learning experience. Being able to annotate something for later, or easily search for a term days after having read it, saved me a lot of time and headaches. Highly recommended.
Beyond the books I’d suggest making use and familiarizing yourself with developer.apple.com and devforums.apple.com. Both are indispensable tools you’ll come to frequent. The forums are part of a paid developer membership, but the iOS and Mac documentation is freely available. I found that reading Apple’s documentation was off-putting and frustrating at first. But now I love it. Mostly. There’s just so much information that it’s a little overwhelming when you’re starting out. And not knowing what most of anything means was really frustrating. But it’s like anything; if you stick with it you’ll start to pick it up as you go.
Another go-to resource is Stack Overflow. It’s a huge forum where programmers go to ask other programmers for help with things. As a bonus, if you format your searches like this: “[ios] UITableView” (without the quotation marks) you’ll be amazed at what you can find. The best part is that somebody has probably already asked the question you want answered. Spend some time there and you’ll probably find what you’re looking for. Stack Overflow is the first place I search when I run into a problem.
The last bit of advice I have is to seek out other people that are trying to learn this stuff too. Or, if you get lucky and can find somebody who’s already doing development, try asking them some questions. Most people are pretty friendly if you’re not a jerk about it.
And with that, I’d like extend an offer to leave a question for me here (which I’ll do my best to answer) or via email. My email address is jason at makefilmwork dot com. I trust you can sort that into a workable address.
I hope you’ve found this writing helpful.
Thanks for writing this up. I’m gonna start hunting down your book recommendations.
I do have one first question, did you read the books before ever touching any code. Or did you follow along with the book? I’ve always heard positive things for both sides, but I’m curious what your experience was like?
I always found it helpful to work along with the books. The Head First book gives you a ton of different activities to do — not just coding on a computer. There are puzzles to solve, crosswords to do. Stuff like that. When I got to those pages I would take a screen shot on the iPad, then take the photo into one of the image editors and just draw the answers on top of the screen shots. And that worked pretty well.
Anyway, I’d definitely suggest trying to do whatever examples they throw at you. I feel like the more you’re in it, the better off you’ll be.
Very encouraging. Cheers to expanding horizons!
Thanks, Yoko. Hooray!
Thanks a ton for writing this up Jason! I got “Beginning Mac Programming” and I’m already about 90 pages in. Really impressed with it so far even while having to mentally do some gymnastics to make up for the book using XCode 3 and having XCode 4 locally.
Nice work. I forgot that book only covers Xcode 3. The good news is that Xcode 4 simplified a lot of stuff. So if you get good at translating between the two you should be in pretty good shape going forward.
Hi Jason,
Great post. I’ve been dabbling with the notion of learning to make apps, but was trying to figure out where to start.
A couple questions:
– How long was it from the time you picked up the first book to when you released your first app?
– Did you carve out an hour or two each day to plug away at learning to code or did you just bulldoze through in big sessions?
Thanks again for the book suggestions.
Jason, nice write-up! Question though, do you read you books on the ipad as pdf or you have an app to read books? I don’t have an ipad yet but I’m looking forward to buying one.
Hi Scott and Juliano. Really sorry for overlooking these comments.
Scott, I think it was about 9 months between quitting my job and launching Preflight — a relatively simple app. I’m pretty sure even a moderately experienced programmer could recreate it in about a day.
I usually spent at least a couple hours each day reading out of books. I was still doing freelance video work at the time, so I had to split it up a little.
Juliano, I got as many of the books as I could in the ePub format, and read all of them in iBooks. A few were PDF. ePub is preferred on the iPad for its search and notation features. The PDF books were a little cumbersome since you’re basically panning and zooming a big image every few moments.