samdeane edited this page Feb 26, 2012 · 18 revisions
Clone this wiki locally

ECFoundation is an open source library of Objective-C utility routines for Mac and iOS projects. It is distributed under the terms of the Elegant Chaos liberal license.

As the name suggests, this library is intended as a foundation for all my other libraries and projects, including the ECTwitter library and applications Neu and Ambientweet.


ECFoundation contains Mac and iOS code, some of which previously lived in other libraries.

It has now been re-organised as a single "umbrella" framework containing a series of modules, most of which are stored in their own github repositories and imported into ECFoundation as github.

The main objective of splitting into modules is simply to keep related things close together, but there is an additional objective, which is to attempt to allow use of some modules without requiring the whole ECFoundation framework.

Not all modules can be used standalone, since some of the higher level ones build on the functionality of the lower level ones. Thus the main point of also providing a single ECFoundation framework is to allow you to take everything away as one lump safe in the knowledge that you have compatible revisions of each module.

You can view ECFoundation as just a distribution mechanism, and simply drop the bits of source code from it into your project. Alternatively, you should be able to compile and use it as a proper framework (on Mac and iOS). Because it contains all the modules, if you use it as a framework you will have to link against all of the system libraries that the modules use. In most cases you can weak link though, and if you don't actually use code from a module, you won't actually need the system libraries that it uses.

Current / Planned Modules

  • ECAppKit - Mac OS X utilities, user interface classes
  • ECAnalytics - an abstract library which wraps crash reporting and analytics libraries such as Flurry, TestFlight, Webtrends etc
  • ECCore - contains common utilities, categories on standard Cocoa classes, etc
  • ECLocation - some location utilities
  • ECLogging - a flexible logging system
  • ECText - some text based utilities
  • ECTouch - iOS utilities, user interface classes
  • ECUnitTests - some unit testing utilities


Some of the code in ECFoundation is rough, or old, obsolete, or all of the above.

Some, on the other hand, is modern, and well used.

Some routines may well have been lifted from other open source libraries or web articles, when I needed something and found a solution that was good enough that I wanted to reuse it. These should all have attribution I hope, but if you find something that doesn't, let me know and I'll fix it.

At the moment ECFoundation is a framework that is only really used by me - and the level of documentation reflects that. I'm making it public because it seems like a good thing to do, and not necessarily in the expectation that it will be widely used.

Having said that, any interest in it will doubtless encourage me to organise it further!