Monday, January 25, 2010

Introducing TelepathyQt4

So this is the beginning of a series of blog posts about TelepathyQt4. I am going to start with a basic introduction: what it is and the ideas behind it.

These blog posts are intended to explain what TelepathyQt4 is, and how to use it to write IM/VoIP/Communication applications. They are not meant to explain what Telepathy is, or what it's intended for. Please check the wiki page for a quick introduction to Telepathy.

- First: what is TelepathyQt4?

TelepathyQt4 is a convenience library, written in Qt4, for those who want to write applications that use the Telepathy framework.
The idea is to have a high-level, but complete, API that hides most underlying D-Bus calls, making it easy to communicate with other applications using Telepathy.

- Why TelepathyQt4?

Up until we started writing it, there were only convenience libraries for Glib and Python, so Qt4 developers were left behind. Those who wanted to use Telepathy had to stick to those libraries or use D-Bus directly. This was limiting the usage of Telepathy across Qt/KDE applications.

- What kind of application can make use of TelepathyQt4?

Right now we have a Kopete branch (implemented as a Kopete protocol plugin) that makes use of TelepathyQt4, and an experimental krdc/krfb branch that enables sharing the desktop among IM contacts.
Other applications that can use TelepathyQt4 include:
* instant messaging programs
* email applications that want to show contacts' presence
* word processors that want to let users collaborate across the internet

- Components:

TelepathyQt4 is divided into 2 parts: the classes that are auto-generated from the spec, and the high-level API that uses the auto-generated classes internally, exposing an easy-to-use API for applications.
We tried to make it as extensible as possible, so adding support for new D-Bus interfaces is quite easy.

We just hit the first milestone with the 0.2 version, which will be API/ABI compatible across the 0.2.x release cycle.
The library is maintained by Collabora and any help is appreciated.

If you have interest in using/collaborating with TelepathyQt4, you can join #telepathy@freenode or #kde-telepathy@freenode for more KDE-specific questions or check the mailing list.
You can also poke me (andrunko - current maintainer) or Simon (smcv - official reviewer).

Development is done in the git repository found here and releases can be found here.

In the next blog posts I will be talking about how to use it, so stay tuned.

Monday, December 22, 2008

New job

So, for those of you that don't know yet, I left INdT and joined Collabora this month.

I had been working for INdT for almost four years and decided that it was time to try new things. I would like to thank everybody on INdT for all these years and say that it was a pleasure working with all the guys there.

From now on I will be working with Telepathy Qt4 library. It's meant to be a convenience library on top of Telepathy spec. I've spent the last 2 weeks on Cambridge and had a great time there. The whole team seems really motivated to make this library rocks. It's still in its early stages, but things are progressing really fast.

If you are interest in the code, you can check it out from here.

Tuesday, August 19, 2008

Mamona Rocks!

So it has been some time since I have blogged as I had a long well deserved vacation. Some time before going on vacation I spend some days with the Manona guys, helping them implement keyboard support, a long missing feature in Mamona, and a quite important one :-)

Happily I found out today that the guys succedeed in adapting my code to their needs. Details is outlined in Aloiso's blog, which can be found here.

Cool work guys, Manona is rocking even more now!

Monday, May 05, 2008

Maemo Keyboard on Qt4 applications

So, it seems I really like working with Input Methods.

This time I present you the Qt4 input context plugin for Hildon Input Method. So for now all Qt4 applications can make use of the maemo keyboard.

The code is still in its initial stage, but it's working so far. You can grab it from here.

Contributions are really welcome. If you want to help, please consider looking at the FIXME list on qhildoninputcontext.cpp :).

UPDATE: Thanks to Rodarvus to point me out that qhildoninputmethod.cpp didn't exist, changing to qhildoninputcontext.cpp :D

Tuesday, November 20, 2007

iPhone like keyboard on Canola

So after creating the framework to allow different input methods for Ecore and added Maemo Keyboard support for it, I decided to try a fancier thing.

It took me a few hours to get the amazing work done by Gustavo, port it to C and create an Ecore Input Method for it.

You can see the result on this video:



I would like to clarify that this video is just to demonstrate how easy is to create your own input method for Ecore. It doesn't mean that Canola will use it.

So that's it, I hope you enjoy.

If you are interested you can download the code from here.

Friday, November 16, 2007

Maemo Keyboard on Ecore applications

Last week, we at the office were discussing how we should integrate the maemo keyboard with the new Canola. After some time studying how Input Methods work, I decided to implement a framework for pluggable IM on Ecore, called Ecore_IM.

Ecore_IM is based on Gtk/Qt Input Method frameworks and works with pluggable so called immodules. So after writing the API for Ecore_IM I wrote a plugin hildon-input-method for accessing the maemo keyboard.

I already integrated it with Etk, so all Etk applications running on the device will automatically show the keyboard when requested. I intend to implement support for E widgets, so Mamona that is shipping with E can use the maemo keyboard.

If you are interested in using it or integrating it in your application you can grab it from here. The Etk support can be found here.

I hope this get integrated in Ecore really soon, so stay tuned.

Friday, November 09, 2007

N810 maemo submission accepted

N810 maemo submission accepted

Congratulations! You have been accepted to the N810 maemo device
program. We will send your discount and instructions as soon as the
device is available in your selected shop (soon).
Hooray! I can't wait to put my hands on my new toy!!!