The Qt Roadmap
                                   10/08/09
Lars Knoll, Director R&D
Qt Development Frameworks, Nokia
Agenda
• Qt Strategy and vision

• Qt 4.6

• Qt 4.7 and future

• Qt Creator and other tools




                               2
Recipe for the next generation Qt
     B a s ic ing redients          N ew fla vo rs          S ug a r o n the top
    S DK .
    C omplete end-to-end       C o ntributio ns .
    developer offering         C ode from community.
                                                           W ebK it.
    P erfo rm a nc e.                                      E mbrace the web.
    Native. Blazingly fast.    A P I c o m ple tenes s .

                               E xpanding to new use       S c ript a nd hybrid
    G o od ho us ek eeping .   cases.                      C ombine the best of both
    S table, backwards                                     worlds .
    compatible.
                               N ew pla tform s .
                               Q t E verywhere.
    A dva nc ed U I s a nd
    vis ua liza tio n.
    B eauty and power.




3
                                                                                   3
Qt 4.6

• Key goals
     • Enable better User Experience
     • Performance
     • Deploy everywhere




                                       4
New in 4.6: New Platforms
•   Windows 7
•   Mac OS X 10.6
•   Symbian
•   Real-time operating systems: QNX, VxWorks
•   Maemo 5




              Symbian: Today
               Symbian: Today
               @ 1300 Room B
                @ 1300 Room B
               Maemo: Today @
                Maemo: Today @
                1600 Room C
                 1600 Room C
               RTOS: Tomorrow
                RTOS: Tomorrow
               @ 1300 Room D
                @ 1300 Room D


                                                5
New in 4.6: States and Transitions
• A robust state chart implementation based on
  Harel state-charts and SCXML
• Key benefits:
  –   Simplify application semantics
  –   Use states to improve maintainability
  –   Solidify event-driven programming
  –   Write verifiable application logic


                State Machine
                 State Machine
                 Framework
                  Framework
               Tomorrow @ 1300
                Tomorrow @ 1300
                   Room C
                    Room C


                                                 6
New in 4.6: Animation API
• Allow users to create dynamic UIs
• Integrates with States and Transitions
• Key features:
   – Animate any QObject property
   – Combine animations in groups
   – Use easing curves
   – Synchronized timer for better
     CPU utilization
                         Animation
                          Animation
                         Framework
                          Framework
                       Tomorrow @ 1415
                        Tomorrow @ 1415
                           Room B
                            Room B


                                           7
New in 4.6: Graphics Effects
• Apply graphical effects to graphics items or
  widgets
• Add highlight or accentuation to create visually
  appealing user interfaces
• Key features:
  – Apply effects to any paint device
  – Common effects built in
  – Extend with your own effects
              Special FX with
               Special FX with
              Graphics View
               Graphics View
              Tomorrow @ 1015
               Tomorrow @ 1015
                  Room C
                   Room C


                                                     8
New in 4.6: Gestures & Multitouch
• Enable interaction with more than one finger

• Combine sequential touch inputs to a ‘gesture’

• Key benefits
  – Allow users to interact with applications in better ways
  – Simplify finger-based interaction with UI components
  – Allowing common basic gestures
    …as well as multi-touch gestures         Multitouch &
                                              Multitouch &
                                               Gestures
  – Enable extensibility                        Gestures
                                            Tomorrow @ 0900
                                            Tomorrow @ 0900
                                               Room C
                                                Room C




                                                               9
Qt 4.7: Qt Kinetic project
• Allow developers and designers to create flexible
  and visually appealing user interfaces using
  intuitive code or GUI designer

• Key benefits
  – Declarative UI programming
  – Encourages developer-designer collaboration
  – Faster time-to-market with rapid prototyping
  – Expressive language
                                            Creating
  – Exposes Qt objects and properties        Creating
                                          Dynamic UIs
                                           Dynamic UIs
                                           with QML
    via JavaScript                          with QML
                                        Tomorrow @ 1415
                                         Tomorrow @ 1415
                                            Room D
                                             Room D


                                                           10
Qt Future: Hybrid Development
                                            A ppro a c ha bility of

