This page links to
known places where source code of interest to Mac
developers can be downloaded. The code is not in
anyway connected to The Mac Developer Network and
you should carefully read each developer license
before using the code in your own applications.
If you have any code you would like listed then please let us know.
If you have any code you would like listed then please let us know.
AquaticPrime
The AquaticPrime framework is a secure registration method for your shareware applications, released as free open-source software.
View Details
BGHUDAppKit
BGHUDAppKit is a solution to the missing controls in OS X Leopard. Apple gave us that spiffy new HUD window but no controls to put on it. BGHUDAppKit comes with an IB Plugin. All the controls are in the BGHUDAppKit Library. Couldn't be any easier than drag'n'drop'n'go. Drag the controls to your HUD window and build, no extra setup is needed.
View Detail
Blocks Plugin Framework
For Mac OS X developers who want to reuse existing code and build flexible applications. Blocks is an Eclipse inspired plugin framework that makes it possible to resuse existing code and extend your application with plugins. Unlike most plugin frameworks Blocks is a pure plugin framework, the main executable is only a few lines to bootstrap the plugin framework.
In addition to a core plugin framework Blocks also has optional reusable plugins that you can use in your apps to automatically provide features like crash reporting, license keys, etc.
View Detail
BWToolKit
A free and open source plugin for Interface Builder 3 that contains commonly used UI elements and other useful objects
View Detail
Cocoa Shader
Guy English has posted the source code to a basic implementation of the Cocoa Shaders he talked about here. There’s code for conditional shaders, shader lists, clip shaders, and affine transform shaders. As far as shaders that actually draw there’s a solid color shader and one for drawing an image. The image shader lets you tweak the compositing operation, source rect, and set a drawing scale.
Included is a sample app to show you how you could use this stuff in practice. The app has a custom view which draws using a shader. The demo shader will change its background from blue to red when the view is clicked. Its implemented using only the simple shaders provided.
Fancier gradient fill shaders, CoreImage based shaders and that kind of thing are left, for now, as an exercise for the reader. He mentioned it in the original post but if you’re looking to do gradients you’d do yourself a favour by looking at CTGradient.
Core Animation Movie Layers with NSControls overlayed
Bill Dudney explains that putting a movie into a view has been possible for while now but we could not put controls (like buttons etc) over that movie, until Core Animation. In fact it is possible now to have a quartz composer composition running in the background, movies playing on top of that and animating in 3d space and controls all on top of that. Crazy stuff that...
View Detail
FolderSweep: Recursively traverse a folder-hierarchy quickly
Matt Gemmell and Rainer “RBSplitView” Brockerhoff have issued some code they have called FolderSweep. In a nutshell it shows you how to recursively traverse a folder-hierarchy really quickly (faster than using NSFileManager) and in a controlled way, optionally also memory-mapping the contents of files and providing them to your delegate object.
View Detail
GCDrawKit - Cocoa Vector Graphics Framework
GCDrawKit is a Cocoa Vectror Graphic Framework from AppTree attempts to do for drawing applications what Cocoa's text system does for text applications. It provides a set of interrelated classes which implement a complete vector-drawing framework, while trying to maximise flexibility and remaining agnostic about the final end use of the application.
To this end, it provides:
View Detail
Google Data API
The Google Data APIs Objective-C Client Library provides a Mac OS X framework and source code that make it easy to access data through Google Data APIs.
View Detail
Google Toolkit For Mac
A collection of source from different Google projects that may be of use to developers working other Mac projects.
View Detail
KTUIKit
KTUIKit is a Cocoa framework project that is currently in development. The goal of the project is to provide solutions to three important issues in any Mac UI project: Layout, Styling and the MVC design pattern (specifically the V & C parts)
View Detail
Matt Legend Gemmell Source Code
This page contains some great open source controls and examples of Cocoa/Objective-C source code from Mac developer Matt Legend Gemmell.
Includes: MGScopeBar, MGTemplateEngine, Skinable App, MGTwitterEngine, NSImage & Quicklook, MAAttachedWindow, MATrackingArea, MGViewAnimation, NSColor + ContrastingLabelExtensions, ImageCrop, HUDWindow, RoundedBox, TunesWindow, iCal Calendars, NSBezierPath+StrokeExtensions, Rounded Floating Panel iTableColumnHeader, iTableView, Address Book Test , Better TextFinder, SS_PrefsController, Window Fade Out, Grab Scrolling, Screen Sharing, Localized Nibs, Snapping Window, PopUpImage, ImagePopUpButton, GetNetApps, Url Test, Icon For File Type, Font Panel Test, Image in Table, Mod Key Test, Shape Thing, Objective-C Services, iCal Birthday Shifter
View Details
MBTableView - A simple spreadsheet control
MBTableView is a spreadsheet control for Cocoa. A pretty basic control that's been strangely absent from the Cocoa landscape. Matt Ball's control provides column and row reordering, drag selection, and drag and drop functionality.
View Detail
MGScopeBar
MGScopeBar by Matt Gemmell provides a scope/filter bar like you’ll find in Mail, the Finder (in the Find/Spotlight window), iTunes and elsewhere. It requires Mac OS X 10.5 (Leopard) or later.
View Detail
MGTemplateEngine
MGTemplateEngine is a native Cocoa system for generating text output based on templates and data. It’s a close cousin of systems like Smarty, FreeMarker, Django’s template language, and so on.
View Detail
NDHotKeyEvent
This is a class for providing access to carbon hot keys from Cocoa, as well as acting as instances that represent particular hot key combinations, the class object provides some methods for managing all of the hot keys created with NDHotKeyEvent.
NDHotKeyEvent can send messages from both key down events and key up events and there is also a informal protocol to notify the target class when the NDHotKeyEvent instance is going to change target.
The NDHotKeyEvent project also comes with a class called NDHotKeyControl which can be used for obtaining hot key combinations from the user.
View Detail
ObjectiveYouTube
ObjectiveYouTube is an Objective-C library written for uploading videos to YouTube licensed under the BSD license.
View Detail
Quick Look Generator for source code
Dave Dribin has written his first Quick Look generator called QLEnscript. It’s a replacement generator for source code files that produces colorized output for the following languages:
View Detail
Receiving Apple infrared remote control events
Amit Singh of the Google Mac Team has posted some code that demonstrates using I/O Kit to receive events from an Apple remote control.
View Detail
RegexKIt
RegexKit is an open source Cocoa framework for PCRE . The new RegexKitLite is a framework for the ICU regex engine, which is already included in Mac OS X. ICU’s regex syntax is not as expressive as PCRE’s, but it’s pretty good overall. And the RegexKitLite API is far simpler, it offers better Unicode support than RegexKit/PCRE, and because the engine is built into Mac OS X, it’s smaller.
View Detail
Sparkle
Sparkle is an easy-to-use software update framework for Cocoa developers.
This little framework's got a lot of features packed inside! Check 'em out:
View Details
Uli Kusterer's Source Code Page
This page contains some great open source controls and examples of Cocoa/Objective-C source code from Mac developer Uli Kusterer.
Includes: MacScare, MachO-CFM Glue, "Made with Cocoa" buttons, NiftyFEatures, ShadowCopy, UKCrashReporter, UKFeedbackProvider, UKDirectoryEnumerator, UKDistributedView, UKDockPregressIndicator,UKDockableView,UKPrefPanel, UKKQueue, UKDocumentController, UKFontMenuController, UKIdleTimer, UKSyntaxColoredTextDocument, UKSpeechSynthesizer, WindowFlipper,VerPack, UKToolBarFactory, UKXMLPersistence, UKXatteMetadataStore, UKLoginItemRegistry, UKFilePathView,NSWindow+Fade, UKCustomWindowFrame, UKProgressPanel, UKDebugNames, UKSOundFileRecorder,UKHelperMacros, UKTurboExport,UKDiffView.
View Details
The AquaticPrime framework is a secure registration method for your shareware applications, released as free open-source software.
- One-way licenses using RSA - a secure algorithm
- Easy to use methods for creating and validating licenses
- Incredible flexibility with license files
- Cocoa, Carbon, Python, and PHP implementations available
- Framework will always be free & open-source
View Details
BGHUDAppKit
BGHUDAppKit is a solution to the missing controls in OS X Leopard. Apple gave us that spiffy new HUD window but no controls to put on it. BGHUDAppKit comes with an IB Plugin. All the controls are in the BGHUDAppKit Library. Couldn't be any easier than drag'n'drop'n'go. Drag the controls to your HUD window and build, no extra setup is needed.
View Detail
Blocks Plugin Framework
For Mac OS X developers who want to reuse existing code and build flexible applications. Blocks is an Eclipse inspired plugin framework that makes it possible to resuse existing code and extend your application with plugins. Unlike most plugin frameworks Blocks is a pure plugin framework, the main executable is only a few lines to bootstrap the plugin framework.
In addition to a core plugin framework Blocks also has optional reusable plugins that you can use in your apps to automatically provide features like crash reporting, license keys, etc.
View Detail
BWToolKit
A free and open source plugin for Interface Builder 3 that contains commonly used UI elements and other useful objects
View Detail
Cocoa Shader
Guy English has posted the source code to a basic implementation of the Cocoa Shaders he talked about here. There’s code for conditional shaders, shader lists, clip shaders, and affine transform shaders. As far as shaders that actually draw there’s a solid color shader and one for drawing an image. The image shader lets you tweak the compositing operation, source rect, and set a drawing scale.
Included is a sample app to show you how you could use this stuff in practice. The app has a custom view which draws using a shader. The demo shader will change its background from blue to red when the view is clicked. Its implemented using only the simple shaders provided.
Fancier gradient fill shaders, CoreImage based shaders and that kind of thing are left, for now, as an exercise for the reader. He mentioned it in the original post but if you’re looking to do gradients you’d do yourself a favour by looking at CTGradient.
Core Animation Movie Layers with NSControls overlayed
Bill Dudney explains that putting a movie into a view has been possible for while now but we could not put controls (like buttons etc) over that movie, until Core Animation. In fact it is possible now to have a quartz composer composition running in the background, movies playing on top of that and animating in 3d space and controls all on top of that. Crazy stuff that...
View Detail
FolderSweep: Recursively traverse a folder-hierarchy quickly
Matt Gemmell and Rainer “RBSplitView” Brockerhoff have issued some code they have called FolderSweep. In a nutshell it shows you how to recursively traverse a folder-hierarchy really quickly (faster than using NSFileManager) and in a controlled way, optionally also memory-mapping the contents of files and providing them to your delegate object.
View Detail
GCDrawKit - Cocoa Vector Graphics Framework
GCDrawKit is a Cocoa Vectror Graphic Framework from AppTree attempts to do for drawing applications what Cocoa's text system does for text applications. It provides a set of interrelated classes which implement a complete vector-drawing framework, while trying to maximise flexibility and remaining agnostic about the final end use of the application.
To this end, it provides:
- A fully abstracted "drawing" data model
- Unlimited drawing layers
- Any number of views can be simultaneously attached to view and edit the drawing
- A complete hierarchy of classes for vector drawing objects
- Specialised layers for grids, guides and drawing meta-data panels
- "Real-world" coordinates in millimetres, inches, kilometers or whatever you need
- A standardized selection mechanism and selection "knobs" just works, but easily customisable.
- Styles can be shared among objects or individually attached
- Define complex graphical styles and attributes using a simple scripting "language"
- Classes for gradient fills, Bézier pattern fills, strokes and hatches
- Interactively editable Bézier paths of any complexity
- Draw bezier paths point-by-point or "freehand" with automatic smoothing
- Any image format supported by NSImage can be added as a standard object
- Convert any image to vector form†
- Editable text objects
- Text or any other shape or image on a path
- Add arrow heads to any path; automatic dimensioning lines for CAD-type applications
- Built-in snap to grid, snap to guides, align and distribute objects
- Group and Ungroup objects to any degree of nesting. Groups can be rotated and scaled like any object
- Rotate, Scale, Skew, Perspective and Free Distort transformations
- Union, Difference, Intersection and Exclusive-Or (Boolean Ops) on any pair of paths or shapes*
- Combine or Break Apart arbitrary paths
- All object types can be freely interconverted
- A large array of built-in object path shapes which is simply extendible
- Simple tool-based drawing paradigm
- Core Image Effects may be applied to any object
- Undo handled for you
- Export any part of the drawing (or whole) as a PDF or TIFF image
- All drawing ultimately performed by Quartz for spectacular quality
View Detail
Google Data API
The Google Data APIs Objective-C Client Library provides a Mac OS X framework and source code that make it easy to access data through Google Data APIs.
View Detail
Google Toolkit For Mac
A collection of source from different Google projects that may be of use to developers working other Mac projects.
View Detail
KTUIKit
KTUIKit is a Cocoa framework project that is currently in development. The goal of the project is to provide solutions to three important issues in any Mac UI project: Layout, Styling and the MVC design pattern (specifically the V & C parts)
View Detail
Matt Legend Gemmell Source Code
This page contains some great open source controls and examples of Cocoa/Objective-C source code from Mac developer Matt Legend Gemmell.
Includes: MGScopeBar, MGTemplateEngine, Skinable App, MGTwitterEngine, NSImage & Quicklook, MAAttachedWindow, MATrackingArea, MGViewAnimation, NSColor + ContrastingLabelExtensions, ImageCrop, HUDWindow, RoundedBox, TunesWindow, iCal Calendars, NSBezierPath+StrokeExtensions, Rounded Floating Panel iTableColumnHeader, iTableView, Address Book Test , Better TextFinder, SS_PrefsController, Window Fade Out, Grab Scrolling, Screen Sharing, Localized Nibs, Snapping Window, PopUpImage, ImagePopUpButton, GetNetApps, Url Test, Icon For File Type, Font Panel Test, Image in Table, Mod Key Test, Shape Thing, Objective-C Services, iCal Birthday Shifter
View Details
MBTableView - A simple spreadsheet control
MBTableView is a spreadsheet control for Cocoa. A pretty basic control that's been strangely absent from the Cocoa landscape. Matt Ball's control provides column and row reordering, drag selection, and drag and drop functionality.
View Detail
MGScopeBar
MGScopeBar by Matt Gemmell provides a scope/filter bar like you’ll find in Mail, the Finder (in the Find/Spotlight window), iTunes and elsewhere. It requires Mac OS X 10.5 (Leopard) or later.
View Detail
MGTemplateEngine
MGTemplateEngine is a native Cocoa system for generating text output based on templates and data. It’s a close cousin of systems like Smarty, FreeMarker, Django’s template language, and so on.
View Detail
NDHotKeyEvent
This is a class for providing access to carbon hot keys from Cocoa, as well as acting as instances that represent particular hot key combinations, the class object provides some methods for managing all of the hot keys created with NDHotKeyEvent.
NDHotKeyEvent can send messages from both key down events and key up events and there is also a informal protocol to notify the target class when the NDHotKeyEvent instance is going to change target.
The NDHotKeyEvent project also comes with a class called NDHotKeyControl which can be used for obtaining hot key combinations from the user.
View Detail
ObjectiveYouTube
ObjectiveYouTube is an Objective-C library written for uploading videos to YouTube licensed under the BSD license.
View Detail
Quick Look Generator for source code
Dave Dribin has written his first Quick Look generator called QLEnscript. It’s a replacement generator for source code files that produces colorized output for the following languages:
- Objective-C/C++
- C/C++
- Perl
- Python
- Java
- Shell scripts
- Assembly language
View Detail
Receiving Apple infrared remote control events
Amit Singh of the Google Mac Team has posted some code that demonstrates using I/O Kit to receive events from an Apple remote control.
View Detail
RegexKIt
RegexKit is an open source Cocoa framework for PCRE . The new RegexKitLite is a framework for the ICU regex engine, which is already included in Mac OS X. ICU’s regex syntax is not as expressive as PCRE’s, but it’s pretty good overall. And the RegexKitLite API is far simpler, it offers better Unicode support than RegexKit/PCRE, and because the engine is built into Mac OS X, it’s smaller.
View Detail
Sparkle
Sparkle is an easy-to-use software update framework for Cocoa developers.
This little framework's got a lot of features packed inside! Check 'em out:
- True self-updating--no work required from the user.
- Uses appcasts for release information.
- Displays release notes to the user via WebKit.
- The user can choose to automatically download and install all updates.
- Displays a detailed progress window to the user.
- Seamless integration—there's no mention of Sparkle; your icons and app name are used.
- Supports authentication for installing in secure locations.
- Supports DSA signatures for ultra-secure updates.
- Really, really easy to install.
- Sparkle requires no code in your app, so it's trivial to upgrade or remove the module.
View Details
Uli Kusterer's Source Code Page
This page contains some great open source controls and examples of Cocoa/Objective-C source code from Mac developer Uli Kusterer.
Includes: MacScare, MachO-CFM Glue, "Made with Cocoa" buttons, NiftyFEatures, ShadowCopy, UKCrashReporter, UKFeedbackProvider, UKDirectoryEnumerator, UKDistributedView, UKDockPregressIndicator,UKDockableView,UKPrefPanel, UKKQueue, UKDocumentController, UKFontMenuController, UKIdleTimer, UKSyntaxColoredTextDocument, UKSpeechSynthesizer, WindowFlipper,VerPack, UKToolBarFactory, UKXMLPersistence, UKXatteMetadataStore, UKLoginItemRegistry, UKFilePathView,NSWindow+Fade, UKCustomWindowFrame, UKProgressPanel, UKDebugNames, UKSOundFileRecorder,UKHelperMacros, UKTurboExport,UKDiffView.
View Details