Sections

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!


info-circles-3d 

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 About us Info circle (Info) links for a brief description of new features, and – where available – follow the Beaker (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
  • Qt Kinetic project Beaker
    • Animation API About us Info circle Beaker
    • States & Transitions About us Info circle Beaker
  • Multi-touch About us Info circle Beaker
  • Gestures About us Info circle Beaker
  • OpenVG Beaker
  • 3D enablers About us Info circle

Web and hybrid development
  • JavaScript Engine Unification About us Info circle
  • jQuery-inspired DOM access About us Info circle Beaker
  • XML Schema support About us Info circle Beaker

Qt Tools

  • Continue and enhance Eclipse and Visual Studio plug-ins About us Info circle

New Qt platforms



Improved performance
  • New metrics showing performance improvements

Enabling cutting edge UI development
  • Declarative UI programming About us Info circle Beaker

API Completeness

  • Bearer Management API Beaker About us Info circle
  • Contacts API  About us Info circle
  • Messaging APIBeaker About us Info circle
  • Location API BeakerAbout us Info circle
  • Service Framework API  Beaker About us Info circle
  • Publish and Subscribe API  BeakerAbout us Info circle
  • Multimedia API  Beaker About us Info circle
  • System Information API Beaker About us Info circle
Tools research
  • Tool support for Declarative UI construction About us Info circle

New Qt platforms

Framework research
  • Hybrid application development About us Info circle
  • Memory and resource handling About us Info circle
  • Qt 3D portability API About us Info circle
  • New embedded Linux architecture  Beaker About us Info circle
  • Improved build systemBeaker About us Info circle
  • Next generation widgets Beaker About us Info circle
  • HTTP improvements for Rest About us Info circle
  • File IO improvements About us Info circle

API Completeness
  • Document gallery
  • Calendar
  • Sensors
  • Location/landmarks

Tools research
  • Hybrid application development About us Info circle
  • Community and collaboration tools About us Info circle

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!

  • UDP multicast About us Info circle
  • Image IO improvements About us Info circle
  • Benchmark improvements About us Info circle

 

Help Shape Qt: Contribute!

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:
  • Full source code for Qt, tools and projects for you to inspect, check out and modify
  • Instructions on how to get started
  • Qt contribution guidelines

Start Contributing Now!

The Fine Print
The Qt Roadmap is intended to keep Qt users up to date on where Qt development is and where it’s going.  This commitment to transparency extends to any changes we may have to make to the roadmap.  Although we are committed to meeting all product targets, dates and features included in the Qt Roadmap, priorities may change and items may be moved to later releases and/or deleted from the roadmap.  Therefore, future product plans, dates and functionality included in the roadmap are subject to change, in Nokia’s sole discretion and we advise you not to make any serious business decisions based on unreleased features or functionality.   Please note that the Qt Roadmap is property of Nokia Corporation and its subsidiary(-ies) and is available for users working with Qt.


 

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.

Provide Feedback

 

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

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback 

 

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.

Provide Feedback

 

Memory and Resource Handling

Auditing Qt components for memory use as well as investigating exception safety and out-of-memory conditions.

Provide Feedback

 

XML Schema Support

Enable validation of XML using Schema.

Provide Feedback

 

Qt 3D Portability API

Portability layer to reduce the pain of writing 3D applications for OpenGL and OpenGL/ES on desktop and embedded platforms.

Provide Feedback

 

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.

Provide Feedback

  

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.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

Bearer Management API

Enables enumerating available network configurations and controlling network sessions.

Provide Feedback

 

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.

Provide Feedback

 

Messaging API

Work with SMS, MMS and email messages. This includes sending and receiving messages plus flexible search functionality.

Provide Feedback

 

Location API

Query the current location and be notified of changes in location. Underlying location technology agnostic.

Provide Feedback

 

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.

Provide Feedback

 

Publish and Subscribe API

Enables the sharing of context information in the form of hierarchical data. Data is represented using QVariants.

Provide Feedback

 

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.

Provide Feedback

 

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.

 

Provide Feedback

 

New Embedded Linux Architecture (Project Lighthouse)

New embedded Linux architecture that will make it easier to port Qt to new platforms.

Provide Feedback

 

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.

Provide Feedback

 

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.

Provide Feedback

 

UDP Multicast

Support IP multicasting with the User Datagram Protocol (UDP).

How to Contribute

 

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.

How to Contribute

 

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.

How to Contribute

 

Document Actions