« Higher Order Messagin - Take II | Main | Executing an Applescript from Cocoa »

March 15, 2006

Where are we standing

So I thought I'd give an update about how things are going with ChatKit, so here it is:
• The service plugins API is in place, and looks pretty stable. We'll soon start looking into adding some service plugins (AIM/ICQ (joscar) and GTalk (libjingle)).
• Our plugins API is designed to allow new services to add new features with minimal effort. Just write an ObjC protocol for it and adopt it by your account/contact implementation class. The framework will then support it without any modifications :)
• ChatKit can (in theory) connect to bonjour, get a list of all users and send/receive messages (type ahead and HTML messaging are also supported).
• Static groups are in place. Now I'll start working on virtual/local groups (meaning dynamic (like iTunes's) groups and sub groups).

The only problem is that all of the code is untested. We're working on making a test client to test and demonstrate ChatKit's powers.

Some cool thing ChatKit allows by design are:
• Multiple applications connect to a single daemon and use the same sessions. This means that you'll be able to have, for example, both Adium and Proteus running and connected to the same accounts. Messages will appear in both, and changes made in one will immediately be reflected in the other.
• Since all the communication with the daemon is made using DO, you can connect to remote daemons without additional code. Just imagine the possibilities when you combine it with what I just said before ;-)
• ChatKit is designed to hide the differences between different protocols. ChatKit creates uniform interfaces to access the same feature on multiple services (read the "Writing Service Plugins" manual for more info). This means that if you implement support for nudges in your app, it'll "just work" for both MSN and Yahoo, and even if bonjour will add support for it someday, you'll have to write no code to handle it, except well, enabling a GUI for it ;).
• ChatKit allows different service plugins to implement identical protocols. The host app can then just choose what implementation it prefers based on the features it supports. ChatKit even takes it one step further, and allows you to create 2 sessions of the same protocol using different implementations.

Posted by Ofri Wolfus at March 15, 2006 06:05 AM

Comments

Would it be possible to have peek at the code ? I know it's early but I want to get an idea of the APIs you guys are going to expose.

Thanks

Posted by: uwe at March 22, 2006 04:12 PM

Sure. The code is in our subversion repository located at http://svn01.23i.net/chatkit/trunk.
Have fun :)

Posted by: ofri at March 22, 2006 04:30 PM