A couple of years ago I was a full stack web developer, from database to front-end. Then I had the opportunity to switch to mobile. Thanks to my mentor who pointed me to the best resources ever (Stanford University lectures), I could learn everything I needed pretty quickly and efficiently. It is now my turn to share with you what I believe are good references for beginners.
Unfortunately, learning a new language alongside with a new development environment and a different way of thinking doesn’t come overnight. Forget about the Matrix style, uploading iOS Kung-fu lessons right to your brain is not possible here. You will need to work and to learn it by yourself ;)
Luckily for you, there are a couple of great Jedi masters ready to teach the way to the Force to young Padawans like you.
Meet with the iOS Masters
The greatest of them all is a teacher from Stanford University: Paul Hegarty, whose lectures are recorded and available on iTunes U. These lessons are fantastic: you’ll see the teacher explaining iOS stuff to you with inserts of his premium quality slides and of the live demos he’s doing.
As they are recorded in a classroom, you’ll also hear questions from the students and the explanations by Paul Hegarty. However, you cannot ask questions yourself, there is no “customer service” here.
At the beginning it feels a bit funny as you are literally back to school. But it’s worth spending some time watching the videos as they are very up to date (latest OS version, language,…) and you may grab a few tips and tricks even if you are not a beginner anymore.
During this course, you will start from scratch (with general programming prerequisites, obviously), and learn everything you need to start developing apps in about 20 hours. Then it will be up to you to dig deeper in the documentation and stack overflow, yeah!
Also I found the demos extremely useful, because you have somebody to show you how to use XCode, and you can do it yourself at the same time (to be fair, the pause button is quite useful at the beginning).
There are also some other iOS Gurus out there, like Ray Wenderlich and NSHipster. These guys have beautiful blogs full of tutorials and news. They are unavoidable, every time you search for something, you will find them and it seems that they have an answer for everything. So go for it!
Objective-C vs Swift
One question you may ask yourself is: “I’m new to iOS should I learn Objective-C too?” Well, not necessarily, or at least not thoroughly. I think Apple is pushing developers towards Swift and for me it’s a good thing. And to be fair, it will be easier to learn Swift than Objective-C, especially when you know other languages. But I would recommend to learn at least the syntax, just to be able to read it, because you will still see a lot of Objective-C code on the web. Don’t worry, most of the method names are the same, it will be just easier to understand the resources you may find.
A picture paints a thousand words, well a line of code too:
// Objective-C [self.variableName isEqualToString:@"string"] // Swift variableName == "string"
Now you see what I mean ;)
Don’t think web, think mobile
One last thing before you go. If you are a web developer, try to think mobile, not web. It may sound trivial, but believe me, it isn’t! I guess you are a mobile user, so pay more attention to the apps you use and try to understand their workflow. Also, you will need to focus more on animations, especially between screens…
Alright, I think you’ve got all you need to start your journey in iOS (wonder)land! As always, when you learn a new language or start working with a new technology, it will be frustrating, but you know it will be rewarding too. So put on your “can-do” hat, and say “Hi” to the iOS family!