Just a few hundred kilometres from our Oslo office in the Swedish city of Hagfors sits one of the foremost independent sources of Qt consulting and mentoring, training and add-on products - KDAB. KDAB is a Qt Certified Partner and they're a nice bunch of guys and girls too.
Recently, KDAB and its partners Intevation and g10code used Qt 4.7 to build a KDE-based mobile application suite called 'Kontact Touch'.
Kontact Touch aims to bring the KDE Kontact desktop experience to smart devices. The desktop version of KDE Kontact is an integrated personal information management (PIM) solution, which combines well-known KDE applications such as KMail, KOrganizer and KAddressBook into a single interface to provide easy access to mail, scheduling and address book and more.
Using Qt 4.7 and the components of Qt Quick (specifically QML) under the LGPL licence, the KDAB, Intevation and g10code team has brought the KDE Kontact extended desktop technologies to the mobile device, with five specific applications: email, contacts,appointments, tasks, and notes.
Qt Quick powered email on the go: Kontact Touch
Performing effectively across platforms was a key criterion for this project, and Kontact Touch has been constructed from the start to be open and available across several touch and mobile platforms, such as Maemo, MeeGo and Windows Mobile, all of which it runs on today. This fits the philosophy of KDE Kontact on desktop, which currently supports among others GNU/Linux, Windows and Mac OS X.
Development of Kontact Touch happened fully under Free Software licenses and in the open. The KDE community was involved in the development and testing of the applications from the start. The full code base is available publicly.
By embracing Qt Quick very early, long before any of its components were officially released, KDAB and its partners were able to form a perfect marriage between the project's UI designers and the developers. Together these two groups were able to build a UI that would work effectively as a touch interface and be open enough to adapt to new mobile and handheld interface concepts as they emerge, all while retaining the functional depth of the Kontact suite.
KDAB developer Stephen Kelly described recently on his blog how Qt and QML provided the right tools and attributes for the project;
"Much of the UI layer (in Kontact Touch) is implemented in QML and the gestures support allows the use of swipe actions to for example expand slider panels on the side, flick through lists and go to next and previous items. Much of the code implementing the mobile application functionality is shared with the desktop versions of the applications. We estimated before that it should be possible to share up to 80% of the code between them."
This 80% code sharing goal was reached.
Looking at the product more closely, Kontact Touch does not sync data like other mobile solutions do, but exists as a rich client communicating directly with a groupware server such as the Free Software Kolab solution. This means that the data never goes out of sync. Part of the data is cached locally on the device (by the Akonadi framework) so that the user can access it while on the move.
We're excited that KDAB has had such as positive development experience with Qt 4.7 and QML. They have proven that it is possible to build complex, feature rich applications by combining new Qt Quick and traditional C++ based Qt development. We believe that the coding efficiency the companies were able to extract from Qt has allowed them to pay full consideration to areas like security (Kontact Touch supports SMIME and PGP signing and encryption, something few other mobile email clients provide).