Qt adds multi-touch, supports Maemo and Symbian
Dec 1, 2009 — by Eric Brown — from the LinuxDevices Archive — 4 viewsNokia's QT Software has upgraded its “Qt” cross-platform application and UI framework, now featuring multi-touch and gesture support. Qt 4.6 adds support for Nokia's Symbian and Maemo platforms, and provides enhancements including new animation and state-machine frameworks, an updated Qt Creator IDE, and new OpenGL and WebKit engines.
Much of the focus of the Linux-ready Qt 4.6 framework is on the UI stack, especially as it pertains to mobile devices like Nokia's Maemo-based Nokia N900 smartphone, pictured below. "With Qt 4.6, we are adding more support for embedded systems, and smartphones in particular," said Dilip Kenchamanna, Technologist, Qt Development Frameworks, in an interview with LinuxDevices yesterday. "We are now offering key enablers for a deep integration of hybrid methods of development, letting developers work across platforms and combine web-based and native technologies."
Nokia N900 running Maemo 5
Based on Qt 4.6, the port is now being offered in a second technology preview release, and will be offered in a final release in the first quarter of 2010. Developers can use the software to port Qt applications to the N900 or write N900 apps with Qt and port them to the upcoming Maemo 6, Symbian, or other Qt-compatible OSes such as Windows Mobile.
Combined with the Maemo support, the new support for Symbian "creates the first opportunity for developers to target both of these platforms from the same codebase," says Nokia, enabling applications to "reach the market faster and reach a broader audience of device users."
Only one new Maemo phone in 2010?
Nokia and the Symbian Foundation are in the process of reinventing the aging Symbian OS as an open source platform. However, with the release of its first Maemo-based phone, the N900, it appears that Maemo is the future for Nokia, at least on high-end smartphones.
Still, Nokia insists that Symbian remains its chief focus, and this week, Reuters quoted Ari Jaaksi, head of Maemo at Nokia, as saying that only one new Maemo phone will ship in 2010. Jaaksi appears to suggest that the company is waiting for Maemo 6 before it makes an all-out push for Maemo phones. "The potential of Linux computer operating system is in the high-end, and we have not yet fully harnessed that," Jaaksi was quoted as saying (see link at end of story).
Finally, thanks to community-driven efforts (see farther below), Qt also now supports the QNX and VxWorks real-time operating systems (RTOSes). Support for existing platforms has also been updated, enabling Qt 4.6 to support Windows 7, Apple Mac OS 10.6 (Snow Leopard), and the latest versions of Linux.
Animation and multi-touch
Qt 4.6 introduces a new Animation Framework, which lets developers animate Qt elements called QObjects, including QWidgets, and enables custom animations and interpolation functions. "Our main focus for 4.6 has been on our Animation Framework," said Kenchamanna. "It allows developers to create a very dynamic, fluid UI, with support for transitions and multi-touch. Animation performance is also improved, and we now offer a synchronized timer to better manage CPU utilization."
Qt 4.6 animation effects
The new multi-touch capabilities include gesture-based input methods such as flicking and kinetic scrolling (see the YouTube demo at the bottom of the page). Several basic gestures have been pre-programmed, with tools available for developing more advanced gesture input methods, said Kenchamanna. Due out next year, Maemo 6 will provide a full slate of gestures based on the technology, and the multi-touch effects will be widely used on netbooks running Linux and Windows 7, he added.
Graphics effects in Qt 4.6
OpenGL, WebKit, and DirectFB
Overall performance improvements are said to stem from a re-written Qt GraphicsView rendering algorithm, as well as a new OpenGL paint engine and support for 2D vector graphics using OpenVG. These enhancements, meanwhile, can be put to work in an overhauled WebKit implementation.
"A major performance focus has been with WebKit," said Kenchamanna. "We are working with a recent branch from the WebKit trunk, and have added several key optimizations that enable WebKit to be a true web rendering engine on embedded systems. The version we offered in Qt. 4.5 was primarily for PCs, but this implementation offers things like better support for Javascript and Java JIT [just-in-time compiler]. And having web pages rendered to be hardware accelerated via OpenGL is also important. All this pushes WebKit to the next level for embedded development, and for enabling hybrid development."
In addition, Qt 4.6 offers support for the open source Linux DirectFB library. Aimed at the set-top box (STB) market, DirectFB offers "hardware graphics acceleration, input device handling and abstraction, and integrated windowing system with support for translucent windows and multiple display layers," according to DirectFB.org.
Qt Software has integrated DirectFB with Qt so that on Qt-driven STBs such as the Roku player (pictured at right), "all the features in Qt are now accelerated, so set-top delivers can deliver fluid user experiences on very high-resolution screens," said Kenchamanna.
Qt Creator 1.3
Qt Software has also updated the Qt Creator integrated development environment (IDE) that was introduced with Qt 4.5, and which is included in the Qt 4.6 SDK (software development kit). In addition to its previous support for Linux, Windows, and Mac desktop hosts, the version 1.3 offers preliminary support for Symbian targets, said Kenchamanna.
Qt Creator offers new support for source code refactoring, which helps with developers who are working with large existing code bases and libraries, said Kenchamanna. "It helps to keep the architecture and the code consistent on the same environment for all developers to work on," he said. "It offers syntax and coding style standardizations, and you can do things like essentially doing a smart search and replace over a whole project."
Community input and the ghosts of Qtopia
The QNX and VxWorks RTOS ports are only part of the open source community driven contributions that have been integrated in Qt 4.6 and Qt Creator 1.3. "This is the first release since we launched the new Qt contribution model, and the community has provided a lot of input," said Kenchamanna. "People are not only providing feedback, but are now directly producing patches in a public system, a fair majority of which were accepted. They are also co-developing code with our developers. Qt is getting vital contributions both from the open source community, as well as commercial entities and corporations."
Qt 4.5 was the first Qt release to be offered under a more open LGPL ("Lesser" or "Library" General Public License) licensing option, alongside existing commercial and GPL license options. In conjunction with this development, Qt Software launched a Qt contribution website where developers can view the Qt code repository, read coding guidelines, and contribute to Qt-related development projects according to a clearly stated contribution model.
With Qt 4.6, Nokia has also released a technology preview of new Qt APIs from the Qt Mobility project, which is endeavoring to salvage the best components of the soon to be discontinued Qt Extended application stack for mobile Linux devices. Nokia announced a phasing out period for Qt Extended, which was formerly called Qt for Embedded Linux, and before that, Qtopia, when it announced Qt 4.5 in March. The first of these cross-platform APIs are said to provide developers with functionality such as location for navigation-type devices, as well as messaging, contacts, and bearer management.
YouTube mini-demo of new Qt multi-touch effects
Source: Qt Software
(click to play)
Availability
More information on Qt 4.6, with links to downloads for the Qt 4.6 SDK, may be found here. More information on Qt Creator 1.3 may be found here.
The Reuters story on Nokia's Maemo smartphone plans may be found here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.