Making Apps

Posted by Jason on June 23rd, 2011


This is some of the code behind Preflight, my first iOS app.

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.

9 People are talking. Say something »



Make Your Film Work

My name is Jason. I have 8 years of freelance experience editing and shooting videos. I'm also a Mac and iOS developer.

Let's Work Together

Looking for Something?

Feeds for your Consumption

Pictures on the Tubes

Talk on the Tubes

via Jason Hawkins' Twitter