views:

107

answers:

5

How hard is it to go from C# and Visual Studio to Objective C and Xcode?

I am currently doing the Stanford iTunes course - any other suggestions?

+2  A: 

"How big of a jump will it be to go from C# to Objective C"

http://stackoverflow.com/questions/2641210/how-big-of-a-jump-will-it-be-to-go-from-c-to-objective-c

Mike Weller
+3  A: 

I did C# in Visual Studio before, too. For me the hardest part in moving was Objective-C's syntax. What helped me the most with that was Cocoa Programming for Mac OS X by Aaron Hillegass. The book is definitely worth it. I did the Stanford course after reading the book and for me that was the better order, I think.

hth
–f

flohei
Is this book not better: http://www.bignerdranch.com/book/iphone_programming_the_big_nerd_ranch_guide
Sorry, I don't know, I didn't read that one.
flohei
The iphone book would be better if you never want to write Mac apps, and only want to write mobile iPhone/iPad/iPod apps.
Warren P
+1  A: 

When I started Objective-C I had a background in C, Java and C#. Using Hillegass's book, I was up to a speed in a week, by which I mean I could create a simple non trivial application.

However, it took a little longer to fully grok IB and the relationship between nibs and the classes you create. I also found the limited set of collection classes a problem at first (coming from Java) and the syntax of method naming overly verbose. However, I've come to prefer the Objective-C way over other C based languages.

JeremyP
Thanks your comment was helpful but I don't have a 15 reputation ;-) to set it as helpful
Not to worry, the answer you accepted and the one that recommends Hillegass were both more deserving than mine.
JeremyP
As were the others, now I have read them :)
JeremyP
Did you read the MacOs book or the iPhone book by the same author? I am thinking of getting the iPhone one
I read the Mac OS X book because I mostly program on OS X. I guess if you are planning on targeting iPhone, the iPhone book would be better, but I haven't read it.
JeremyP
+1  A: 

Coming from another language myself (not C#) to Objective C, I found I had to spend extra time "unlearning" certain things. If you intend to write apps for the iphone and ipad as your tags suggest, you will have to learn the older reference counted (non-garbage-collected) memory model for objective C. The Hillegass book, and the Apple documentation are the two best sources of information.

You should pay particular attention to the allocation and reference-counting "rules" advocated by Apple. This creates a "design contract" between you and the framework that you MUST observe.

See this:

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmRules.html

Warren P
Thanks for advice. I am still in the beginning stages, but from what I have seen in the course NSObject handles memory management?
NSObject defines the interactions you can do with any object, including release and retain. Release and retain are the two messages you send to ANY object to tell it to decrement or increment the reference count. You will not write applications that do not crash until you understand this idea of reference counting.
Warren P
+1  A: 

There are three things to think about when making the move to objective-c and iPhone OS development:

  • Learning how to use Interface Builder (even though it should be easy)
  • Keeping track of when and how to use the square brackets (everything is surrounded in [ and ] )
  • Learning the iPhone OS design patterns: target-action and delegation as especially important and you will find them repeated everywhere

Once you get a handle on those things everything else becomes crystal clear and getting more advanced becomes a matter of looking at the documentation since the same patterns are used throughout the iPhone SDK.

MattjDrake