How to Make a Growl App
I made a little Objective-C growl app the other day (Deadline for Mac). It started as an idea I had on Saturday afternoon, and ended up being a finished product by Sunday night. Working with Growl is surprisingly simple!
This is a short tutorial on how to build your own Mac app that uses Growl. You’ll need Apple’s developer tools installed and some familiarity with Xcode. It’s an interesting exercise even if you’re not too savvy with Objective-C, so give it a go and let me know what you make.

Getting Started
Growl needs a few things before you can get started:
- An app that includes a Growl Registration Ticket.growlRegDict
- The Growl framework. Download it here: Growl Developer Downloads
Create a new project in Xcode and call it GrowlExample.
Copying the Framework into Your Project
Download and unpack the Growl SDK. Copy the Frameworks directory somewhere (you can delete it later, I just dumped it on my desktop).
Right-click a suitable group (Frameworks) in Xcode and select Add… Existing Frameworks. Select Growl-WithInstaller.framework. Make sure you check Copy items into destination group’s folder.
Next you need to tell Xcode to copy this file into your application’s bundle. Expand the Targets group, right-click GrowlExample and select: Add… New Build Phase… New Copy Files Build Phase. Drag the Growl-WithInstaller.framework file into this build phase.
Right-click the Copy Files build phase, select Get Into, and change Destination to Frameworks.
Informing Growl About Your App
Every Growl-based app needs a Growl Registration Ticket.growlRegDict file. Create a new file in Xcode and select Other… Empty File. Name the file Growl Registration Ticket.growlRegDict.
You’ll need to paste some XML into this file. The format is simple but it’s way easier to paste it than explain it.
Here’s the XML as a Gist (if this isn’t visible, load this page up in a browser):
Save the file and drag it to the Copy Bundle Resources build phase.
Create an App Delegate
Since this isn’t a real app you’ll need an example class to create some growls alerts. Add a new file, select Mac OS X… Cocoa… Objective-C class. Name it GrowlExample_AppDelegate.
Next, let’s link this up in Interface Builder:
- Expand the XIB Files group in Xcode
- Double-click MainMenu.xib
- Add an Object from Library
- Edit the object’s identity and set the class to GrowlExample_AppDelegate
- Ctrl-click File’s Owner, drag a link to GrowlExample_AppDelegate object to make it the delegate
Using Growl in Your Code
Open GrowlExample_AppDelegate.h in Xcode. Change the @interface line like this:
GrowlExample_AppDelegate.h: @interface GrowlExample_AppDelegate : NSObject <GrowlApplicationBridgeDelegate> {
And include Growl.h at the top of the file:
#import <Growl/Growl.h>
Sending growl messages is as simple as calling [GrowlApplicationBridge notifyWithTitle]:
Final Example
I’ve put my Xcode project on GitHub so you can download the full example: growlexample

