<p>I'd like to start experimenting with Cocoa and programming for Mac OSX.  I'm not terribly concerned with Objective C syntax/constructs/bheaviors at this point, but more curious as to an efficient setup on in terms of an editor and/or IDE that will get me going quickly.  Is there any IDE even remotely similar to Visual Studio (since that's where I've spent most of my time over the last 7 years) in terms of it's solution/project concept?  Any other tools, tips, suggestions and/or resources to get up and experimenting quickly?  </p>

<p>I'd like to avoid a lot of the intro stuff and get into things like "If you want to create an Mac desktop application, you can use <i>Acme IDE</i> and set up your project like this." </p>

<hr>

<p>I was afraid Xcode was going to be the answer! :P  I tried playing around with that -- literally just getting it off the DVD and just diving in with no idea what to expect (before I even knew that you used Objective C as the language).  I figured, the wise guy that I am, that I could just sort of fumble around and get a simple app working ... wrong.  </p>

<p>@Andrew - Thanks for the insight on those config settings.  Based on my Xcode first impression, I think those may help.</p>

[{'answer_id': 15691, 'author': 'Matthew Schinckel', 'author_id': 188, 'author_profile': 'https://Stackoverflow.com/users/188', 'pm_score': 0, 'selected': False, 'text': "<p>AFAIK, pretty much every OS X developer uses Xcode.</p>\n\n<p>That, and Interface Builder for creating the GUIs.</p>\n\n<p>FWIW, try to get hold of a copy of Hillegas's book, as it's a great introductory tutorial, and the reference Docs Apple provides really aren't.  (They are generally very good reference docs, however).</p>\n"}, {'answer_id': 15697, 'author': 'Andrew Grant', 'author_id': 1043, 'author_profile': 'https://Stackoverflow.com/users/1043', 'pm_score': 5, 'selected': True, 'text': '<p>I\'d suggest you pick a fun little product and dive in. If you\'re looking for a book I\'d suggest <a href="https://rads.stackoverflow.com/amzn/click/com/0321503619" rel="noreferrer" rel="nofollow noreferrer">Cocoa Programming for Max OSX</a> which is a very good introduction both to Objective-C and Cocoa.</p>\n\n<p>XCode is pretty much the de facto IDE and free with OSX. It should be on your original install DVD. It\'s good but not as good as Visual Studio (sorry, it\'s really not). </p>\n\n<p>As a long-time VS user I found the default XCode config a little odd and hard to adjust to, particularly the way a new floating window would open for every sourcefile. Some tweaks I found particularly helpful;</p>\n\n<ul>\n<li>Settings/General -> All-In-One (unifies editor/debugger window)</li>\n<li>Settings/General -> Open counterparts in same editor (single-window edit)</li>\n<li>Settings/Debugging - "In Editor Debugger Controls"</li>\n<li>Settings/Debugging - "Auto Clear Debug Console"</li>\n<li>Settings/Key-binding - lots of binding to match VS (Ctrl+F5/Shift+F5,Shift+Home, Shift+End etc)</li>\n</ul>\n\n<p>I find the debugger has some annoying issues such as breakpoints not correctly mapping to lines and exceptions aren\'t immediately trapped by the debugger. Nothing deal-breaking but a bit cumbersome.</p>\n\n<p>I would recommend that you make use of the new property syntax that was introduced for Objective-C 2.0. They make for a heck of a lot less typing in many many places. They\'re limited to OSX 10.5 only though (yeah, language features are tied to OS versions which is a bit odd). </p>\n\n<p>Also don\'t be fooled into downplaying the differences between C/C++ and Objective-C. They\'re very much related but ARE different languages. Try and start Objective-C without thinking about how you\'d do X,Y,Z in C/C++. It\'ll make it a lot easier.</p>\n'}, {'answer_id': 15727, 'author': 'JamesSugrue', 'author_id': 1075, 'author_profile': 'https://Stackoverflow.com/users/1075', 'pm_score': 2, 'selected': False, 'text': '<p>The first document to read and digest is <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html" rel="nofollow noreferrer">the Mem management guide</a>, understand this before moving on. <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html" rel="nofollow noreferrer">This</a> is a great guide to objective-c too. Infact the developer site at Apple is very good - but you would probably want to read the Hillegas book first.</p>\n\n<p>In regards to Xcode vs Visual Studio - they are different. I wouldn\'t say one is better than the other - Windows developers come over from VS and expect it to be the same. This is just an arrogant attitude and please don\'t fall into this crowd. Having used VS since the AppStudio days and Xcode for a year or so now, both have strengths and weaknesses. Xcode is something that out of the box (and especially when coming from VS) doesn\'t seem that good, but once you start using and understanding it - it becomes very powerful.</p>\n\n<p>Also, there are a lot more tools included with Xcode et al, such as Instruments and Shark that you simply can\'t get with VS, unless you open your wallet, and even then IMHO aren\'t as good.</p>\n\n<p>Anyway, good luck. I still enjoy C#, but Objective-C/Cocoa somehow makes programming fun again once you get into it...</p>\n'}, {'answer_id': 15737, 'author': 'Stephen Cox', 'author_id': 534, 'author_profile': 'https://Stackoverflow.com/users/534', 'pm_score': 0, 'selected': False, 'text': '<p>Cocoa is huge. The hardest part of learning how to write apps on Mac is learning Cocoa. By the way. You do not need to know ObjC (though it helps tons). You can write Cocoa apps with Python or Ruby (right in the IDE).</p>\n\n<p>I agree VS is a better IDE then Xcode. But if you throw in Interface Builder and all the other tools, I\'m not so sure. Mac development is not about 1 giant IDE for everything. But VS is "kinder" on the developer then Xcode is. </p>\n\n<p>Also if you want to do cross platform apps look at <a href="http://www.realsoftware.com/products/realbasic/" rel="nofollow noreferrer">RealBasic</a>. A fine tool (Basic though. But it runs on Linux too.) You\'d be surprised how many Mac apps are written with RB.</p>\n'}, {'answer_id': 15762, 'author': 'Jay Conrod', 'author_id': 1891, 'author_profile': 'https://Stackoverflow.com/users/1891', 'pm_score': 0, 'selected': False, 'text': '<p>I\'ve heard the books currently out there are pretty out of date. The whole ecosystem seems to evolve very fast with dramatic changes made in every OS release.</p>\n\n<p>He wrote a <a href="http://andymatuschak.org/articles/2007/09/09/getting-started-with-cocoa-a-friendlier-approach" rel="nofollow noreferrer">tutorial</a> which pulls together some Apple documentation and other tutorials which should get you started. I think it covers the basics of using the IDE, writing simple apps, and then goes on to more advanced stuff.</p>\n'}, {'answer_id': 15763, 'author': 'Chris Hanson', 'author_id': 714, 'author_profile': 'https://Stackoverflow.com/users/714', 'pm_score': 2, 'selected': False, 'text': '<p>One other suggestion:  If you have feature or enhancement requests, or bugs that you\'ve run into, be sure to file them at Apple\'s <a href="http://bugreport.apple.com/" rel="nofollow noreferrer">Bug Reporter</a>.  It\'s the best way for developers to communicate their needs to Apple, because every issue is tracked through the system.</p>\n'}, {'answer_id': 21407, 'author': 'crackity_jones', 'author_id': 1474, 'author_profile': 'https://Stackoverflow.com/users/1474', 'pm_score': 1, 'selected': False, 'text': '<p>You might try the demo of <a href="http://macromates.com/" rel="nofollow noreferrer">textmate</a> and see how you like it for working with objective-c or any other type of text really.  It will import xcode project settings so you can still compile and run from textmate rather than having to go back to xcode. </p>\n'}, {'answer_id': 28928, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 1, 'selected': False, 'text': '<p>Xcode is the standard for editing source files, though you can use another editor in conjunction with the command line xcodebuild tool if you really want.  I used Vim for all my Cocoa editing before finally giving in to Xcode.  It\'s not the greatest IDE in the world, but it gets the job done, and the recent 3.x releases have had some nice improvements.</p>\n\n<p>The real power tool of Cocoa development is Interface Builder.  IB does not generate source code like many UI tools.  Instead it manipulates real Cocoa views, controls, and objects which it then bundles into an archive (nib) that is loaded by your program at runtime.  Most Cocoa programs use at least one nib file, and often many more.</p>\n\n<p>No matter what IDE/editor combination you choose for hacking on source files, I recommend using IB where you can.  Even if you\'re not a fan of other UI layout/generation tools, I suggest keeping an open mind, giving "the Cocoa way" a chance and at least learning what Interface Builder can do for your development process.</p>\n'}, {'answer_id': 36370, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>I\'ve been dabbling in Cocoa for the past couple years, and recently picked up Fritz Anderson\'s "<a href="https://rads.stackoverflow.com/amzn/click/com/0321552636" rel="nofollow noreferrer" rel="nofollow noreferrer">Xcode 3 Unleashed</a>." Highly recommended for getting into Xcode &mdash; especially with some of the big changes 3.0/Leopard brought.</p>\n\n<p>Don\'t forget Hillegass\' defacto Cocoa bible, "Cocoa Programming for Mac OS X - Third Edition."</p>\n'}, {'answer_id': 37993, 'author': 'Colin Wheeler', 'author_id': 2750, 'author_profile': 'https://Stackoverflow.com/users/2750', 'pm_score': 0, 'selected': False, 'text': "<p>@peter I don't know why you had trouble with getting a simple app working, right off the bat without doing anything your app gets a lot of benefits from the Cocoa framework. If you mean you were trying to do stuff like connect a button to an action and have it print a alert on screen or something like that then yes I could see where your going with it being difficult.</p>\n\n<p>The problem for me starting with Cocoa many years back is that it was so different from anything else that it had a little bit of a learning curve. Whereas many other systems are compile time oriented Cocoa is very dynamic and runtime oriented. Once you get past learning how actions hook up to classes it just becomes a matter of learning how the Cocoa frameworks work.</p>\n"}, {'answer_id': 38764, 'author': 'Orion Edwards', 'author_id': 234, 'author_profile': 'https://Stackoverflow.com/users/234', 'pm_score': 2, 'selected': False, 'text': '<p>Don\'t bother digging up your OSX DVD as they\'ve released a new version (3.1) of XCode since then.</p>\n\n<p>First, you\'ll want to join <a href="https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/promo?source=ADCLOG&amp;code=ADCLOG-NEX" rel="nofollow noreferrer">Apple Developer Connection</a> (it\'s free, and you need it to access their version of MSDN) - it uses your Apple ID so if you\'ve ever had one for the itunes store etc, it\'s that same username/password</p>\n\n<p>Once you\'ve done that, click on downloads, then click on developer tools, to view <a href="https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/202/wo/5u4LJJZ7ZZWg2u6eB93on1lazji/4.1.17.2.1.3.3.1.1.1.1.0.3.3.3.3.1" rel="nofollow noreferrer">this page</a>, and go for the <a href="http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/202/wa/download?path=%2FDeveloper_Tools%2Fxcode_3.1_developer_tools%2Fxcode31_2199_developerdvd.dmg&amp;wosid=5u4LJJZ7ZZWg2u6eB93on1lazji" rel="nofollow noreferrer">XCode 3.1 Developer DVD</a></p>\n'}]
['https://Stackoverflow.com/questions/15681', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1875/']