As I just posted to 43 Things [a site that is sadly now dead — Ed.], I finally shipped my first public iPhone app, so maybe it’s time to look back at this journey and see how it’s gone so far.
It seems like there’s always more and better to learn, but I learned enough to actually ship an iOS app for sale in the App Store, so I’m calling this a win.
How I did it:
I can see several keys to my eventual success:
- Stick with it. Even though I was learning in spare hours here and there, continuing to attempt progress certainly helped.
- Find a support group. The assistance and encouragement of my local NSCoderNight group was invaluable. People really do want to help those who are trying to help themselves.
- Read a lot. I read numerous books and web articles about the things I wanted to learn. It didn’t always sink in the first time, but reading other books and articles on the same subject, with different wording and a different perspective, really helped it sink in with repetition and context.
- Take time off. I found the real way to boost my learning was to take some time off from my job to concentrate on that and that alone for a week or two.
- Write an app that you’re passionate about. Even when I didn’t feel I knew enough to write an app yet, the act of writing an app forced me to learn what I needed to do to get the app done, and really sped things along. The three weeks I took off work to code all day and put my first app out into the world was the best boost to my programming knowledge so far.
Lessons & tips:
I think I covered most of those above. Still, my biggest piece of advice is to figure out what app you’re passionate about building, and build that. You’re not going to be nearly as engaged in learning if you’re just building some boring tutorial app.
- NSCoderNight — Find a group near you, and go to the meetings. Usually these are informal gatherings of people actually coding, and asking the occasional question. My local is NSCoderNightDC.
- If you want a more formal meeting with presentations and such, CocoaHeads or Xcoders may be your thing.
- The book that was the most help in learning Objective-C is Programming in Objective-C by Stephen Kochan. That book was the first (and only, at the time) to teach you Objective-C from scratch, instead of assuming that you are learning it as an add-on to your existing C knowledge. Since then, Objective-C Programming: The Big Nerd Ranch Guide, has come out, and I would also recommend it, despite a few moments where it assumes knowledge that you might not have.
- The book I found most helpful for learning Cocoa was Cocoa Programming for Mac OS X, from Aaron Hillegass of the Big Nerd Ranch, but if you’re going to concentrate on apps for iPhone and iPad, you might want to swap that out for iOS Programming: The Big Nerd Ranch Guide.
- If you’re curious, you can check out my first publicly released app, the Post Atomic Horror Unofficial Episode Guide for Star Trek.
Websites with articles and tutorials I found invaluable (plus a few newer ones):
- Mike Ash: Friday Q&A series
- Ray Wenderlich: Tutorials for iPhone/iOS Developers and Gamers
- Cocoa with Love.
- Cocoa is My Girlfriend
- Stack Overflow, which has become crazy popular in the last few years, and is often the first stop to search if there's something you're stuck on.
- @objectivec on Twitter — a resource I actually made for myself, to consolidate RSS feeds of Mac and iOS development blogs. It seems to have become rather popular.
- iOS Dev Weekly — a weekly round-up of iOS development news, by the great Dave Verwer
- objc.io, which started as free monthly magazine, and has since made the move to producing books
Some other books that I read over the course of my learning (updated, plus a few new ones):
- Learn Cocoa on the Mac
- iPhone 8 SDK Development: Creating iPhone and iPad Apps with Swift
- Core Animation: Simplified Animation Techniques for Mac and iPhone Development
- Core Data (2nd Edition): Data Storage and Management for iOS, OS X, and iCloud
- Learning iPad Programming: A Hands-On Guide to Building iPad Apps (2nd Edition)
- The Core iOS Developer's Cookbook (5th Edition)
- Tap, Move, Shake: Turning Your Game Ideas into iPhone & iPad Apps
- Advanced Mac OS X Programming: the Big Nerd Ranch Guide
- The Complete Friday Q&A: Volume I, by Mike Ash
- NSHipster: NSHipster: Obscure Topics in Cocoa & Objective C
Obviously, a lot has happened since I wrote this post — iOS is about to hit version 9, the new Swift programming language has been introduced, and I moved across the country to be the video producer at a Mac/iOS software company in Seattle.
Sadly, the new job has left little time for me to keep up with my own side projects, but I still keep a close eye on the iOS and Mac development world, since I deal with it every day at work.
I've updated the links above, and here are a few more resources, if you're looking to get started in Swift. That said, learning and knowing Objective-C is still an important skill to learn, since Swift is backwards compatible, and that means there's going to be a lot of Objective-C out there for years to come.