Qt Roadmap
|
Our job at Nokia is to build the best cross-platform application and UI framework – but we can't (and don't want to) do it alone. Whether you're developing 3D simulation software or creating a UI for a consumer electronics device – or both – we want to hear from you how we can improve Qt to better fit your requirements. To show you where Qt is heading, and to give you a chance to shape that direction, we've provided a Qt Roadmap below. Learn more, make suggestions, and even contribute code to Qt – which ever way you choose to provide your feedback, we're looking forward to hearing it! |
How to Read the Qt Roadmap
The Qt roadmap provides an overview of new features delivered in the most recent Qt release, features planned for delivery in 2010, as well as active research projects. Follow the
(Info) links for a brief description of new features, and – where available – follow the
(Qt Labs) link for project pages, blog posts and discussion. Provide feedback on new features by posting to the Qt mailing lists.
| Delivered in 2009 |
Delivery in 1H 2010 |
Active Research Projects |
|
|---|---|---|---|
Enabling cutting edge UI development Web and hybrid development Qt Tools New Qt platforms
|
Improved performance
Enabling cutting edge UI development API Completeness
New Qt platforms
|
Framework research
API Completeness
|
|
Platform Support
|
Contributions Needed | ||
|
For changes in platform support, see the Qt documentation. |
There are several areas where we´d like to improve or add to Qt, but don´t have enough resources to do the research ourselves. If any of these items are of particular interest to you, we´d welcome your contributions! |
|
|
|
Help shape the future of Qt by contributing your own code to the framework or tools. Open repositories for Qt, Qt tools and various Qt research projects are hosted at http://qt.gitorious.org – there, you'll find:
Start Contributing Now! |
The Fine Print |
Feature Details
Declarative UI programming
Part of the Qt Kinetic project, the declarative UI provides a unique way of building user interfaces, encouraging developer-designer collaboration, vibrant and organic user interfaces, and fast time-to-market with rapid prototyping. It uses an expressive declaration language to allow describing how UIs should look and behave instead of how they are constructed.
Animation API
Part of the Qt Kinetic project, the Animation API allows users to create complex animations of an arbitrary set of components using intuitive states and transitions, requiring fewer lines of code. Early version currently available as a Qt Solution.
States and Transitions
Part of the Qt Kinetic project, States and Transitions provide a robust state chart implementation based on Harel statecharts and SCXML that simplifies complex application semantics with states to reduce code and improve maintainability.
Multi-Touch & Gestures
Enables user interaction with more than one finger, and combines sequential touch inputs to a ‘gesture’. Simplifies finger-based interaction with UI components, allowing common basic gestures, extensibility as well as semantically complex multi-touch gestures.
JavaScript Engine Unification
Qt currently has two Java Script implementations: (a) QtScript in Qt and (b) JavaScriptCore in WebKit. The aim is to use JavaScriptCore as the back-end of QtScript.
jQuery-Inspired DOM Access
Web pages and XML both have very complex document object models. jQuery and the W3C selector API provides a very simple way to access and manipulate such structures without incurring a large maintenance or footprint penalty.
3D Enablers
Provide APIs to simplify creation of 3D applications with OpenGL, including math primitives for matrix multiplication, vectors, quaternions (client-side) and an API for vertex and fragment Shaders. Future research will be done on stencils, vertex buffers and arrays, texture manipulation and geometry shaders.
Tools Support for Declarative UI Construction
Enhance Qt Creator by introducing extended debugger support for VS debugger and further improvements to the gdb integration, as well as adding new C++ language tools for re-factoring and code generation. Declarative UI designer will allow programmers and designers to create state-of-the-art, visually appealing user interfaces utilizing declarative UI technology.
Continue and enhance Eclipse and Visual Studio Plug-Ins
Release the Qt Eclipse Integration under an open source license to bring it in line with Qt and other Qt tools, and open up for contributions from the community. Continue with active development and updates of the Qt Eclipse Integration for each Qt release, and enhance with new features.
Major overhaul and redesign of the internal architecture of the Visual Studio plug-in to improve the support for different Windows platforms such as 64-bit and Windows CE. Discontinued support for Visual Studio 2003.
Memory and Resource Handling
Auditing Qt components for memory use as well as investigating exception safety and out-of-memory conditions.
XML Schema Support
Enable validation of XML using Schema.
Qt 3D Portability API
Portability layer to reduce the pain of writing 3D applications for OpenGL and OpenGL/ES on desktop and embedded platforms.
Next Generation Item Views
A new model/view-like architecture that makes it easier and faster to make beautiful and usable lists, tables and trees.
Hybrid Application Development
Hybrid applications use a combination of easily approachable web technologies and powerful and scalable C++. Qt already includes capabilities for web and hybrid development, such as the QtWebKit and QtScript modules, QNetworkAccessManager and libraries for using XML. The hybrid development research is looking into enhancing the hybrid development capabilities of Qt and Qt tools.
QtScript API for WebKit's Javascript Environment
Use the Qt Script API to interact with the JavaScript environment of QtWebKit. This allows developers to easily expose new JavaScript APIs to WebKit.
Build Systems
Improve the build system for example by making it easier to configure how Qt is built and by researching integration to packaging tools enable the deployment of software for different platforms.
Community and Collaboration Tools
Research on tools for enhancing multi-user and/or multi-site project collaboration. The tools may include, for example: version controlling; shared bulleting boards, clip boards, comments, and to-do lists; project-related communication; as well as real-time sharing of application. Some of these tools may also be used to improve open source community collaboration.
Bearer Management API
Enables enumerating available network configurations and controlling network sessions.
Contacts API
Work with contact data. This includes creating, reading, updating and destroying contacts plus querying the available contacts. Implementations for select contact stores are provided and it is possible for developers to add support for additional contact stores. Supports synchronous and asynchronous interaction.
Messaging API
Work with SMS, MMS and email messages. This includes sending and receiving messages plus flexible search functionality.
Location API
Query the current location and be notified of changes in location. Underlying location technology agnostic.
Service Framework
A Qt based system for creating services plus discovering and working with said services. Services can be used from native applications or from runtime environments that can work with QObjects such as QtScript.
Publish and Subscribe API
Enables the sharing of context information in the form of hierarchical data. Data is represented using QVariants.
Multimedia API
New plug-in architecture for multimedia supporting multiple backends. Play back and capture audio or video, manage playlists, and use a camera or a radio.
System Information API
Access and be notified of changes in underlying system information. Includes things like battery and network status. Makes it possible for application to be written that react to the underlying system status. For example, applications can be written that go to a low power state when it is detected that the system is using battery rather than being connected to power.
New Embedded Linux Architecture (Project Lighthouse)
New embedded Linux architecture that will make it easier to port Qt to new platforms.
Next Generation Widgets
Research on a new Graphics View based widget architecture that would provide a set of basic widgets, item-views and specific purpose widgets, with rich support for styling and theming and integration with new declarative UI programming features in the Qt Kinetic project. The evolution and further development of the QWidget architecture is also researched.
HTTP Improvements for Rest
Researching improvements in HTTP for better compatibility with REST based web interfaces. This includes support for multi-part MIME content, new HTTP authentication methods and JavaScript Object Notation (JSON) support.
UDP Multicast
Support IP multicasting with the User Datagram Protocol (UDP).
Image I/O improvements
Research new features in file I/O for images, such as partial image loading, EXIF metadata support, and support for image thumbnails.
Benchmark improvements
As part of our ongoing focus on improving Qt performance, we have been adding benchmarks for key parts of Qt. If you see an area of Qt you feel should be better covered with benchmarks, we welcome your contributions.