• Combine easily approachable web           P ro g ra m m ing
                                            E nvironm ent


  technologies with powerful and




                                                                      U
                                                                       na
                                                                        tta
                                             E as y




                                                                            in
                                                                               ab
                                                                      Ar
                                                         WR T
  scalable Qt C++




                                                                                  le
                                                                         e          a
                                                                      Q t C ++
• Qt already provides rich features     D ifficult                                      S ize of
                                                                                        P ro jec t
                                                      S mall                 Large
  – QtWebKit
  – QtScript     Combined, you can export        H ybrid A pplic a tio ns

                 QObjects to web scripts              Q t C ++ A pplic a tio n

  – QtXmlPatterns                                              HTM L, C S S ,
                                                                JavaS cript

  – QtNetwork         Scripting:                       B row s er/ S ta nda lo ne
                        Scripting:                        W R T A pp lic a tion
                      Today @ 1600
                       Today @ 1600                    S ervices written in Q t
                        Room A
                         Room A                        C ++, D eclarative UI,
                      Common Web                       Integration with Qt
                       Common Web
                        Runtime:
                         Runtime:
                      Today @ 1715
                       Today @ 1715
                        Room D
                         Room D
                                                                                        11
Qt Mobility

• The best framework also on mobile devices

• Cross-platform:
  – Symbian, Maemo, Windows Mobile, Embedded Linux
  – Desktop platforms (where appropriate)

• APIs under development:
  – Location, Messaging, Contacts,
                                        The Mobility
    System Information, Multimedia,      The Mobility
                                          Project
                                           Project
    Bearer Management, Sensors...      Tomorrow @ 0900
                                        Tomorrow @ 0900
                                           Room D
                                            Room D




                                                          12
Future of Qt tools
• Qt Creator                                 Creator: Today @
                                              Creator: Today @
                                               1415 Room A
                                                1415 Room A
                                                 Bauhaus:
  – Support for Symbian and Maemo                 Bauhaus:
                                             Tomorrow @ 1600
                                              Tomorrow @ 1600
                                                  Room D
                                                   Room D
  – C++ code refactoring tools

• Project “Bauhaus”
  – Graphical design tool for Qt Kinetic project
  – Targeted towards programmers and designers

• Continuous support for Visual Studio and Eclipse
  – Not limited to maintenance only



                                                             13
Qt SDK
• Qt SDK components
  – APIs
  – Tools
  – Documentation

• Desktop platform support in 4.6 timeframe

• For Qt 4.7: increased support for embedded /
  mobile development



                                                 14
More information
• Qt’s roadmap is public
  – http://qt.nokia.com/roadmap

• Roadmap BOF session today
  – 16.00 in Qt Labs (Room D)

• Feedback welcome
  – Influence our roadmap
  – Send us feedback
  – Send your code contributions to Qt



                                         15

