The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Twitter
» Maybe Pizza?
» Code
» Archive
August 26, 2011

XPCKit (written by Steve Streza) is pretty handy:

"XPCKit is a Cocoa library for wrapping the XPC C APIs in a handy object-oriented model. It is merely meant as an object-oriented wrapper for the C library, and does not attempt to layer any additional semantics on top."

XPC is a set of new APIs on 10.7 which "provides a low-level (libSystem) interprocess communication mechanism based on serialized property lists". If you plan on doing networking in your Mac apps and still hope to distribute in on the App Store, you better learn this stuff pretty quickly. With the required sandboxing that's coming soon for the Mac App Store, XPC is going to be necessary for your app to do anything "dangerous".

I just finished my first real XPC service on 10.7 (rewriting VoodooPad's web server using XPCKit as mostly a reference). The rewrite had a frustratingly slow start, strong finish, and I'm reasonably happy with the final code.

I really like the idea behind XPC and believe it's ultimately best for my customers*, I just wish that November 1 sandboxing date was a little bit farther off.

*For instance, VoodooPad 3's web server had a crashing bug if you sent it an HTTPS request. Had the server been written out of process with something like XPC, the server would have gone down but VoodooPad would have kept running. In theory.