I have compiled the following resources based on my own experience and what I believe would be an effective learning path for beginners to get up to speed on iOS development.
Start with the free iOS courses available at Udacity. They are not only fun and engaging but at the end will help you build 4 resume-worthy demos that you can showcase.
- Intro to iOS App Development with Swift: https://www.udacity.com/courses/ud585
- UIKit Fundamentals: https://www.udacity.com/courses/ud788
- iOS Networking with Swift: https://www.udacity.com/courses/ud421
- iOS Persistence and Core Data: https://www.udacity.com/courses/ud325
Additionally the following iOS specific free courses from Udacity are also recommended:
- Learn Swift Programming Syntax: https://www.udacity.com/courses/ud902
- Grand Central Dispatch (GCD): https://www.udacity.com/courses/ud576
- Xcode Debugging: https://www.udacity.com/courses/ud774
- How to Make an iOS App: https://www.udacity.com/courses/ud607
Time commitment: X months depending on your commitment
2. Ray Wenderlich
While taking the Udacity course, visit Ray Wenderlich http://www.raywenderlich.com/tutorials from time to time. Pick a topic or article that interests you and go through it.
The idea is, instead of going through everything available from A-Z, you pick something of interest and thoroughly explore it. Each article is on a particular topic and the time-investment is at most a few hours (in contrast to going through an entire book or course).
Time commitment: X hours depending on your commitment
The problem that I have experienced in learning any new technology is information retention. I found the above 2 techniques work well for me because:
- One path explores the area comprehensively with loads of relevant industry-specific projects, materials, demos, practice, quizzes, etc.
- Another path runs in parallel, diving deep into topics of personal interest for short sprints.
3. Stanford U.
Update, Jun 6, 2016: The latest course from Stanford U. “Developing iOS 9 Apps with Swift” can be found here: https://itunes.apple.com/us/course/developing-ios-9-apps-swift/id1104579961
Once the Udacity courses are done, take the Stanford U. course CS193P available for free on iTunes (https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099) for upping your game-level on iOS development. Some special highlights of the CS193P course that I found interesting were:
Using enums, structures, protocols, property observers, optional chaining, GCD, code re-use, OO design, MVC, autolayouts, iPhone/iPad compatibility, avoiding memory cycles, animations, internationalization, programming insights, well-designed assignments and much more. Using these in practice and specially in correct form as expected from a Stanford U. course, will definitely make you a better developer.
4. Additional Resources
Then further sharpen your axe, polish your skills and stay up-to-date with:
- Ray Wenderlich (again) http://www.raywenderlich.com
- WWDC videos https://developer.apple.com/videos/
- NSScreencast http://nsscreencast.com
- NSHipster http://nshipster.com
- Objc.io https://www.objc.io
Useful for practicing algorithms in Swift for coding-tests/interviews. The sites below allow you to type the code solutions in Swift and run them online for evaluation.
6. Even More Resources
And here are even more resources added on request by the owners of the respective sites.
- MakeSchool: https://www.makeschool.com/
- SoftwareHow: https://www.softwarehow.com/best-blogs-for-ios-developers/