KMail as components, Akonadi Mail Reader

Aug 20, 2009 | 3 minutes read

Tags: Akonadi, IMAP, KDE, Mail

In my previous post, I’ve been discussing our progresses on some protocols support, and that Akonadi could now be fed with quite some mails. That’s neat to us developers who can make application harvesting data in there… But for the user it’s not really useful if he can’t see the data. Well, recently I’ve also been working on showing up collection statistics we can get from Akonadi, and also I ported KMail message list view to Akonadi (also making it a separate library). In the meantime, the fearless Andras has been porting KMail mail reader view to Akonadi (also making it a separate library). In fact, it is the current thread in the huge task which is the porting of KMail to Akonadi. We’re ripping KMail apart, each important set of features are factored out in a library and ported to Akonadi. In the end we’ll have a KMail completely based on Akonadi. But also, it will be much more modular, reusable for other mail clients, but also news readers, etc. Which means that the new architecture will be better suited at supporting a wide range of devices and a good base for future works. Anyway, both Andras and me had a small test application for each of our new frameworks… So I took some time to merge the features of both into a single application: the Akonadi Mail Reader. This new baby is mainly a prototype to toy with ideas and try out the components we’re making out of the monolithic KMail. Still, it weights just under 400 lines of C++ code, and you can completely browse all the mailboxes you configured in Akonadi thanks to it. Of course, here is the obligatory screenshot: Screenshot of the new app in kdepim which is a proof of concept mail reader using only Akonadi It looks so much like a miniature version of KMail that it is almost scary. But don’t fool yourself, there’s a lot to do to have a full fledged KMail which will be only based on Akonadi. We’re not there yet, still it is nice to see the whole thing taking shape, in particular to reach the point where you can actually read your mail over IMAP using this small prototype and feel almost at home with it thanks to this familiar touch. :-) From my point of view, the KDE culture of working a lot with components really pays off. KMail was first created at a time where this KDE culture didn’t reach it’s full potential yet, hence why we need to refactor it now. But, following this culture it is really nice to see that we’ll end up with small packages of mail client functionalities, and, that thanks to them and to Akonadi, it will be easy to integrate them in any application. We made a relatively complete mail reader in under 400 lines of code, so simply displaying mail content in your application or a message list becomes a trivial task.