The Roadmap: Next Generation Qt

  • 1.
    The Qt Roadmap 10/08/09 Lars Knoll, Director R&D Qt Development Frameworks, Nokia
  • 2.
    Agenda • Qt Strategyand vision • Qt 4.6 • Qt 4.7 and future • Qt Creator and other tools 2
  • 3.
    Recipe for thenext generation Qt B a s ic ing redients N ew fla vo rs S ug a r o n the top S DK . C omplete end-to-end C o ntributio ns . developer offering C ode from community. W ebK it. P erfo rm a nc e. E mbrace the web. Native. Blazingly fast. A P I c o m ple tenes s . E xpanding to new use S c ript a nd hybrid G o od ho us ek eeping . cases. C ombine the best of both S table, backwards worlds . compatible. N ew pla tform s . Q t E verywhere. A dva nc ed U I s a nd vis ua liza tio n. B eauty and power. 3 3
  • 4.
    Qt 4.6 • Keygoals • Enable better User Experience • Performance • Deploy everywhere 4
  • 5.
    New in 4.6:New Platforms • Windows 7 • Mac OS X 10.6 • Symbian • Real-time operating systems: QNX, VxWorks • Maemo 5 Symbian: Today Symbian: Today @ 1300 Room B @ 1300 Room B Maemo: Today @ Maemo: Today @ 1600 Room C 1600 Room C RTOS: Tomorrow RTOS: Tomorrow @ 1300 Room D @ 1300 Room D 5
  • 6.
    New in 4.6:States and Transitions • A robust state chart implementation based on Harel state-charts and SCXML • Key benefits: – Simplify application semantics – Use states to improve maintainability – Solidify event-driven programming – Write verifiable application logic State Machine State Machine Framework Framework Tomorrow @ 1300 Tomorrow @ 1300 Room C Room C 6
  • 7.
    New in 4.6:Animation API • Allow users to create dynamic UIs • Integrates with States and Transitions • Key features: – Animate any QObject property – Combine animations in groups – Use easing curves – Synchronized timer for better CPU utilization Animation Animation Framework Framework Tomorrow @ 1415 Tomorrow @ 1415 Room B Room B 7
  • 8.
    New in 4.6:Graphics Effects • Apply graphical effects to graphics items or widgets • Add highlight or accentuation to create visually appealing user interfaces • Key features: – Apply effects to any paint device – Common effects built in – Extend with your own effects Special FX with Special FX with Graphics View Graphics View Tomorrow @ 1015 Tomorrow @ 1015 Room C Room C 8
  • 9.
    New in 4.6:Gestures & Multitouch • Enable interaction with more than one finger • Combine sequential touch inputs to a ‘gesture’ • Key benefits – Allow users to interact with applications in better ways – Simplify finger-based interaction with UI components – Allowing common basic gestures …as well as multi-touch gestures Multitouch & Multitouch & Gestures – Enable extensibility Gestures Tomorrow @ 0900 Tomorrow @ 0900 Room C Room C 9
  • 10.
    Qt 4.7: QtKinetic project • Allow developers and designers to create flexible and visually appealing user interfaces using intuitive code or GUI designer • Key benefits – Declarative UI programming – Encourages developer-designer collaboration – Faster time-to-market with rapid prototyping – Expressive language Creating – Exposes Qt objects and properties Creating Dynamic UIs Dynamic UIs with QML via JavaScript with QML Tomorrow @ 1415 Tomorrow @ 1415 Room D Room D 10
  • 11.
    Qt Future: HybridDevelopment A ppro a c ha bility of • Combine easily approachable web P ro g ra m m ing E nvironm ent technologies with powerful and U na tta E as y in ab Ar WR T scalable Qt C++ le e a Q t C ++ • Qt already provides rich features D ifficult S ize of P ro jec t S mall Large – QtWebKit – QtScript Combined, you can export H ybrid A pplic a tio ns QObjects to web scripts Q t C ++ A pplic a tio n – QtXmlPatterns HTM L, C S S , JavaS cript – QtNetwork Scripting: B row s er/ S ta nda lo ne Scripting: W R T A pp lic a tion Today @ 1600 Today @ 1600 S ervices written in Q t Room A Room A C ++, D eclarative UI, Common Web Integration with Qt Common Web Runtime: Runtime: Today @ 1715 Today @ 1715 Room D Room D 11
  • 12.
    Qt Mobility • Thebest framework also on mobile devices • Cross-platform: – Symbian, Maemo, Windows Mobile, Embedded Linux – Desktop platforms (where appropriate) • APIs under development: – Location, Messaging, Contacts, The Mobility System Information, Multimedia, The Mobility Project Project Bearer Management, Sensors... Tomorrow @ 0900 Tomorrow @ 0900 Room D Room D 12
  • 13.
    Future of Qttools • Qt Creator Creator: Today @ Creator: Today @ 1415 Room A 1415 Room A Bauhaus: – Support for Symbian and Maemo Bauhaus: Tomorrow @ 1600 Tomorrow @ 1600 Room D Room D – C++ code refactoring tools • Project “Bauhaus” – Graphical design tool for Qt Kinetic project – Targeted towards programmers and designers • Continuous support for Visual Studio and Eclipse – Not limited to maintenance only 13
  • 14.
    Qt SDK • QtSDK components – APIs – Tools – Documentation • Desktop platform support in 4.6 timeframe • For Qt 4.7: increased support for embedded / mobile development 14
  • 15.
    More information • Qt’sroadmap is public – http://qt.nokia.com/roadmap • Roadmap BOF session today – 16.00 in Qt Labs (Room D) • Feedback welcome – Influence our roadmap – Send us feedback – Send your code contributions to Qt 15