Tixe is a Mac OS X framework that brings the power of Cocoa bindings to Apple's WebKit.
Access and edit document content, styles, node attributes, and markup... even bind Cocoa controls to JavaScript values. And it all runs live inside of Interface Builder.

Update: Tixe is becoming a stardard part of WebKit!

I've been working with the WebKit team to integrate the functionality of Tixe into WebKit. Most of the core features are now in the WebKit nightly builds. I'll post more information as things develop.

Tixe's WebController makes building Internet applications with WebKit so much easier. You just drop a controller from Tixe's Interface Builder palette into your project, drag a connection from the controller to your WebView, and Tixe makes the entire DOM tree available for binding. Connect some user interface elements to the WebController, and you've made a functional application with zero lines of code. You can run the project in Interface Builder's simulator mode to test your design and quickly make improvements. Tixe comes with several example NIB files that show off its features. Just open one up and try running it.

Overview

I doubt that it needs saying, but Tixe is a developer toolkit, not an end-user program. The goal of the tixe framework is to provide the controller component to complement the view and model that Apple provides in WebKit. If you've tried to do anything interesting with a WebView via Cocoa bindings, you know why something like Tixe is needed. WebView's small set of bindings don't provide much more than simple browser back-forward functionality. Tixe gives you the whole DOM and CSS to play with. Plus, there is experimental support for binding to JavaScript values and data. Access to external XML data is in the works as well.

For the curious, version 1.0 was named BionicDOM. I decided to change the name with this release, because I like Tixe better.

Download

The current version is 1.1.

Source code is available via subversion at http://end.com/svn/tixe

Installation

Installation is easy, just unzip the downloaded file and open the installer package. It will install the tixe.framework at /Library/Frameworks/tixe.framework. Also in the archive is the Interface Builder palette, which you can put wherever you like (~/Library/Palettes is typical). Double-click on the palette to load it into Interface Builder.

Use

Open one of the sample NIB files in Interface Builder. Run it in the IB simulator by choosing Test Interface from the File menu (⌘R). Play around with the interface in the simulator, everything should be fully functional. If you get that far, email me, and I'll write more documentation. Honest, I will.

Watch for yourself: here's a screencast of me using Tixe to make a web page editor application. From start to finish it's just over 7 minutes. (including mistakes - it's completely unedited)

Technical Details

How does it work...?
Lots of fun messing with things in ways they weren't intended to be messed with. It's written in Python using PyObjC (which rocks by the way... thanks, you all.)

(I need to actually write this section...)

Disclaimer

Please read the license below for the full legal disclaimer, but basically use it at your own risk. I've done my best to make it work right, and it works well for me, but I can't give you any guarantees.

Author

tixe was written by James G. Speth.

Feedback

Feel free to send me any feedback at speth@end.com. You can also post comments on my development blog.

License

It's pretty free, check it out...

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 License.