Panther is a Killer App
userpic
[info]chanson
While I'm talking about my parents' new iBook, I have to say that Panther itself is a killer app.

My parents enjoyed their previous Macs, got a lot of use out of them, learned all sorts of things and used them for all sorts of things. All of their previous Macs were running the traditional Mac operating system, not Mac OS X.

But they're floored by some of the things their new computer can do out of the box. My dad has really taken to iTunes, they both seem to really like Mail and Safari, and yesterday they rang me up to voice-chat in iChat AV. Of course, I had to retaliate by hooking up my iSight and calling them back via video. And today we printed a family photo I took at Thanksgiving with their new Epson C84 on fancy glossy photo paper. iPhoto rocks.

They've also already played some of their old games under Classic (like Eric's Ultimate Solitaire CD) and my dad's started getting up to speed on Quicken 2004. But it's really the built-in software that seems to be blowing them away.

More about Panther Cocoa
userpic
[info]chanson
Panther shipped!

That means I can go into more detail about what I'm talking about at the CAWUG meeting on Tuesday.

Here's the deal: In Panther, Cocoa includes a ton of new features. Most importantly, Panther Cocoa includes a new AppKit class named NSController.

In Model-View-Controller terms, Cocoa has historically been great for building model objects with FoundationKit and for building view objects with AppKit. But you've generally had to build all of your controller objects from scratch with FoundationKit. This isn't a problem per se but it does mean you have to do work. For instance, you had to write a data source object have an NSTableView display some data.

Now, with Panther Cocoa and NSController you can very easily bind view objects to your data model directly, with no code, right in Interface Builder.

It does this using some technology built on top of Key-Value Coding. Key-Value Observing lets one object watch for changes in an attribute of another and Key-Value Binding lets the values of attributes in two objects be dependent on each other (change one and the other changes).

On Tuedsay at CAWUG, I'm going to demonstrate how all this fits together.

But wait, there's more!

Apple also did quite a bit of optimization work in Panther, including optimizations to how NSView drawing works.

They've even included a new class in FoundationKit called NSSortDescriptor that represents — surprise — a way of sorting a collection! It's pretty much an equivalent of my BDSortOrdering class, which was just a reimplementation of the Enterprise Objects Framework's EOSortOrdering class.

I'll also be talking about some of the other major additions to Cocoa in Panther. There's a lot of cool stuff to cover! Join us! It'll be fun!

Next CAWUG Meeting: Cocoa changes in Panther
userpic
[info]chanson
I'm going to be talking at the next Cocoa and WebObjects User Group (CAWUG) meeting. It's at 7PM next Tuesday, October 28, at the Apple Store North Michigan Avenue.

Alex Johnson of Site9 maintains an iCal calendar (subscribe via iCal).

Here's the summary of Chuck's IOKit talk and what I'm allowed to say about my talk. I'll post more details tonight about what I'll actually be covering, after Panther's officially released.

IOKit by Chuck Remes

Chuck has worked on an ethernet driver for the DEC Tulip chip set and will discuss IOKit. IOKit provides all the basic services to develop a hardware or software driver for darwin (or OS X). It is a powerful toolkit that let's the programmer bring all the power of OOP to the world of drivers, allowing such things as subclassing, method overload, and driver stacking. This presentation will provide a high-level 45 minute overview of some of its basic features and principles.

Xcode & new Cocoa features in Panther by Chris Hanson

Chris Hanson of bDistributed.com will go over some of the additions to Cocoa included in Panther, as well as the new Xcode IDE and the updated Interface Builder.