Filed under: OS, WWDC, Apple, Universal Binary
Xcode 3.0

We overlooked Xcode 3.0 (and Interface Builder 3.0) in all the WWDC hubbub, though I bet that many developers are very happy with the direction Xcode is going in. Xcode 3.0 has new 'iChat like' notifications, as well as speed increases (Apple claims it loads code 4 times faster than before). Xcode 3.0 supports Objective-C 2.0, which itself has new features (including the all important 'garbage collection').
Also new in Xcode 3.0 are Xray, a timeline based way to optimize your app, and Research Assistant which keeps API documentation at your fingertips without being annoying.
Get a WordPress.com Blog
![TUAW [Cafepress]](http://www.blogsmithmedia.com/www.tuaw.com/media/tuaw-cafepress-promo.png)


Reader Comments (Page 1 of 1)
Karsten said 6:30AM on 8-08-2006
can anyone please clarify what's new in objective-c 2.0 except for garbage collection? the apple page is quite uninformative on this
Reply
Wolfywolfbits said 6:49AM on 8-08-2006
Yes can someone pleeeease give us some more info on Objective-C 2.0!! Also would be good to have *any* info on Interface Builder 3.0
Reply
Zachary Bedell said 9:46AM on 8-08-2006
So... Does it have REFACTORING support? There are days I would *kill* for Eclipse-style refactoring power and code manipulation support for Objective-C. Some days, it's almost enough to make me look at CocoaJava!
Please? Refactoring? Pretty please? Maybe some nice lint or CheckStyle-like stuff too?
Reply
Isaiah said 1:19PM on 8-08-2006
Does anyone know when this will be released beyond those precious CDs at WWDC.
I paid dearly for a Select membership to the Apple ADC, but so far all that's released is a point update to XCode -- no 3.0.
Feeling left out,
Isaiah
Reply
anonymous said 4:30PM on 8-08-2006
Xcode 3.0 has refactoring support.
Reply
Sam said 7:37PM on 8-08-2006
It looks like XCode 3.0 is catching up to where Java IDEs were a few years ago, so there's still hope, I guess.
Reply
Jens Ayton said 6:44AM on 8-12-2006
Regarding what’s new in ObjC2, here’s what I wrote on Cocodev.com.
Leopard will introduce significant updates to Objective-C, referred to officially as “Objective-C 2.0”, and unofficially as C*. The following information is gleaned from public sources: the compiler source code (http://gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/objc/) and compiler test cases (http://gcc.gnu.org/viewcvs/branches/apple/trunk/gcc/testsuite/objc.dg/). I had not have access to privileged information at the time of writing. Kudos to Dietmar Planitzer and Dave Vasilevsky for doing a lot of the digging.
Interestingly, the compiler source code says “This module implements the Objective-C 4.0 language”, rather than 2.0.
Known new features — which will all be optional to use, at least at first — are:
• Automatic GarbageCollection.
• A new iterator construction: for (id element in someArray) { [element doStuff]; }
• @required and @optional keywords for FormalProtocols.
• Weak references, indirect object references which don’t stop objects from being garbage-collected.
• GCC attributes on methods.
• Properties. A property is an ivar with a getter and setter, unless it is read-only. There are several ways of implementing them. In the simplest form, the ivar, getter and setter are generated by the compiler: @property NSString *name;. An existing ivar may be specified: @property (ivar = _tag) int tag;. You can also specify your own getter and setter: @property (getter = getFrame, setter = setFrame:) NSRect frame;. Properties can also have two properties: readonly, meaning there is no setter, and copying, meaning the value passed to the setter will be copied. Client code uses properties by using dot notation on the object pointer: NSWindow *myWindow = getAWindow(); NSLog(myWindow.name); myWindow.frame = someRect;.
• Warnings will be generated for use of @defs and implicit typecasts of SELs?, saying these “will not be supported in future.”
Reply