WWDC 2006: Wednesday Wrap-Up
Today I went to a couple of Core Data sessions, a more advanced Core Animation session, a Cocoa controls presentation, and a introduction to the new Interface Builder. I'm more impressed by Core Animation each time I see a session, and new IB looks and works much better than the earlier versions. It's exciting stuff.It looks like at least some bits of Objective-C 2.0 are public knowledge. The big news is garbage collection, "syntax enhancements," runtime improvements, and 64-bit support. The syntax enhancements are sure to please almost everyone (is this stuff public knowledge via open source?). Big things in store. Any developers who aren't currently using Objective-C will have to give it a good hard look again.
Some of the Xcode 3.0 details are up, as well. Project snapshots are something I've needed for a while and the research assistant seems very useful. The message bubbles for errors play out very well, and the code focusing a step in the right direction. I think I'll continue using TextMate for the bulk of my editing in Cocoa projects, though.
I've been wanting to mention that Apple really got their act together organizationally for this WWDC. The web site is much better organized and virtually all of the resources are there when you need them. They've also gone much further out of their way to address session collisions than any time in the past.
WWDC 2006: Wednesday Wrap-Up
Posted Aug 9, 2006 — 10 comments below
Posted Aug 9, 2006 — 10 comments below
Chris — Aug 09, 06 1554
Allan will probably eventually incorporate the feasible Xcode 3 enhancements into TextMate via extensible architecture.
Rob — Aug 10, 06 1557
JB — Aug 10, 06 1558
Mithras — Aug 10, 06 1560
-----
- Instance variables can have access control:
@interface MyClass : NSObject
{
@public
int public_var;
@private
int private_var;
@protected
int protected_var;
}
- We have the syntax for properties, in both classes and protocols:
@interface MyClass : NSObject
@property int foo;
@property(getter=_getBaz,setter=_setBaz) float baz;
@end
@implementation MyClass
- (int)_getBaz { return baz; }
- (void)_setBaz: (float)newBaz { baz = abs(newBaz); }
@end
@protocol MyProtocol
@property(copies,readonly) NSString *bar;
@end
int main(void) {
MyClass *m = [MyClass new];
m.baz = -5.0;
printf("%f\n", m.baz); /* -> 5.0000 */
}
- Protocols can list required or optional methods:
@protocol MyProtocol
@optional
- (int)foo;
@required
- (void)bar: (int)arg;
@end
- The syntax for foreach is pretty obvious, but here it is anyhow:
NSArray *arr = randomListOfStrings();
for (NSString *s in arr) {
printf("%@\n", s);
}
It looks like there may be a facility for enumeration of user- defined types...
- To accomodate GC, fields can be weak:
@interface MyClass
{
__weak id some_var;
}
@end
Abhi Beckert — Aug 10, 06 1561
The foreach stuff looks very nice, but I'm not really a fan of the getter/setter syntax... why manually specify the selector if KVC can already figure it out?
JB — Aug 10, 06 1562
Aaron Tait — Aug 10, 06 1563
Rob Winchester — Aug 10, 06 1564
Scott Stevenson — Aug 10, 06 1565
The look isn't really what I think of as the important part of TextMate. The apperance is nice finishing touch, but there's a lot of stuff in TextMate that Xcode simply can't touch.
There's no question that Xcode has certain things that TextMate does not, but you don't have to use or the other exclusively. I think I'll do most of my editing in TextMate and use Xcode for certain things.
Tim Buchheim — Aug 10, 06 1567
Not all of us can take the time off work to go to WWDC, and I wish Apple would acknowledge that.
And when are they going to get a message board or mailing list for discussing stuff under NDA? Sure, the people who go to WWDC can talk about stuff there, but what about the weeks afterwards (not to mention those who can't go for whatever reason)