Apple recently announced and released a new development language for iOS, Swift. It promises to drastically improve the development process for Apple products, and by all early counts, it's delivering. As a developer there's never been a better time to jump into iOS.
That said, as Head Instructor for Lighthouse Labs, this leaves me in a precarious situation. We are about to launch our iOS bootcamp, and until recently our curriculum had been based around Apple's current language, Objective-C. Obviously, that's something that I needed to revisit. In doing so, I had three major considerations:
1. Our bootcamp focuses on "Hireability"
Programming languages take time to mature and get adopted. As great as Swift is, the reality that nearly every iOS project right now is written with Objective-C. I've spoken with employers, and they will continue to look for iOS developers that can work with Objective-C. We take pride on our 100% placement rate for our graduates. If we were to only teach Swift, not only would students have grim employment prospects, they would miss out on valuable mentorship from senior iOS developers because they just wouldn't speak the same language.
2. Nobody really knows Swift yet
I love this tweet, which came out when Apple first announced the language at WWDC:
Recruiters: Now looking for engineers with 5 years of Swift experience!— Paul Stamatiou (@Stammy) June 2, 2014
Our Head of Marketing would love for me to say that we run a "Swift Bootcamp" now, and some schools might even claim that. But the truth is a little more nuanced: we at Lighthouse are new to Swift like everyone else, but we are still the best way for you to learn to develop for iOS. That's because the focus for the curriculum has always been on teaching students to think like a developer, and to having them learn how to learn. These skills will transfer to any language.
3. The Language is only 10%
Learning to be an iOS developer is less about learning the language, be it Obj-C or Swift, and more about learning the iPhone SDK, the developer ecosystem, good software design patterns, working with the constraints of a mobile device, architecting your code with good design principles, etc. Most of your time building is spent learning the other 90%. Once you learn Objective-C then learning another language - particulary for the same platform - becomes rather trivial. And our iOS graduates wouldn't be alone in having to learn Swift either.
Don't get me wrong... Swift is awesome
I'm as excited to learn the nuances of Swift as I am to teach it. One of the reasons for this is Swift carries over a lot of the functionality of Objective-C, just improved. Improvements such as cleaner syntax and the REPL debugging console will make learning to code for iOS smoother for new learners and Objective-C veterans. Essentially, developers will be driving a car through the same city, but it will be a Lamborghini instead of a Toyota Camry.
So, what does the new iOS program look like?
Our iOS bootcamp will be a 8-week course like it always was, and now 7 weeks will be centred around learning the essentials of coding based on Objective-C, and the 8th week will be dedicated entirely to programming in Swift. Any redundancies that Swift does not carry over from Objective-C will be minimized. This will ensure students have the most reliable and relevant base of coding skills. And remember, as our students will attest, one week at Lighthouse Labs is like two months of traditional education. I'm confident that at the end of the 8 weeks, graduates will have the skills they need to build the app they dream about right away, and the tools for succeeding as an iOS developer moving forward.