M3Extensions
M3Extensions is a Cocoa framework with various useful extras to make life with Cocoa that little bit easier. The classes and categories contained in the framework are used throughout our software and will be expanded as our software expands. Find out more...
OCRunner

OCRunner is a GUI front end to the OCUnit testing framework. It displays much more information about your tests than Xcode, with which it integrates to make your tests run on each compile. Find out more...
Developer Articles
Below are a series of developer related articles written on the M Cubed blog and other places:
- The Named Argument - 31st May, 2009
- Thoughts on Unit Testing - 31st January, 2009
- Version Control With Bazaar - 28th July, 2008
- Build Numbers From Bazaar - 30th June, 2008
- Navigating Tab Views in Interface Builder 3 - 31st December, 2007
- Syntax Colouring Blues... and Reds... and Greens... - 13th November, 2007
Source Code
Below are a collection of individual chunks of source code from our apps. All of these are available under the MIT licence.
M3BetaController
M3BetaController is a class that makes it easy to add beta expirations to your application while reducing the risk of accidentally leaving one in a release version. It integrates with Sparkle to allow your users to try and download the latest update after the beta has expired.

M3InstallController
M3InstallController is a class that will warn users if they are running your application from a disk image and offer to install the application in their Applications folder.

M3TokenController
M3TokenController is a set of classes that lets you add a token cloud to your application that integrates with NSTokenField to manage tokens within your UI, similar to what is found in Lighthouse Keeper.

M3NavigationView
M3NavigationView is a simple view class that allows you to push on and pop off view controllers. It animates the transition by sliding the controller's view on/off the screen.
M3BezierPath
M3BezierPath is a port of the NSBezierPath class to the iPhone. It isn't fully complete (see the header for methods that aren't implemented yet) but covers the most commonly used parts of NSBezierPath.