Interface and eye candy seem to be taking a prominent role in recent Mac developer’s minds. Just ask Dustin MacDonald. But whatever your view, there comes a time when you need something to fly across the screen, bounce up and down or just move. In other words, animate. And animate you shall, with Simon Haertel’s excellent Animation Toolbox 3. Also used extensively in his Mac version of Tetris, Quinn, the toolbox makes things like bouncing and sliding look natural and sleek - with hardly any code.
If it’s animating views you’re after, Matt Gemmell has got you covered. Initially having trouble with NSViewAnimation, someone neglected to tell him that it needs to be subclassed. However, Matt has recovered from his lapse in, uh, frustration and created a little sample animating views subclass. From his blog:
It’s a partial rework of Todd’s NSAnimation Demo code, which subclasses NSAnimation directly and updates all the animated views’ frames itself in the same thread for better perceived performance. For basic “animate a bunch of views at once” uses, you should be able to just change NSViewAnimation to MGViewAnimation and go with it…
But please read these caveats:
- This thing is barely tested at all
- It will probably only work for views (not views and windows, as NSViewAnimation does)
- It doesn’t attempt to do the fade-effects that NSViewAnimation does (though that should be trivial to implement if you need it)
At the very least it’s a good starting point for folk having issues with NSViewAnimation, and just as a general example. I hope someone finds it useful, and a big thanks again to Todd for his original code.
Matt Gemmell
You can download his MGViewAnimation project from Gemmell’s Source Code page.
Boy is there a renaissance among the Mac developer community in terms of interface design. We’ve really got it going now, with every almost every app deciding to recreate their controls. I posted yesterday about the iLifeControls Frameowork by Sean O’Brien, and a few days ago about smoking windows. Again, this post is NSWindow-related.
All the way from the land of Bithaus, Ganyard brings us “Stylish Windows“. This isn’t as feature-packed as the iLifeControls, but is a little more flexible with it’s coloring and size of the top and bottom bars. Personally, I don’t really think I would find a use for this, but some of you may find this helpful.

Also from the same author, comes a reflecting NSImageView (hence the title of this post). It seems a lot of code for something that would take thirty seconds in Photoshop, but this would be really handy for dynamically generated images. Really. Check it out.

And I promise, I will post something programming and coding related soon. My eyes are sore from all this eye candy.
Want to impress your Windows friends? Want a desktop background that is interactive, configurable, and cool? Look no further. Presenting, “Cool Desktop”.
It takes one command in the Terminal to set your current screensaver as the desktop background. You can have slideshows, animations, and even Quartz compositions. The possibilities are endless.
Continue Reading Screensaver on your desktop - in one line
Sean Patrick O’Brien, a fairly new Cocoa developer has recently released an iLife Controls framework. This allows you to create HUD Windows and controls such as buttons, sliders, popup menus etc. and also a smooth metal type window (again with controls such as buttons and frames).

Heads-up-display with a window, subclassed with the framework.
With everyone trying to keep up with Apple’s interface additions, this isn’t a bad way to go about it. The framework includes a lot of subclasses and some of them needed to be added to Interface Builder in order for the hierarchy to show, so I’ve uploaded a simple project to show what this framework can do. It’s not completely bug-free; in fact, there are quite a number of creepy-crawlies, but the idea is there, and this looks to be the beginning of quite a handsome project.
Download sample project
Download just the framework source
And while you’re at it, don’t forget to thank Sean
I’m stunned.
What happens when the app crashes and the user clears their preferences?












Now, I’m not encouraging willful interference and hacking of applications, but come on! There has got to be a better way than simply storing everything in plain view of everyone. I don’t want my license or serial number visible to other people who use the same computer. Another hiccup is that in demo modes, AppZapper and Disco store the number of remaining zaps or burns in the plist file. That’s fine up to a point, but at least check if the user (as in the screenshots above) has manipulated it. After so many years of Mac Shareware, something’s got to be done. Hack proof your apps. Please. You’ll get more business and not be exploited.
I have kept this short, since I don’t want to simply tell everyone how to exploit applications, but my general plea is, please, test and retest your apps to make sure they’re not hackable. If the biggest names in shareware are making these mistakes, it’s time run another audit on your work.
Update: Follow up article on shareware licensing techniques using Cocoa.

The next big thing after My Dream App, MacHeist is set to be a huge event with many app give-aways. I was lucky enough to be among the initial handful who got invited to this spectacular program. The forum is alive with activity, Hubert is being idolized and stuck on hundreds of Dashboards worldwide, and most importantly, preparations are being made for the first heist, set to start … very soon ;).

If you’re sitting at the sideline, caught in a wild monkey chase, and want to be a part of the action, here’s your chance! Some MacHeist members have been given precious invites, and I’ve got three of them, ready to hand out. Remember, these are very rare, valuable items, and I’m willing to give them away for free. What do you have to do? Simple. Post a comment saying why you want an invite, and the top three replies get one each. Of course, bribes such as linking to this post, etc. may help.
