Icedcoffee Framework

Abstract

Icedcoffee is a lightweight framework for building stunning, accelerated 2D and 3D user interfaces based on OpenGL ES 2. It is written in Objective-C and runs on iOS and Mac OS X. Among its most notable features are: perspective UI rendering, sophisticated shader-based picking and hit tests, buffering of views via OpenGL render textures and full event handling for all drawable objects. Icedcoffee essentially gives you full control of what's on the screen. It's a perfect match for every developer reaching the limits of UIKit and CoreAnimation.

Icedcoffee is designed to be clean, minimalistic, consistent and reusable for different purposes. It may be used to build interfaces for games, full application frontends or to extend existing application frontends with new OpenGL-based components such as infinitely scrollable views, animated overlays, and so on. Icedcoffee emphasizes easy integration and doesn't hijack your application. Promised!

Icedcoffee is open source and free for both non-commercial and commercial use (MIT license).

Getting the Source

The Icedcoffee source is hosted on GitHub. You may download a zipball of the current icedcoffee master from there or you may check out the source by opening up a terminal and typing:

git clone git://github.com/starbugs/icedcoffee.git

Building

Icedcoffee comes with a convenient Xcode workspace and a number of Xcode projects. Once you have downloaded the source, open icedcoffee.xcworkspace using Apple's Xcode 4.2 or newer, select a test application from the available schemes and hit Cmd+R to build and run the test.

Documentation

This website currently provides work-in-progress versions of the icedcoffee API reference for iOS and the icedcoffee API reference for Mac OS X. In the near future, there will be a number of guides, tutorials and examples. Promised.

Discussion

Meanwhile you may ask questions, provide praise or criticism or propose changes via the icedcoffee Google group.

Status of the Framework

The framework is currently in an early pre-release phase. Parts of the API may change in future versions and the framework has not been tested extensively yet. You are welcome to contribute by testing and reporting bugs or extending and fixing the framework's source.