
Programming in Objective-C is a concise, carefully written tutorial on the basics of Objective-C and object-oriented programming. The book makes no assumption about prior experience with object-oriented programming languages or with the C language (upon which Objective-C is based). And because of this, both novice and experienced programmers alike can use this book to quickly and effectively learn the fundamentals of Objective-C. Readers can also learn the concepts of object-oriented programming without having to first learn all of the intricacies of the underlying procedural language (C). This approach, combined with many small program examples and exercises at the end of each chapter, makes it ideally suited for either classroom use or self-study. Growth is expected in this language. At the January 2003 MacWorld, it was announced that there are 5 million Mac OS X users and each of their boxes ships with Objective-C built in.
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.
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 http://nshipster.com - visit http://objc.io - Learn from other apps source code: http://maniacdev.com/2010/06/35-open-source-iphone-app-store...
Handy links: Obj-C online reference: http://rypress.com/tutorials/objective-c/ Obj-C cheat sheet: http://cdn1.raywenderlich.com/downloads/RW-Objective-C-Cheat... iOS tutorials: http://nscookbook.com/recipes/ | http://www.appcoda.com | http://www.raywenderlich.com ! | http://nsscreencast.com/
I used to do just Java and knew no C or C++. Below are the references that best helped me to understand the programming philosophy of Objective-C (it's easy to learn the syntax, but why code is being written a certain way is different).
Programming in Objective-C (5th Edition) by Stephen Kochan http://www.amazon.com/books/dp/032188728X
CS193P: Developing Apps for iPhone and iPad (Stanford, via iTunes U) https://itunes.apple.com/us/course/coding-together-developin...
If you've never programmed in C, you may want to seek out a good C tutorial. You can get pretty far in iOS working only with Objective-C objects, but plenty of C-isms leak through so it helps to be familiar with pointers, structs, functions and memory management.
Objective-C isn't too hard to get up to speed with, especially if you've ever worked in both C and a dynamic language like Python or Ruby. Wrapping your head around Cocoa Touch is a little more daunting, but Sadun's book does a good job of building up the basics step by step, then providing chapters on specific frameworks you can page-fault in as needed.
Apple recently added "Start Developing iOS Apps Today" https://developer.apple.com/library/ios/#referencelibrary/Ge... which is probably worth taking a look for a beginner.
There is also a free course for iPhone programming from Stanford (video lectures).
MonoTouch is a good alternative if you prefer to use C#, but you will need to pay 99$/year to Apple + 399$ for Monotouch. The good thing is that you can evaluate MonoTouch and pay after you are comfortable with the tool.
RubyMotion is too young to be used in a large application. Also learning Ruby and Cocoa in the same time can be difficult. I think RubyMotion is a good fit for an experienced Ruby programmer that wants to start coding on iOS. Another potential problem with RubyMotion is that it is currently developed by a single person, which can be problematic on long term.
That been said, muy advice is to go on the Objective-C route since you are already comfortable with C. Objective-C is a small language and an experienced C programmer can be up to speed in a matter of days.
The real challenge is in learning the iOS libraries and not the programming language.
The Apple's documentation is also pretty damn good and I also use Stackoverflow.com/google a lot when I need to understand something with other prespective