Sunday, December 28, 2014

August #TMIL - Getting Started with iOS

By August I wanted to get out of the browser and learn something entirely different! Although my journey began in anticipation of iOS 8's September release and the introduction of Swift in June, after reading tons of comments and discussions about whether to learn Swift, I decided to stick with iOS 7 and Objective-C at first to gain a better understanding of the entire iOS ecosystem.

I started with the Stanford iOS 7 class, but after the first few assignments couldn't adjust to the course's style and pace, so began again with Code School. One intellectual crutch I used while learning Objective-C was to compare it to Ruby. After getting used to the syntax, which isn't so terrible after all, it's all just objects sending messages to one another, class and instance methods, and MVC setup in iOS (which the Stanford course stressed; I'm also curious about MVVM). By the end of iOS 7 in Action, things started to click. I'm hoping for a similar iOS 8 version; each chapter does an excellent job of walking through building a single-feature app, e.g. retrieving remote data for a Chuck Norris quotes app, managing photos and a tasks app using Core Data.

In October, my curiosity got the better of me and I began reading the Swift book and using playgrounds. Although I hadn't released anything in Objective-C, I'd seen enough to feel comfortable understanding it. The realtime feedback and feeling of a more modern language (the syntax, functional features, use of closures) made it an easy switch. Along with the reference book, I've found the tutorials on the excellent www.raywenderlich.com to be supremely helpful. And don't miss the WWDC 2014 videos (they make excellent subway time killers!).

I plan to continue my adventures in Swift and hopefully get something into the app store next year. Now that I'm semi-proficient in the language and know my way around Xcode and building basic apps, it's time to learn about testing, get over the hurdle of really understanding AutoLayout, and continue the relentless march of tutorials while having fun learning a new language.