Some of the source code which we've written for our Mac OS X and iPhone applications is available for use under the terms specified in the Omni Source License (basically the MIT license). We have not yet provided any formal documentation, though the source code does include a limited amount of internal documentation.
(Requires Mac OS X 10.5 and Xcode 3.0 or later)
Discussion of our frameworks can be found in our Frameworks Forum.
Feedback on this source code release may also be sent to omnisource@omnigroup.com.
Brief descriptions of the frameworks:
- OmniBase
- OmniBase is the lowest level framework in the Omni framework suite, used by every product we ship. OmniBase provides a series of debugging aids for class allocation and initialization, an alternative assertions mechanism, several Objective-C runtime manipulation aids, and a very reliable, cross-platform implementation of +load (called +didLoad).
- OmniFoundation
- OmniFoundation is our extension to Apple's Foundation framework. Besides several extremely useful extensions to Apple Foundation classes, OmniFoundation provides a horde of unique and powerful classes. Among the more interesting are:
- OFStringScanner - A blindingly fast Unicode-safe alternative to NSStringScanner, for when you really need to burn through those character streams.
- OFRegularExpression - Powerful regular expression processing wrapped in an Objective-C shell. Combine with OFStringScanner for extra fun.
- OFTrie - Implementation of the popular trie data structure. Interfaces to OFStringScanner for rapid scanning of "longest" token elements.
- OFMessageQueue & OFQueueProcessor - Writing stable multithreaded applications is an error prone process. These classes help de-fang the savage beast.
- OmniFoundation is a veritable treasure chest of programming goodies. Take a look for yourself.
- OmniDataObjects
- OmniDataObjects provides a CoreData-like API, but with a much smaller feature set (and thus implementation). Built on top of SQLite, OmniDataObjects provides the persistence for OmniFocus on the Mac and iPhone.
- OmniAppKit
- OmniAppKit is our set of extensions to Apple's AppKit.framework, full of cool stuff to make Mac OS X application development even easier. Some highlights:
- AppleScript - OAOSAScript makes it super-easy to run AppleScripts from within a Cocoa app, and companion classes introduce features such as automatically populated script menus, scripts on toolbars, and extensions to the Text suite allowing scripters to manipulate rich text.
- OAPreferences - An architecture for building multi-pane Preferences windows. All you need to do is write the individual preference panes (which is quite easy) and OAPreferences will automatically generate an appropriate Preferences window one like System Prefrences if you have lots of panes, or one like Mail's Preferences window if you only have a few.
- OAFindPanel - Apple has a standardized architecture for Find in applications, but they leave implementing it entirely up to developers. OmniAppKit provides a powerful Find & Replace panel and a protocol for easily making widgets and documents in your app searchable.
- OmniAppKit also includes lots of extensions to Apple's classes to make creating rich user interfaces much easier.
- OmniInspector
- Omni's inspector framework as seen in OmniGraffle, OmniFocus, OmniOutliner and OmniPlan!
- OmniNetworking
- OmniNetworking provides a simple and extensible Objective-C wrapper to a multitude of complex networking constructs. Communication over several internet standard protocols is supported, including TCP, UDP and Multicast. Writing a simple FTP client, or custom TCP/IP-based server program becomes a trivial task using OmniNetworking.