For a developer that wants to start developing software for Mac OS X, what is the best way to get started?
|
As thephpdeveloper stated, the first step is to get a Mac. There is no software development you're going to be able to do on a PC. Next, you need a Apple Developer Connection account. The basic level is free, and grants you access to most of Apple's resources and developer software. One document there I think you should read before doing anything else is the Apple Human Interface Guidelines: it's far more important on Mac OS X than it is for other operating systems (see below). Additionally, you should get a good book on Cocoa and Objective-C. I used Aaron Hillegas's Cocoa® Programming for Mac® OS X to learn Cocoa, but it's getting pretty out of date. A new edition should be coming with Xcode 4. For other ideas on reference books, check out the question Cocoa and Objective-C resources? on Stack Overflow. Finally, a large part of developing Mac OS X software is embracing the culture: subscribe to Mac-centered blogs like TUAW, Daring Fireball, AppleInsider, and Cult of Mac. They're not going to give you insights into how to code for Mac OS X, but over time they will tell you what Mac users have come to expect from software. That is, a large portion of maintaining goodwill and executing successful Mac software comes down to meeting and exceeding your user base's expectations. Your software could do everything imaginable, but if it doesn't have the same user experience and general attention to detail as the rest of the Mac ecosystem, people will hate it. |
|||||||
|
|
If we're talking about .NET, you really ought to take a look at what the guys over at the Mono Project are up to. They've done some incredible work with the iPhone (MonoTouch) and native OSX development via MonoMac. Of course, you'll need to pick up a Mac (may I recommend the MacBook Pro) in order to use any of the tools. If you have projects that you want to port from .NET to Mono, you can use a tool called the Mono Migration Analyzer or MoMA. Either way, it's a great way to leverage your C# skills across multiple platforms. |
|||
|
|