It’s a strange time to be a beginner in the iOS development world. Before WWDC 2014, the learning path seemed to be much simpler. You learned Objective C. You found your way around the APIs you would need for your apps. You probably learned how to create interfaces programmatically because the guys at Big Nerd Ranch told you it would be better for you in the end, and because who uses Storyboards anyway? (Not real programmers, apparently).
Then WWDC happened. Swift happened. And now, you’ll no longer find the “Empty Application” template as an option in Xcode 6, because Apple wants you to use Storyboards. Apple wants you to use Swift. As a beginner, I have to decide where I want to invest my time: do I want to continue learning Objective C? Or should I switch gears and dive into Swift? Should I take the time to really familiarize myself with Storyboards or should I forget about them and hook up everything manually? After spending all summer sort of waffling about, trying to figure out what to do, I’ve come to the conclusion that Swift and Storyboards are indeed the way for me to go.
In a blog post about Swift & Objective C, Jessica Skeete writes, “At the moment, learning Swift as a newbie might feel like an English speaker learning French with only a Spanish dictionary.” I think that’s a good way of putting it. To stick with that analogy, I feel like I’ve finally learned enough Spanish (Objective C) to be able to piece together the French (Swift).
Neither language is particularly difficult to understand. Actually, I think the hardest part of learning iOS development is not learning the language(s); it’s becoming familiar with all of the APIs. It’s difficult for me to select the best solution to a programming problem when I don’t even have a firm grasp of what’s possible. I know there are hordes of useful methods that I don’t even know exist, and that’s what seems so daunting. And it’s not like I can even read through the documentation when I’m doing something boring like waiting at the doctor’s office, because nothing in the dev center is optimized for mobile (in other words, it’s too teeny tiny, and the sidebar blocks content when you try to zoom in).
So yeah. Despite all of that, and despite the fact that being a beginner right now can be a bit weird and confusing, it’s also a really, really exciting time to be learning this stuff. In fact, with iOS 8 and Yosemite close to release and Apple poised to enter an entirely new product category, I feel safe saying that this might be the most exciting time.