Twice while living in Kansas I attempted to learn Objective-C and Cocoa. Getting past the first few chapters was pretty mind numbing. It didn’t really have anything to do with the difficulty curve. I already knew other languages—Python, Javascript—and didn’t really have a reason to learn something else.
The third time I tried was early 2012 when I started reading iOS Programming. This time I needed a project or I’d fail yet again. Picking a project at the time was pretty easy. My friends and I were having fun with Snapchat but there were some things I wanted to do differently so I spec’d a few things out and used it as my starter project.
Every morning I’d sit on my little balcony with an espresso and this book. First I’d read through a couple chapters then I’d read through each one again with my laptop to build out the examples. This learn then do process turned out to be the best way work through the book.
Once I felt comfortable implementing parts of my side-project I would build out the inbox then the camera flow. The chapter on Archiving taught me how to save content so the data wouldn’t disappear when the app was force-quit. It took me a few months to get to a place where I had something I could actually use. Over some coffee one Saturday I used this tutorial to learn how to do push notifications and adapted this the tutorial to use Python instead of PHP. That was fun!
Later in the year some friends found out about my little side project and we decided it would be fun to build out and share with more people. It came together very quickly and we learned a lot along the way. We called it Poke.
Lately I’ve been spending most of my time building out little prototypes as a means to test out ideas for other projects. Mastering Views and gaining a solid understanding of animation has made it easier to express different interactions. Creating snippets to fit my workflow turned out to reduce a lot of repetitive typing and save time. Sharing prototypes isn’t easy though, the best thing out there is this but it requires people to have a developer account and a basic understanding of Xcode. It would be great to point people to a URL so they could download an app just as easy as loading a webpage.
It’s admittedly not the easiest way to build prototypes but it’s more fun than anything else I’ve used in the past. If you’re at all curious and have something you want to build you shouldn’t be afraid to learn iOS.