I'm keen to learn iOS development (just for fun/curiosity), am I better off going the Obj-C or Swift path?<p>From a quick search Obj-C obviously has a lot more learning material and tutorials, but Swift seems like it's going to be the "future" of iOS dev so might be better to learn now?<p>I come from a web background (LAMP, JS, CSS) if that matters. No CS background, this will be my first "real" programming.<p>Any pointers to the best learning material would also be much appreciated.
I think the best argument against swift is the plethora of knowledge, tutorials, stackoverflow answers there is for objective-c. When I started learning Unity in 2009, I wanted to use C#. Yet 90 % of all the tutorials, docs, etc.. was in javascript at the time. As I was fairly new to programming then, translating from javascript to C# slowed me down. In hindsight, if I just used javascript I would've progressed much quicker than I did. I think the situation within a year will be different, the iOS community is producing swift tutorials en masse. But I would advice you to start with objective-c.<p>The best iOS material is:
- Objective-C programming book from big nerd ranch or Programming in Objective-C from Stephen G. Kochan (more in-depth)
- cs193p from Stanford (iTunesU) iOS 7 course is objective-c. iOS 8 course (starting in 2015) will be swift.<p>After cs193p you should know enough to make apps.
If you want to be a great iOS developer, you should also learn:
- ios / cocoa design patterns
- cocoapods | git
- visit <a href="http://nshipster.com" rel="nofollow">http://nshipster.com</a>
- visit <a href="http://objc.io" rel="nofollow">http://objc.io</a>
- Learn from other apps source code: <a href="http://maniacdev.com/2010/06/35-open-source-iphone-app-store-apps-updated-with-10-new-apps/" rel="nofollow">http://maniacdev.com/2010/06/35-open-source-iphone-app-store...</a><p>Handy links:
Obj-C online reference: <a href="http://rypress.com/tutorials/objective-c/" rel="nofollow">http://rypress.com/tutorials/objective-c/</a>
Obj-C cheat sheet: <a href="http://cdn1.raywenderlich.com/downloads/RW-Objective-C-Cheatsheet-v-1-5.pdf" rel="nofollow">http://cdn1.raywenderlich.com/downloads/RW-Objective-C-Cheat...</a>
iOS tutorials: <a href="http://nscookbook.com/recipes/" rel="nofollow">http://nscookbook.com/recipes/</a> | <a href="http://www.appcoda.com" rel="nofollow">http://www.appcoda.com</a> | <a href="http://www.raywenderlich.com" rel="nofollow">http://www.raywenderlich.com</a> ! | <a href="http://nsscreencast.com/" rel="nofollow">http://nsscreencast.com/</a>
Trust me it won't make that big of a difference. The main work is in learning how to use the in built libraries. Swift is still in flux and so my advise is to start out with Objective C and learn to build a functioning app. Once you have a basic understanding get some swift under your belt as well.
Personally, i'd go with Objective C but it doesn't hurt to know both! In the end though, it won't make much difference at this stage, just get your head around the platform with whatever you feel more comfortable with when you take a look. There's more resources for learning Objective C right now. Good luck with whatever you choose.
Obj-C because you will eventually need to know it to some extent anyhow.<p>The quickest way to learn Obj-C is to write command line programs for Mac OSX. Maybe find source for a C or C++ hello world program and convert it to Obj-C. Once you are comfortable with the language then try writing a Mac application or iOS application.