Mobile

Twitter Releases Open Source UI Framework for Mac

By Adrian Bridgwater, July 06, 2011

Fast Core Animation UI for the Mac

Twitter has taken formal steps to offer TwUI as an open-source framework for developing interfaces on the Mac. To define it more specifically, TwUI is a hardware-accelerated user interface (UI) framework for Apple Mac.

According to the github social coding website, "TwUI should be considered an alpha project. It is currently shipping in Twitter for Mac, in use 24/7 by many, many users and has proven itself very stable. The code still has a few Twitter-for-Mac-isms that should be refactored and cleaned up."

The release of TwUI to the software development community addresses the fact that (according to Twitter) until now, there was not a simple and effective way to design interactive, hardware-accelerated interfaces on the Mac.

"Core Animation can create hardware-accelerated drawings, but doesn't provide interaction mechanisms. AppKit and NSView have excellent interaction mechanisms, but the drawings operations are CPU-bound, which makes fluid scrolling, animations, (and other effects) difficult — if not impossible — to accomplish," said Twitter, in a press statement.

Twitter says that TwUI brings the philosophy of the already available UIKit to the desktop. It is built on top of Core Animation, and it borrows interaction ideas from AppKit. It allows for all the things Mac users expect, including drag-and-drop, mouse events, tooltips, and Mac-like text selection.

The special sauce here may well be the fact that since TwUI isn't bound by the constraints of an existing API, developers can experiment with new features like block-based drawRect and layout.

How TwUI works:

You will recognize the fundamentals of TwUI if you are familiar with UIKit. For example, a "TUIView" is a simple, lightweight wrapper around a Core Animation layer — much like UIView on iOS.

UIView offers useful subclasses for operations such as scroll views, table views, buttons, and so on.

TwUI makes it easy to build your own custom interface components.

Because all of these views are backed by layers, composited by Core Animation, your UI is rendered at optimal speed.

"Since TwUI forms the basis of Twitter for the Mac, it is an integral part of our shipping code," says Twitter. "Going forward, we need to stress test it in several implementations. We'll continue to develop additional features and make improvements. We encourage you to experiment, as that will help us build a robust and exciting UI framework for the Mac."

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!