Ten Myths of Leopard: 3 Nothing New for Developers!
November 1st, 2007
Daniel Eran Dilger
Myth 3 in the Ten Myths of Leopard.
Myth 3: Leopard offers nothing new for developers. This is usually slapped on the back of the “Service Pack Myth” as proof that Leopard is nothing more than a few new over-hyped user features that should be free. However, the simple fact that Apple debuted Leopard’s features at its WorldWide Developer Conference in 2006, and didn’t reveal new details again until WWDC 2007 seems to indicate developers are, in fact, interested in what’s new in Leopard.
Steven J. Vaughan-Nichols of EWeek (the trade rag that ironically was once MacWeek), Mary Jo Foley of the notorious ZDNet blogs, and Paul Thurrott in Windows IT Pro all dismissively suggested that Leopard offers nothing new.
Conversely, Thurrott in particular was critical of Leopard last fall for offering features such as Core Animation which, as he wrote, “doesn’t impact end users directly and thus is not of interest.” The Windows Enthusiast all agree: there’s nothing interesting for anyone in Leopard. They’re wrong, here’s why.
New For Developers Means New For You.
Most of the new features in Leopard can directly be applied by developers to build better apps that do more. Some examples are are Core Animation, Quick Look, Spotlight, and Time Machine. When pundits try to dismiss Time Machine as “fancy file backup,” they make it obvious they are unaware of how the new architecture can enable developers to historically index and restore items from collections that are usually particularly difficult for end users to restore, such as an individual photo or contact.
Many of the new features in Leopard are components Apple adapted from its own applications so third party developers could apply the same innovations to their own projects.
For example, Image Kit’s IKImageView and IKImageBrowserView allows any app to set up a drag and drop selection of photos or icons and imaging editing features of iPhoto and the new Preview (above). NSPathControl creates path displays like the iTunes Store (below top) or the Finder (below bottom).
NSRuleEditor and NSPredicate Editor make it easy to replicate Smart Groups similar to iTunes Playlists, iPhoto’s Smart Albums, and the Finder’s Smart Folders (below).
Translucent Panels like those from iLife applications are now easy to for third parties to use, as is Safari 3.0-style contextual search highlighting. Smart links, smart quotes, inline imaging editing, and system wide grammar checking make fancy text editing and presentation easy.
A standardized button graphics library will make it easier for developers to support resolution independence. Initial support was already in Mac OS X Tiger, but it is largely waiting for developers to clean up their graphics so that windows and controls that look nice when scaled up. Once ultra high-resolution displays appear, Apple will be able to use them, and developer’s apps will look right even when scaled up. Leopard running on the iPhone already takes advantage of resolution independence to redraw web pages and documents at any level of zoom.
Matt Legend Gemmell posted an extensive list of developer enhancements in Leopard, and still didn’t touch on such features as its used of the LP-64 architecture for addressing huge data sets and the new developer tools cited by AppleInsider, or Leopard’s new Objective-C 2.0 introduced by Scott Stevenson in his tutorial (linked below), or NSCollectionView, which .Net developer Kevin Hoffman details as his favorite among “a bunch of amazingly powerful new controls” in Leopard.
Anyone who says Leopard offers nothing new for developers is either being disingenuous or doesn’t know what they’re talking about.
Matt Legend Gemmell » Blog Archive » Get rid of your code with Leopard
AppleInsider | Road to Mac OS X Leopard Server: Collaborative Info Sharing Services [Page 3]
AppleInsider | An Introductory Mac OS X Leopard Review: Developer Tools [Page 3]
Theocacao: A Quick Objective-C 2.0 Tutorial
Leopard Sample: A Bound NSCollectionView [The .NET Addict's Blog]