Spark, Wildfire, and the MacOS

With all the Apple news recently, as well as several new employees using Macs (including myself), I thought I’d write up a little update on what Jive is doing to improve how our products run on the Mac. There are a couple of areas where we’re making big strides forward:

Installation Experience

Most Mac applications are distributed in disk image (.dmg) files, and some are installed from the .dmg via an installer package (.pkg) file. Disk images alone are used for standalone apps that can be installed by dropping them where you want them, while installer packages are used for more complex apps that install lots of support files.

The Spark dmg file now includes some spiffy background art based on the Spark logo, as well as a symlink to the applications folder so installing really is just drag → drop; no need to dig around in the filesystem finding the applications folder first.

Wildfire is a bit more complex. The new Wildfire.pkg file creates an unprivileged user called Wildfire, so that the application can run in a “sandbox” much as apache and other system services do. It also installs the next two improvements on the list…

Launchd and Wildfire

Launchd is Apple’s new replacement for init, rc, inetd, xinetd, atd, crond, watchdogd, and SystemStarter. As of Mac OS X 10.4 it’s the recommended way for services like Wildfire to run, so I have created a launch daemon file for Wildfire. This allows for all sorts of customization for the savvy system administrator, including easily imposing resource limits, automating startup and shutdown, and other handy things previously spread across the system in various configuration files. For people who don’t want to spend their time tweaking XML files, there’s a new feature of Wildfire that makes controlling this even easier…

Wildfire System Preference Pane

The Wildfire prefpane provides a simple interface for starting and stopping Wildfire, configuring whether Wildfire will start when the system starts up, and accessing the administration page.

Spark Fixes

Tuesday morning we had a meeting where we brainstormed a whole bunch of fixes and improvements to Spark, ranging from renaming preferences in the Mac version (Toast? We use Growl in these parts!), to fixing keyboard shortcuts (command-w is on the list), to making sure that windows gain focus correctly when new messages are added. This sort of polishing should make Spark much nicer to use, even without some of the larger things that we’re looking at, such as Address Book integration.

Looks great! =)