tags:

views:

650

answers:

10

How long does it take for an experienced Windows programmer to learn writing simple software for Mac OS X?

Where does one start and what tools will be necessary?

+20  A: 

THIS. I came from a Win32 API background programming lately a lot in C# and I was able to pick up on Objective-C and Cocoa very quickly by working through the book. You will be pleasantly surprised, the APIs are very rich and just wonderful. Reflection is a first class citizen which makes things very easy.

Xcode is of course free and available on your Mac OS X installation disk.

Edit: it took me about 2 weeks to come up to speed and write simple applications. I think this is because the language and API are easy to learn and use and Aaron Hillegass's book was a big help.

cfeduke
+3  A: 

Start by checking out the Apple Developer Connection. There's a lot of documentation there. OS X comes with all the development tools you need to get started, just install XCode from the OSX CD.

Ferruccio
+1  A: 

I guess the "how long" question would depend on what languages you are used to using.

In terms of reference material, I have heard good things about "Cocoa Programming for Mac OS X", and I'd love to have time to play with it for myself. Unfortunately, the day job takes up enough of my time. :)

ZombieSheep
+4  A: 

You might want to check this post for info - pretty much a duplicate question to this one. Definitely just go with Xcode and I think you'll find the Mac community pretty helpful - I have, at least.

itsmatt
+2  A: 

I would start here:

http://www.cocoadevcentral.com/

It's a great site with good resources on learning obj-c and cocoa.

This is also a great book:

http://oreilly.com/catalog/9780596003012/?CMP=AFC-ak_book&ATT=Learning+Cocoa+with+Objective-C

jonnii
Yes, the samples on cocoadvcenral are great
Stephan Eggermont
+1  A: 

CS193E (from stanford) is a nice course. Lots of material. Really understanding the use of class clusters, delegation, etc. takes some time, getting started does not.

Stephan Eggermont
+1  A: 

"Step into XCode" is a great intro to the development environment; since the book works through taking a simple command-line linear regression program all the way to a fairly sophisticated application (Core Data, Spotlight importers, etc.), you'll learn quite a lot by osmosis.

Joe McMahon
+2  A: 

Well, first you get a hoodie and a smug sense of entitlement....

All kidding aside, the Aaron Hillegass book, a great idea, and the Apple doco are all you need to get started (oh yeah, and a Mac). I think the biggest barrier for me was figuring out Xcode since I come from a Visual Studio background.

How long it takes is a function of the level of your interest and your passion about your project.

The tools have come a long, long way since the days of Interface Builder in Mac OS X 10.0, that's for sure.

Robert S.
+1  A: 
  1. It's the little things... On Windows, I liked the PowerToy called "Open Command Here" that allowed me to open a DOS CMD window from Explorer and automatically set the current directory. On the MAC, I got "On My Command" which allows you to create simple macros easily, and comes with a library of useful ones, like "Open Terminal Here", "New text File...", etc.
  2. Install Eclipse. I loved using Eclipse on Windows, and it works great on the MAC, making me feel right at home. I even found that Eclipse has plugins for Perl and ActionScript.
  3. Learn Unix (if you don't know it already). I had years of Unix experience prior to programming Windows, and it comes in handy. Knowing Perl helps a lot as well.
  4. I started my new position last October, which was when I made the switch from Windows to MAC. By March I was fairly comfortable in my understanding of things. Then again, my development platform is AS2 and AS2 in Flash, which is cross-platform.
Paul Chernoch
+2  A: 

An alternative is to try out the Qt SDK from http://www.qtsoftware.com, and write cross-platform applications that run on Windows, Mac and other platforms.

I started learning Qt when I joined Qt software, and it didn't take long for me to start writing simple software, even though I don't work as a developer.

Henry Haverinen