SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Downloaden Sie, um offline zu lesen
Qt.
       Cross platform.
          But still easy.
          It will be w
                      e b a nd Q t
                  p ek k a .k o s               for Nokia.
                                    onen@no
                                           ki   a.com



Slides will be available in http://www.slideshare.net/pkosonen
Qt and Web is the way to go
                                                                                            Web
                                              Web Runtime                                developers

                                                                                         For native
                                                           Qt UI Extensions
                                                                                         Developers
              UI                                                                          85% of use
                                                                                          cases **
                                                    Qt
         Engine

        Mobile
                                               Qt Mobility APIs
     Features


     Low level           Native                  Native                   Native          15% of use
Native access
                          APIs                    APIs                     APIs           cases **

                         Desktop
                                                 Symbian                       Linux
                           OSs
                                              S60 on Symbian                   maemo
                                                 Platform                     Platform

** Not based in any realiable statistics ;)
Why Qt?
          What is Qt about? 
            • QuickTime player? Programming language? A platform? Yet another runtime?  
            • A new Japanese car model?

          Qt is Cross‐platform application framework
            • Differentiated user experience across hardware platforms
            • Hybrid development: convergence of web and native applications
            • Cross‐platform software across desktops and mobile devices. Qt supports major 
              desktop OSs already and will extend it’s reach to Nokia platforms.
            • Qt is not a runtime – no perf issues or sandbox restrictions. You can stand out with 
              your native development skills to fulfill the use cases offered by Qt. 
            • Qt Mobility APIs will bring in the easy to use APIs for mobile use cases. 

          Shorter time to market
            • Productive APIs and comprehensive documentation with great examples
            • Delivering functionality faster and maximizing efficiency by placing focus on 
              innovation
            • All the great tools offered free of charge ‐ commercial services available as well




3
What is Qt?

Qt is set of C++ libraries …




                               4
What is Qt?

     … which allows you to design applications …

  #include <QtGui>

  int main(int argc, char *argv[])
  {
       QApplication application(argc, argv);
       QPushButton hello("Hello world!");
       hello.show();
       return application.exec();
  }




                                                   5
What is Qt?
  ... that comes with a UI designer: Qt Designer …




                                                     6
What is Qt?
          ...and an IDE: Qt Creator …




                                        7
What is Qt?

...that works on all these platforms:




              Example: Google Earth on Mac, Windows and Linux



                                                                8
Simplified development - PC, Mac, Linux
    The new offering is the only native mobile dev environment to work on Mac,
    Windows and Linux. Develop your way.

The offering will be based on Qt, the
development tool used to create
applications such as Skype, Adobe
Photoshop Elements and Google
Earth.

The tools will allow developers to use
Windows, Mac OS X and Linux for
their mobile development work.
Who uses Qt?

     From embedded devices to 
       From embedded devices to    By companies from 
                                    By companies from 
         desktop applications
          desktop applications      many industries
                                      many industries




                                                         10
Why use Qt?




                                                                    *
              * Original image from: http://diddo‐chan.deviantart.com/




                                                                         11
Introducing Qt 4.6 and Beyond

User experience                                      Qt Everywhere
•New animation framework                             •Qt ported to Symbian S60, Windows 7, Mac OS X 
•Declarative expression of user interfaces            10.6, Maemo 5, Real‐time OS (QNX, VxWorks)
                                                     •Qt applications can be deployed on millions of 
•Gestures & multitouch support
                                                      devices



Performance                                          In research
•OpenVG graphics engine                              •XML Schema Validation
•Optimizations to resource use                       •Icon theming ability
•Architecture‐specific improvements to ARM devices   •Further embedded and smartphone improvements




                                                                                                        12
New in Qt 4.6: Graphic 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
   – Enables effects on both
     QGraphicsItem and QWidget
   – Extend with your own effects
   – Common effects built in …
     Colorize, Blur, DropShadow,
     Opacity

                                                         13   13
New in Qt 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
   – Write verifiable application logic
   – Makes event-driven programming
     robust and reusable




                                                 14   14
New in Qt 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




                                           15
New in Qt 4.6: Gestures

• 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
   – Enable extensibility




                                                                16   16
New in Qt 4.6: Qt3D enablers
• As more of Qt and applications built on Qt go 3D, API’s are provided
  to simplify this
• Key benefits:
   – Simplifies creating 3D applications with OpenGL
   – API for vertex and fragment Shaders, GLSL/ES
   – Math primitives for matrix multiplication,
     vectors, quaternions (client-side)
• Future research on
  Stencils, vertex buffers and arrays,
  texture manipulation, geometry shaders




                                                                         17
Hybrid Development with Qt 4.6
• Qt includes a rich selection of features for web and hybrid
  development
   – QtWebKit module: embed web content from servers, local files
     or application’s resources into Qt applications, implement user
     interfaces in web technologies.
   – QtWebKit has a rich API to interact with the web content from
     C++, e.g. QWebElement can be used with the DOM
   – QtScript module: make Qt applications scriptable
   – QtXmlPatterns module: shape and mash up XML data yielding
     HTML output
   – QNetworkAccessManager: interact with server URL APIs


                                                                       18
Weather Info




               ___   lines of Qt/C++ code?


                                             19
Weather Info




               411   lines of Qt/C++ code


                                            20
Ray Casting




              ___   lines of Qt/C++ code?


                                            21
Ray Casting




              215   lines of Qt/C++ code


                                           22
Google Chat Client




            ___   lines of Qt/C++ code?


                                          23
Google Chat Client




            140   lines of Qt/C++ code


                                         24
Start today : you can soon get your
  Qt app running on more than
   + 130 000 000 smartphones!

       in addition
                     to all majo
                                r desktop
                                            OSs
Qt Mobility Project – new Qt APIs
•Technology preview - package of new Qt
APIs
     •The full release of these APIs is
     scheduled for 1st half of 2010

•Standard mobile functionality for
applications
•Evolving all the time!

•Download Tech Preview 2:
   •http://qt.nokia.com/developer/new-
   qt-apis




                    http://qt.nokia.com/developer/new-qt-apis
Be the “Qtst” – Forum Nokia Code
Competition
Grand Prize Winner will receive a
trip to the upcoming Nokia 2010
Developer Summit to be held in
San Francisco, USA during June 9th
and 10th!
Top winners will also be selected to receive
nominations as Forum Nokia Champion
program as well as getting the coolest Nokia
devices free of charge!

For details go to http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest
Entries to the contest will be open from Dec 7th, 2009 until January 31, 2010.
Register by latest 30th of December 2009!
THANK YOU!
Pop the hood.
     Details of Qt.
Instead of
             just power
                          point mar
                                    s hm   allow…
What’s in SDK?
        Qt SDK
                        Qt Development Tools




                                                                                    Licensing Options:
                                                                                    Commercial
         Qt Libraries    Qt Designer              Qt Assistant                      LGPL
                         GUI Layout &             Help file/documentation browser
                         Forms Tool




                          Qt Linguist             qmake
                          Translation/I18n Tool   Cross‐platform build tool




29
Qt Creator: Cross Platform IDE
• Lightweight cross-platform IDE for Qt
    –An advanced C++ code editor
    –Integrated, context sensitive help system
    –Integrated visual debugger (based on gdb)
    –Integrated source code management
    –Project and build management tools
    –Qt developer tools integrated

• Benefits
   –New developers get up and running faster
   –Boosts developer productivity
   –Tailored to the needs of Qt developers
Building Qt Applications – qmake!

• Tool to simplify the build process across different platforms
• Automates the generation of Makefiles
• Generates Makefile based on the information in a project file
• MOC and UIC invoke


 qmake         Project                Platform           Application
                              qmake    specific   make
-project    information                                    Binary
           file (.pro/.pri)           Makefiles
Qt Modules
Qt provides native look-and-feel in all
platforms
Cross-platform Qt consists of 12 modules
   • A little bit less than 700 API classes,
     all modules depend on QtCore
Enables pure Qt applications, but
   • Possibility to use platform APIs
   • Possibility to embed native
     elements, including UI widgets
Development Tools included like Qt
Creator, Qt Designer, Qt Assistant, Qt
Linguist
Qt GUI Classes
• Extends QtCore with GUI functionality                       QtOpenGl   QtSvg    QtWebKit          QtXmlPatterns      Qt3Support




     • UI application base class
     • UI components : set of widgets and dialogs              QtGui     QtSql   QtXml       QtNetwork      QtScript     Phonon

     • Widget layout management and classes for UI Events

• All the UI components usually needed                                               QtCore


      • Not enough?
         • Customized components can be done and integrated
           with Qt Creator

• Provides rich set of GUI components
  and supporting functionality
     • Model-View-Controller (MVC) Item views
     • Styles – ensuring native or custom look
       and feel on target platforms
     • Font-aware layout system
     • Accessibility classes
     • Canvas component with Widget support
Qt – Modules (Network)
•Classes for writing TCP/IP clients and servers               QtOpenGl   QtSvg    QtWebKit          QtXmlPatterns      Qt3Support




   • Makes network programming
     easier and portable                                       QtGui     QtSql   QtXml       QtNetwork      QtScript     Phonon




•Support for                                                                         QtCore


   • Lower level protocols (TCP and UDP)
     and higher level application protocols (FTP and HTTP)
       • Seamless integration with progress widgets and any IO device
   • Host Name resolving services and URL parsing, SSL support and much more
        QHttp http;
        connect(http, SIGNAL(done(bool)), this, SLOT(done(bool)));
        http->get( “http://overtheair.org/amazingApi.jsp?action=doGreatThings”);

        void MyClass::done(bool error)
        { QString data = http->readAll(); //handle data }
Qt – Modules (Sql)
                                                           QtOpenGl   QtSvg    QtWebKit          QtXmlPatterns      Qt3Support

• Provides database integration to Qt applications
• Divided to three layers
                                                            QtGui     QtSql   QtXml       QtNetwork      QtScript     Phonon


1. UI Layer
    • Provides classes to link the data from database to
       data-aware widgets                                                         QtCore

    • Designed to work with Qt's model/view framework

2. API layer
    • Provides Qt’s abstracted database-independent SQL
       API

3. Driver layer
    • Provides low-level bridge between the specific
       databases and the SQL API layer                     QSqlDatabase db =

    • Uses driver plugins to communicate with the              QSqlDatabase::database("sales");

       different databases                                 QSqlQuery query

    • Several drivers are supplied with Qt                     ("SELECT Lastname,
                                                                        City FROM Names", db);
Qt – Modules (XML)
                                                             QtOpenGl       QtSvg    QtWebKit          QtXmlPatterns      Qt3Support


•QtXml
   • Provides C++ implementation of SAX and DOM style
     XML parsers                                              QtGui         QtSql   QtXml       QtNetwork      QtScript     Phonon




   • Provides a stream reader and writer for XML
     documents                                                                          QtCore

   • XSLT support

•QtXmlPatterns
   • XQuery support for Qt                                              QXmlStreamReader xml;
       • Simple SQL-like query language for traversing XML              xml.addData( data );
         documents                                                      while (!xml.atEnd())
       • Can select and aggregate XML elements of interest              {
         and transform them for output as                                   xml.readNext(); ...
         XML or in some other format
                                                                        // do processing
                                                                        }
Qt – Modules (WebKit)
                                                            QtOpenGl   QtSvg    QtWebKit          QtXmlPatterns      Qt3Support




• Classes for displaying and editing Web content

• Web content can be enhanced with native
                                                             QtGui     QtSql   QtXml       QtNetwork      QtScript     Phonon




  controls
                                                                                   QtCore

• Based on open-source WebKit engine
    • Ported to use Qt
        • Rendering
        • Text Handling
        • Network Access
    • Integrated part of WebKit project, uses
      WebKit’s platform abstraction

• Qt Style API to engine:
    • QWebView, QWebPage and QWebFrame             QWebView *view = new QWebView(parent);
                                                   view->load(QUrl("http://qt.nokia.com/"));
                                                   view->show();
Qt for Symbian



38
Qt supports future native development on Symbian

        1H09                    2H09                                2010                 2011 
 • Technology Preview    • Symbian OS, S60 3.1,           • Planned for             • Planned for
   Garden for Nokia        3.2 and 5.0                      Symbian^3                 Symbian^4 and
   Symbian device (S60                                                                future releases
   3.1+)


 • Part of Qt 4.5        • Qt for Symbian,                • Qt as part of           • Qt and new UI
   functionality on        installed together               Symbian platform          framework in
   Symbian                 with Qt applications                                       Symbian


 • Native Symbian as     • Qt available for               • Significance of Qt as   • Qt as primary native
   primary developer       commercial                       developer offering        developer offering
   offering                development                      grows




                                  *Qt for early preview, to invite feedback
Qt for Symbian – current status (Dec -09)
•Qt 4.6.0 supports Symbian. It’s ~ feature complete but we’re
 not stopping here. December and January will be solely spent
 on optimization.


•Qt 4.6.1 will be ready early 2010. That will be the version to
 release your Qt applications against!

•At the same time we’ll have a tool called smart installer
 ready. The tool solves the problem of distributing Qt and
 dependencies to devices on the market (3.1, 3.2, 5.0)
Smart Installer

  The opportunity                               The problem                                  The solution
                                                                                           A Smart Installer tool that
   +130M Symbian devices                         Qt libraries need to be
                                                                                           checks whether needed Qt
  could run cross-platform Qt                    post installed – most
                                                                                           version is available on the
  applications already during                    consumers might not
                                                                                            device – and if not, it will
            this year                                    bother
                                                                                             handle the installation




                                                       Details
       •Nokia is working on a tool called Smart Installer for Symbian devices
       •The expected availability is 1Q 2010
       •A piece of code is to be packaged together with the Qt application targeted for Symbian devices (when
       creating the .sis file)
       •The Smart Installer will download OTA the needed Qt version to the handset if it is not already present
The facts
•Qt applications on Symbian are Symbian applications
   • Platform security and signing rules apply

•Symbian UI based on Avkon will disappear soon – All Symbian
 applications will be rewritten using Qt!

•Qt is supported in S60 3rd Edition FP1 onwards
   • Will be preinstalled in in Symbian^3 based devices in 2010 *

•Distribute your Qt for Symbian applications with Qt 4.6.1 and smart
 installer (both available early 2010)


* according to Symbian Foundation announcements
Developer resources
• http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest
• For general questions there is a public 'discussion board
  http://discussion.forum.nokia.com/forum/forumdisplay.php?f=231 monitored by Forum Nokia experts.
• Qt main page http://qt.nokia.com/
• Qt Mobility project http://qt.nokia.com/developer/new-qt-apis
• Symbian SDKs http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/S60_Platform_SDKs/
• Qt for Symbian http://qt.nokia.com/products/platform/symbian
• Qt main page in Forum Nokia http://www.forum.nokia.com/Qt
• http://qt.nokia.com/products/whats-new-in-qt Qt 4.6
• Qt for Maemo preview http://qt.nokia.com/developer/qt-for-maemo-developers
• Forum Nokia Library http://library.forum.nokia.com/
• Qt 4.6 online documentation http://doc.qt.nokia.com/4.6/
• Symbian and Qt examples mapping to Qt Mobility APIs
      • http://wiki.forum.nokia.com/index.php/Qt_Mobility_API_Mapping


• Qt 4.6 mobile demos on Maemo and Symbian http://www.youtube.com/watch?v=PCx8RfNhhXk



• Ancestor of Mobility Project http://wiki.forum.nokia.com/index.php/Mobile_Extensions
Qt for Maemo



44
Maemo - Why should I care?
• Coming from desktop?
     • The importance of mobile clients is widely recognized already – not gonna sell it here…
     • With Qt and Mobility APIs you can easily extend your application to cover smartphone
       features and utilize f.ex location, contacts, messaging etc.
• With maemo and Symbian you can reach more than 100 million devices with your Qt
  application – already with Qt 4.6!
     • Maemo is and will be very important for Nokia
       – get a head start to maemo which we believe will be one of the most interesting
       platforms!
• With Ovi store you have a ready channel to sell your application to hundreds of millions of
  users
From geek(ish) gizmos to mainstream
devices
 • Maemo is an open-source development platform for Internet Tablets and maemo mobile
   computers (f.ex N900)
      • 90% of source code is open-source
      • Maemo 5 contains GSM and 3G functionality (i.e standard smartphone)




 • In maemo 5 GTK is still supported as development framework – not officially supported in
   maemo 6 anymore

 • We’re bringing in Qt for maemo and encourage all developers to use Qt as the long term
   solution
      • http://qt.nokia.com/developer/qt-for-maemo-developers
Maemo 5
• Linux based operating system for N900
• Optimized for pocket sized devices
  and finger use
• Panorama desktop                                                       N900

• Multitasking with dashboard                   TI OMAP 3 processor, ARM Cortex-A8 600 MHz

• New UI style                                  HSPA/3G support – online anywhere 3G
                                                connectivity
• Animated UI                                   High definition camera support (integrated Image
• Compositing window manager                    Signal Processor) 5 megapixel camera (2584 ×
                                                1938 pixels)
• Accelerated graphics with OpenGL-ES2          HW acceleration for OpenGL ES 2.0
                                                3.5 inch touch-screen 800 × 480 pixel resolution

                                                High-speed USB 2.0

                                                Integrated GPS with A-GPS

                                                WLAN IEEE 802.11b/g
                                                32 GB internal storage




                      http://www.forum.nokia.com/devices/N900
Hildon UI – simple and customizable
                                 Status bar
                                 indicating
                                 device state




                                                Consistent
                                                controls
                                                across
                                                applications
Taskbar to
navigate
applications


                        Widgets and RSS feeds for
                         up-to-date information
Qt for maemo
• Maemo is and will be very important platform for Nokia

• Qt 4.6 will be officially supported on maemo 5
• Maemo 6 is built on Qt

• With Qt and mobility APIs you can make true mobile
  applications that work accross different platforms

• Develop now!
     • How to get information when official releases are
        coming
• Distribute when Qt 4.6 for maemo is ready - Q1 2010!



                            http://qt.nokia.com/maemo




   Slides will be available in http://www.slideshare.net/pkosonen
N900 apps for Ovi
Developer Resources
•http://qt.nokia.com/developer/qt-for-maemo-developers
   • http://wiki.maemo.org/Qt4_Hildon#Using_the_Qt_4.6_tech_preview
     _in_Fremantle

•http://wiki.maemo.org/

•Maemo 5 documentation http://wiki.maemo.org/Documentation

•Qt for Maemo developers guide : beta
 http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guid
 e

•Targeting to get Qt Creator support for Maemo development!
Qt Mobility project



52
!

    2010: Qt Mobility Project
    What is it?
         – New Qt APIs enabling cross-platform mobile application development and service
           access

    What is the value?
         – Easier to create applications targeting many platforms
         – Reuse of code between the mobile platforms
         – Bring existing Qt developers as well as new ideas
         – Bring Symbian and Nokia developers to new platforms

    Supported Platforms
        - Symbian 3rd Ed FP1, Symbian 3rd Ed FP2, Symbian 5th Edition, Maemo, Windows CE,
           Windows XP/Vista, Linux, Mac OS X




       http://qt.nokia.com/developer/new-qt-apis                                            53
2010: Qt Mobility Project
• Service Framework
     Launch, discover, and communicate with services
     Use services natively or through Javascript etc
     Control access to services

• Context Framework
     Share context information between applications

• Contacts API
     Access stored contacts or create new contacts

• Location API
     Query current location
     API hides underlying Location source (GPS, Cell ID, etc)


  http://qt.nokia.com/developer/new-qt-apis                     54
!

    2010: Qt Mobility Project
    • System Information API
         Access to platform and/or device information
         Determine status of available resources
    • Bearer Management
         Manage available network connections
         Use the best available connection
    • Messaging API
         Send and receive a variety of message types
    • Multi-Media API
         Play and record audio/video




      http://qt.nokia.com/developer/new-qt-apis         55
Mobility APIs per platform




Maemo 5 support will be implemented as well!

    http://qt.nokia.com/developer/new-qt-apis
More to come
•There are still many enabler missing from Mobility
   • Sensors, Calendar, Telephony, …
•Good things :
   • We’re bringing those in as well!
   • Even without these APIs you can access all the features of the
     device from Qt applications – as Qt applications are native you can
     use the OS specific APIs seamlessly within your Qt application

•Stay tuned : http://qt.nokia.com/developer/new-qt-apis
•Provide your input for us :
   • http://discussion.forum.nokia.com/forum/forumdisplay.php?f=232
•Remember the contest :
 http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest


    http://qt.nokia.com/developer/new-qt-apis
Taking Mobility APIs into usage on Symbian
•Prerequisites : Qt for Symbian 4.6.0 installed on your development
 environment and device
•Download and extract the Mobility package
                                                symbian
•Copy the zip file to your Symbian SDK            install.txt
                                                  install_to_SDK
   • next to epoc32 folder
                                                Qt_Mobility_tech_preview_libraries.zip
•Configure the examples                          install_to_device
                                                    Qt_Mobility_tech_preview.sis
   • configure.bat -examples
•Build the examples and install to your device
   • cd examples
   • qmake [example].pro
   • make release-gcce
   • createpackage -i [example]_template.pkg release-gcce

     http://qt.nokia.com/developer/new-qt-apis
Still up to more?



59
Our vision: Web into any application
     Now   Web browser             Web Runtime widget     Now




                           Open source
                          WebKit is the
                         foundation and
                            common
                             engine


                Widget +
     Now    platform services        Native application   Next
Interact with Web Services
• QtWebKit allows
    • Intuitive use of network resources
    • Exposing QWidget to HTML and QObject to JavaScript
    • Calling JavaScript from Qt and vice versa



                      JS


                      Qt


                   OS specific
                      APIs



• Based on the Open Source WebKit engine
QWebView and QWebPage classes
QWebView inherited from QWidget
   • Renders the content in QWebPage
                                                        QWebView
   • Easy to embed wherever widget could be used
QWebPage provides access to the document                QWebPage
 structure in a page
   • Frames                                             QWebFrame
   • Navigation history
   • Undo/redo stack for editable content
Each QWebpage has one QWebFrame object as its
 main frame
HTML documents can be nested using frames
                   QWebView *view = new QWebView( parent );
                   view->load(QUrl(“http://www.nokia.com”));
                   view->show();
Hybrid - combining the best of both worlds
    So you can run JS and HTML inside Qt application…
           What are the differences compared to a WRT widget?

   WRT Widget running on top of         Qt application
   webkit
     Webkit                               QWebView running webkit
       Widgets HTML, CSS,                    Same HTML, CSS,
          JavaScript                           JavaScript



                     Platform
                     Services




   Native APIs                        Native APIs incl. Qt Mobility APIs
                        Platform
                        Services                                  “Platform
                     implementation                               Services”
                                                               implementation
Key selling points in the hybrid approach
• No feature restrictions!
• Asset is protected – widgets are essentially open source
• Works where ever Qt is available (symbian, maemo, windows, linux, mac, …), huge
  install base
• Utilize web developer skills to make native applications
     • Qt native skills to implement”platform services”
     • Qt script generator http://labs.trolltech.com/page/Projects/QtScript/Generator
• Mixing native and HTML UI
     • Interesting scenarious coming f.ex with Orbit widgets
• Tools might be problematic (migrating web tools and native (Qt Creator))
• We can make hybrid approach even for compelling by providing ready framework
  where existing widgets can be plugged in

• We are working on a framework to make this as easy as possible for web developers
Still up to more?



66
2010: 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 (QML)
   – Exposes Qt objects and properties
     via JavaScript
   – Transitions and manipulations

                                                               67   67
2010: Declarative UI Designer
• Utilizing declarative UI technology
• For programmers and designers, visual and code
• Target mobile/embedded and desktop platforms
• Create state-of-the-art, visually appealing
  user interfaces




                                                   68
Flexible and Visual Appealing UI? QML
 – Express a UI the way we think about it: components, views,
   states, transitions, animations and effects
 – Connect the UI to real data and back-end functionality
 – Everything should be fast and easy
 – It’s so simply and intuitive that designers and developers can
   work directly together
 QML is a new declarative language extension to Qt




                                                                    69
QML Hierarchy

• QML is fundamentally a hierarchy of of
  elements with properties
   – Single root element
   – Parent reference
• Can bind element properties
• Think of a scene graph




                                           70
QML Element Types




                    71
72   Declarative UI demo
We’ll be making it easy for you
• All you need is Qt Creator – no SDKs ;)




• Integrated with Remote Device Access (RDA) - you don’t even need a device ;)
     • http://www.forum.nokia.com/rda
     • No promises here about dates or months yet…

Combine hybrid framework with this one
  – isn’t it creepy how easy we can make it for you?
To conclude

     What the h
                e   ck was the
                                 dude talki
                                              ng about?


75
Qt
                                                                                  Qt SDK

        Qt modular class library                                              Qt development tools
                                                                              Qt Creator
                                                                              Cross‐platform IDE
         Core                   XML
         GUI                    Multimedia
         WebKit                 Database                           Qt Designer                       Qt Assistant
         Graphics View          Network                            GUI designer                      Help reader

         Scripting              Unit Tests
         OpenGL                 Benchmarking
                                                                                                   qmake
                                                                   Qt Linguist
                                                                                                   Cross‐Platform 
                                                                   I18N Toolset
                                                                                                   Build Tool




     Cross‐platform support


          Windows        Mac OS X     Linux/X11    eLinux          Win CE             Symbian                 Maemo




                                                  Chipsets




                                                    *Coming soon
                                                                                                                      76
Qt is…
•Easy to learn
•Productive
•Supported in several platforms
•Enables using web asset and skills in native applications
•Qt applications have no feature restrictions
•Nokia will be doing it’s own applications on top of Qt

•Get started today : http://qt.nokia.com
•Demo videos of Qt running in maemo and Symbian in
 http://www.youtube.com/watch?v=PCx8RfNhhXk
Nokia + Ovi Developer Story | 78




Nokia developer offering, redefined

1=            Nokia cross-platform SDKs that you’ll love




2=           WRT & Ovi APIs. Amazing features in your
               web apps




3=            Ovi Store. Sell your app to hundreds of millions
Qt Development Chain - Maemo & Symbian
           Distribution        Ovi Store

           Certification       Symbian signed                             N/A




             IDEs             •Qt Creator                   •Qt Creator

                              •Carbide
Common
offering
                                  •Mobility APIS           •Mobility APIs
            SDKs
                                 Qt for Symbian platform   Qt for maemo platform
            &
            Plugins              Symbian SDKs              Maemo SDKs


                           Symbian                            Maemo
Be the “Qtst” – Forum Nokia Code
Competition
Grand Prize Winner will receive a
trip to the upcoming Nokia 2010
Developer Summit to be held in
San Francisco, USA during June 9th
and 10th!
Top winners will also be selected to receive
nominations as Forum Nokia Champion
program as well as getting the coolest Nokia
devices free of charge!

For details go to http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest
Entries to the contest will be open from Dec 7th, 2009 until January 31, 2010.
Register by latest 30th of December 2009!
THANK YOU!
http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest




               Thank you!

                       qt.nokia.co
                                  m


Slides will be available in http://www.slideshare.net/pkosonen

Weitere ähnliche Inhalte

Was ist angesagt?

Dominik Gusenbauer Qt Mobility
Dominik Gusenbauer  Qt MobilityDominik Gusenbauer  Qt Mobility
Dominik Gusenbauer Qt MobilityNokiaAppForum
 
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.DALEZ
 
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...FELGO SDK
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering UpdateJanaina Pilomia
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phonesaccount inactive
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conferenceNokia
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Softwareaccount inactive
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtEspen Riskedal
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CEaccount inactive
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical PresentationDaniel Rocha
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1rmitc
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertQT-day
 
Intro to gui, cross platform and qt
Intro to gui, cross platform and qtIntro to gui, cross platform and qt
Intro to gui, cross platform and qtMuhammad Sabry
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartNokiaAppForum
 

Was ist angesagt? (20)

Dominik Gusenbauer Qt Mobility
Dominik Gusenbauer  Qt MobilityDominik Gusenbauer  Qt Mobility
Dominik Gusenbauer Qt Mobility
 
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
Forum Nokia Dev. Camp - WRT training Paris_17&18 Nov.
 
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering Update
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
Qt Licensing Explained
Qt Licensing ExplainedQt Licensing Explained
Qt Licensing Explained
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization SoftwareCase Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
Case Study: Using Qt to Develop Advanced GUIs & Advanced Visualization Software
 
Qt Programming on TI Processors
Qt Programming on TI ProcessorsQt Programming on TI Processors
Qt Programming on TI Processors
 
Creating Slick User Interfaces With Qt
Creating Slick User Interfaces With QtCreating Slick User Interfaces With Qt
Creating Slick User Interfaces With Qt
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 
Introduction to Qt
Introduction to QtIntroduction to Qt
Introduction to Qt
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
 
Intro to gui, cross platform and qt
Intro to gui, cross platform and qtIntro to gui, cross platform and qt
Intro to gui, cross platform and qt
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 

Andere mochten auch

Case Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded ProcessorsCase Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded Processorsaccount inactive
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical librariesguestbd40369
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014Verold
 
Starting Development for Nokia N9
Starting Development for Nokia N9Starting Development for Nokia N9
Starting Development for Nokia N9tpyssysa
 
Qt Design Patterns
Qt Design PatternsQt Design Patterns
Qt Design PatternsYnon Perek
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectYen-Chin Lee
 
Game monetization: Overview of monetization methods for free-to-play games
Game monetization: Overview of monetization methods for free-to-play gamesGame monetization: Overview of monetization methods for free-to-play games
Game monetization: Overview of monetization methods for free-to-play gamesAndrew Dotsenko
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.jsJames Williams
 
Best Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part IIBest Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part IIICS
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIICS
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVICS
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IICS
 
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...The Anatomy of Real World Apps - Dissecting cross-platform apps written using...
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...Marius Bugge Monsen
 
Killer Design Patterns for F2P Mobile/Tablet Games
Killer Design Patterns for F2P Mobile/Tablet GamesKiller Design Patterns for F2P Mobile/Tablet Games
Killer Design Patterns for F2P Mobile/Tablet GamesHenric Suuronen
 
7 Psychological Tactics Used in Games
7 Psychological Tactics Used in Games7 Psychological Tactics Used in Games
7 Psychological Tactics Used in GamesDori Adar
 

Andere mochten auch (20)

Case Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded ProcessorsCase Study: Porting Qt for Embedded Linux on Embedded Processors
Case Study: Porting Qt for Embedded Linux on Embedded Processors
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
 
Starting Development for Nokia N9
Starting Development for Nokia N9Starting Development for Nokia N9
Starting Development for Nokia N9
 
Qt Design Patterns
Qt Design PatternsQt Design Patterns
Qt Design Patterns
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
WebGL and three.js
WebGL and three.jsWebGL and three.js
WebGL and three.js
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
Qt 5 - C++ and Widgets
Qt 5 - C++ and WidgetsQt 5 - C++ and Widgets
Qt 5 - C++ and Widgets
 
Game Monetization Analytics: How to use game metrics effectively
Game Monetization Analytics: How to use game metrics effectivelyGame Monetization Analytics: How to use game metrics effectively
Game Monetization Analytics: How to use game metrics effectively
 
Game monetization: Overview of monetization methods for free-to-play games
Game monetization: Overview of monetization methods for free-to-play gamesGame monetization: Overview of monetization methods for free-to-play games
Game monetization: Overview of monetization methods for free-to-play games
 
Introduction to WebGL and Three.js
Introduction to WebGL and Three.jsIntroduction to WebGL and Three.js
Introduction to WebGL and Three.js
 
Best Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part IIBest Practices in Qt Quick/QML - Part II
Best Practices in Qt Quick/QML - Part II
 
Best Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part IIIBest Practices in Qt Quick/QML - Part III
Best Practices in Qt Quick/QML - Part III
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
 
Best Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part IBest Practices in Qt Quick/QML - Part I
Best Practices in Qt Quick/QML - Part I
 
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...The Anatomy of Real World Apps - Dissecting cross-platform apps written using...
The Anatomy of Real World Apps - Dissecting cross-platform apps written using...
 
Killer Design Patterns for F2P Mobile/Tablet Games
Killer Design Patterns for F2P Mobile/Tablet GamesKiller Design Patterns for F2P Mobile/Tablet Games
Killer Design Patterns for F2P Mobile/Tablet Games
 
7 Psychological Tactics Used in Games
7 Psychological Tactics Used in Games7 Psychological Tactics Used in Games
7 Psychological Tactics Used in Games
 

Ähnlich wie Cutest technology of them all - Forum Nokia Qt Webinar December 2009

Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foofndc
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Johan Thelin
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integrationaccount inactive
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)mosaicnet
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Nokia
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiFrancesco Baldassarri
 
The Roadmap: Next Generation Qt
The Roadmap: Next Generation QtThe Roadmap: Next Generation Qt
The Roadmap: Next Generation Qtaccount inactive
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Qualcomm Developer Network
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtNokiaAppForum
 
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile development
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile developmentEpam mobile meetup 2014 10-15 qt cross-platform solution for mobile development
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile developmentIvan Marinov
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhereNokia
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Montreal Python
 
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondArchitecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondSandro Andrade
 

Ähnlich wie Cutest technology of them all - Forum Nokia Qt Webinar December 2009 (20)

Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integration
 
Qtframework
QtframeworkQtframework
Qtframework
 
Software development with qt
Software development with qtSoftware development with qt
Software development with qt
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
 
The Roadmap: Next Generation Qt
The Roadmap: Next Generation QtThe Roadmap: Next Generation Qt
The Roadmap: Next Generation Qt
 
Intel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGoIntel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGo
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
 
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile development
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile developmentEpam mobile meetup 2014 10-15 qt cross-platform solution for mobile development
Epam mobile meetup 2014 10-15 qt cross-platform solution for mobile development
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
 
Qt
QtQt
Qt
 
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondArchitecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
 

Kürzlich hochgeladen

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Kürzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Cutest technology of them all - Forum Nokia Qt Webinar December 2009

  • 1. Qt. Cross platform. But still easy. It will be w e b a nd Q t p ek k a .k o s for Nokia. onen@no ki a.com Slides will be available in http://www.slideshare.net/pkosonen
  • 2. Qt and Web is the way to go Web Web Runtime developers For native Qt UI Extensions Developers UI 85% of use cases ** Qt Engine Mobile Qt Mobility APIs Features Low level Native Native Native 15% of use Native access APIs APIs APIs cases ** Desktop Symbian Linux OSs S60 on Symbian maemo Platform Platform ** Not based in any realiable statistics ;)
  • 3. Why Qt? What is Qt about?  • QuickTime player? Programming language? A platform? Yet another runtime?   • A new Japanese car model? Qt is Cross‐platform application framework • Differentiated user experience across hardware platforms • Hybrid development: convergence of web and native applications • Cross‐platform software across desktops and mobile devices. Qt supports major  desktop OSs already and will extend it’s reach to Nokia platforms. • Qt is not a runtime – no perf issues or sandbox restrictions. You can stand out with  your native development skills to fulfill the use cases offered by Qt.  • Qt Mobility APIs will bring in the easy to use APIs for mobile use cases.  Shorter time to market • Productive APIs and comprehensive documentation with great examples • Delivering functionality faster and maximizing efficiency by placing focus on  innovation • All the great tools offered free of charge ‐ commercial services available as well 3
  • 4. What is Qt? Qt is set of C++ libraries … 4
  • 5. What is Qt? … which allows you to design applications … #include <QtGui> int main(int argc, char *argv[]) { QApplication application(argc, argv); QPushButton hello("Hello world!"); hello.show(); return application.exec(); } 5
  • 6. What is Qt? ... that comes with a UI designer: Qt Designer … 6
  • 7. What is Qt? ...and an IDE: Qt Creator … 7
  • 8. What is Qt? ...that works on all these platforms: Example: Google Earth on Mac, Windows and Linux 8
  • 9. Simplified development - PC, Mac, Linux The new offering is the only native mobile dev environment to work on Mac, Windows and Linux. Develop your way. The offering will be based on Qt, the development tool used to create applications such as Skype, Adobe Photoshop Elements and Google Earth. The tools will allow developers to use Windows, Mac OS X and Linux for their mobile development work.
  • 10. Who uses Qt? From embedded devices to  From embedded devices to  By companies from  By companies from  desktop applications desktop applications many industries many industries 10
  • 11. Why use Qt? * * Original image from: http://diddo‐chan.deviantart.com/ 11
  • 12. Introducing Qt 4.6 and Beyond User experience Qt Everywhere •New animation framework •Qt ported to Symbian S60, Windows 7, Mac OS X  •Declarative expression of user interfaces 10.6, Maemo 5, Real‐time OS (QNX, VxWorks) •Qt applications can be deployed on millions of  •Gestures & multitouch support devices Performance In research •OpenVG graphics engine •XML Schema Validation •Optimizations to resource use  •Icon theming ability •Architecture‐specific improvements to ARM devices •Further embedded and smartphone improvements 12
  • 13. New in Qt 4.6: Graphic 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 – Enables effects on both QGraphicsItem and QWidget – Extend with your own effects – Common effects built in … Colorize, Blur, DropShadow, Opacity 13 13
  • 14. New in Qt 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 – Write verifiable application logic – Makes event-driven programming robust and reusable 14 14
  • 15. New in Qt 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 15
  • 16. New in Qt 4.6: Gestures • 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 – Enable extensibility 16 16
  • 17. New in Qt 4.6: Qt3D enablers • As more of Qt and applications built on Qt go 3D, API’s are provided to simplify this • Key benefits: – Simplifies creating 3D applications with OpenGL – API for vertex and fragment Shaders, GLSL/ES – Math primitives for matrix multiplication, vectors, quaternions (client-side) • Future research on Stencils, vertex buffers and arrays, texture manipulation, geometry shaders 17
  • 18. Hybrid Development with Qt 4.6 • Qt includes a rich selection of features for web and hybrid development – QtWebKit module: embed web content from servers, local files or application’s resources into Qt applications, implement user interfaces in web technologies. – QtWebKit has a rich API to interact with the web content from C++, e.g. QWebElement can be used with the DOM – QtScript module: make Qt applications scriptable – QtXmlPatterns module: shape and mash up XML data yielding HTML output – QNetworkAccessManager: interact with server URL APIs 18
  • 19. Weather Info ___ lines of Qt/C++ code? 19
  • 20. Weather Info 411 lines of Qt/C++ code 20
  • 21. Ray Casting ___ lines of Qt/C++ code? 21
  • 22. Ray Casting 215 lines of Qt/C++ code 22
  • 23. Google Chat Client ___ lines of Qt/C++ code? 23
  • 24. Google Chat Client 140 lines of Qt/C++ code 24
  • 25. Start today : you can soon get your Qt app running on more than + 130 000 000 smartphones! in addition to all majo r desktop OSs
  • 26. Qt Mobility Project – new Qt APIs •Technology preview - package of new Qt APIs •The full release of these APIs is scheduled for 1st half of 2010 •Standard mobile functionality for applications •Evolving all the time! •Download Tech Preview 2: •http://qt.nokia.com/developer/new- qt-apis http://qt.nokia.com/developer/new-qt-apis
  • 27. Be the “Qtst” – Forum Nokia Code Competition Grand Prize Winner will receive a trip to the upcoming Nokia 2010 Developer Summit to be held in San Francisco, USA during June 9th and 10th! Top winners will also be selected to receive nominations as Forum Nokia Champion program as well as getting the coolest Nokia devices free of charge! For details go to http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest Entries to the contest will be open from Dec 7th, 2009 until January 31, 2010. Register by latest 30th of December 2009! THANK YOU!
  • 28. Pop the hood. Details of Qt. Instead of just power point mar s hm allow…
  • 29. What’s in SDK? Qt SDK Qt Development Tools Licensing Options: Commercial Qt Libraries Qt Designer Qt Assistant LGPL GUI Layout & Help file/documentation browser Forms Tool Qt Linguist qmake Translation/I18n Tool Cross‐platform build tool 29
  • 30. Qt Creator: Cross Platform IDE • Lightweight cross-platform IDE for Qt –An advanced C++ code editor –Integrated, context sensitive help system –Integrated visual debugger (based on gdb) –Integrated source code management –Project and build management tools –Qt developer tools integrated • Benefits –New developers get up and running faster –Boosts developer productivity –Tailored to the needs of Qt developers
  • 31. Building Qt Applications – qmake! • Tool to simplify the build process across different platforms • Automates the generation of Makefiles • Generates Makefile based on the information in a project file • MOC and UIC invoke qmake Project Platform Application qmake specific make -project information Binary file (.pro/.pri) Makefiles
  • 32. Qt Modules Qt provides native look-and-feel in all platforms Cross-platform Qt consists of 12 modules • A little bit less than 700 API classes, all modules depend on QtCore Enables pure Qt applications, but • Possibility to use platform APIs • Possibility to embed native elements, including UI widgets Development Tools included like Qt Creator, Qt Designer, Qt Assistant, Qt Linguist
  • 33. Qt GUI Classes • Extends QtCore with GUI functionality QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • UI application base class • UI components : set of widgets and dialogs QtGui QtSql QtXml QtNetwork QtScript Phonon • Widget layout management and classes for UI Events • All the UI components usually needed QtCore • Not enough? • Customized components can be done and integrated with Qt Creator • Provides rich set of GUI components and supporting functionality • Model-View-Controller (MVC) Item views • Styles – ensuring native or custom look and feel on target platforms • Font-aware layout system • Accessibility classes • Canvas component with Widget support
  • 34. Qt – Modules (Network) •Classes for writing TCP/IP clients and servers QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • Makes network programming easier and portable QtGui QtSql QtXml QtNetwork QtScript Phonon •Support for QtCore • Lower level protocols (TCP and UDP) and higher level application protocols (FTP and HTTP) • Seamless integration with progress widgets and any IO device • Host Name resolving services and URL parsing, SSL support and much more QHttp http; connect(http, SIGNAL(done(bool)), this, SLOT(done(bool))); http->get( “http://overtheair.org/amazingApi.jsp?action=doGreatThings”); void MyClass::done(bool error) { QString data = http->readAll(); //handle data }
  • 35. Qt – Modules (Sql) QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • Provides database integration to Qt applications • Divided to three layers QtGui QtSql QtXml QtNetwork QtScript Phonon 1. UI Layer • Provides classes to link the data from database to data-aware widgets QtCore • Designed to work with Qt's model/view framework 2. API layer • Provides Qt’s abstracted database-independent SQL API 3. Driver layer • Provides low-level bridge between the specific databases and the SQL API layer QSqlDatabase db = • Uses driver plugins to communicate with the QSqlDatabase::database("sales"); different databases QSqlQuery query • Several drivers are supplied with Qt ("SELECT Lastname, City FROM Names", db);
  • 36. Qt – Modules (XML) QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support •QtXml • Provides C++ implementation of SAX and DOM style XML parsers QtGui QtSql QtXml QtNetwork QtScript Phonon • Provides a stream reader and writer for XML documents QtCore • XSLT support •QtXmlPatterns • XQuery support for Qt QXmlStreamReader xml; • Simple SQL-like query language for traversing XML xml.addData( data ); documents while (!xml.atEnd()) • Can select and aggregate XML elements of interest { and transform them for output as xml.readNext(); ... XML or in some other format // do processing }
  • 37. Qt – Modules (WebKit) QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • Classes for displaying and editing Web content • Web content can be enhanced with native QtGui QtSql QtXml QtNetwork QtScript Phonon controls QtCore • Based on open-source WebKit engine • Ported to use Qt • Rendering • Text Handling • Network Access • Integrated part of WebKit project, uses WebKit’s platform abstraction • Qt Style API to engine: • QWebView, QWebPage and QWebFrame QWebView *view = new QWebView(parent); view->load(QUrl("http://qt.nokia.com/")); view->show();
  • 39. Qt supports future native development on Symbian 1H09 2H09 2010 2011  • Technology Preview • Symbian OS, S60 3.1, • Planned for • Planned for Garden for Nokia 3.2 and 5.0 Symbian^3 Symbian^4 and Symbian device (S60 future releases 3.1+) • Part of Qt 4.5 • Qt for Symbian, • Qt as part of • Qt and new UI functionality on installed together Symbian platform framework in Symbian with Qt applications Symbian • Native Symbian as • Qt available for • Significance of Qt as • Qt as primary native primary developer commercial developer offering developer offering offering development grows *Qt for early preview, to invite feedback
  • 40. Qt for Symbian – current status (Dec -09) •Qt 4.6.0 supports Symbian. It’s ~ feature complete but we’re not stopping here. December and January will be solely spent on optimization. •Qt 4.6.1 will be ready early 2010. That will be the version to release your Qt applications against! •At the same time we’ll have a tool called smart installer ready. The tool solves the problem of distributing Qt and dependencies to devices on the market (3.1, 3.2, 5.0)
  • 41. Smart Installer The opportunity The problem The solution A Smart Installer tool that +130M Symbian devices Qt libraries need to be checks whether needed Qt could run cross-platform Qt post installed – most version is available on the applications already during consumers might not device – and if not, it will this year bother handle the installation Details •Nokia is working on a tool called Smart Installer for Symbian devices •The expected availability is 1Q 2010 •A piece of code is to be packaged together with the Qt application targeted for Symbian devices (when creating the .sis file) •The Smart Installer will download OTA the needed Qt version to the handset if it is not already present
  • 42. The facts •Qt applications on Symbian are Symbian applications • Platform security and signing rules apply •Symbian UI based on Avkon will disappear soon – All Symbian applications will be rewritten using Qt! •Qt is supported in S60 3rd Edition FP1 onwards • Will be preinstalled in in Symbian^3 based devices in 2010 * •Distribute your Qt for Symbian applications with Qt 4.6.1 and smart installer (both available early 2010) * according to Symbian Foundation announcements
  • 43. Developer resources • http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest • For general questions there is a public 'discussion board http://discussion.forum.nokia.com/forum/forumdisplay.php?f=231 monitored by Forum Nokia experts. • Qt main page http://qt.nokia.com/ • Qt Mobility project http://qt.nokia.com/developer/new-qt-apis • Symbian SDKs http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/Platforms/S60_Platform_SDKs/ • Qt for Symbian http://qt.nokia.com/products/platform/symbian • Qt main page in Forum Nokia http://www.forum.nokia.com/Qt • http://qt.nokia.com/products/whats-new-in-qt Qt 4.6 • Qt for Maemo preview http://qt.nokia.com/developer/qt-for-maemo-developers • Forum Nokia Library http://library.forum.nokia.com/ • Qt 4.6 online documentation http://doc.qt.nokia.com/4.6/ • Symbian and Qt examples mapping to Qt Mobility APIs • http://wiki.forum.nokia.com/index.php/Qt_Mobility_API_Mapping • Qt 4.6 mobile demos on Maemo and Symbian http://www.youtube.com/watch?v=PCx8RfNhhXk • Ancestor of Mobility Project http://wiki.forum.nokia.com/index.php/Mobile_Extensions
  • 45. Maemo - Why should I care? • Coming from desktop? • The importance of mobile clients is widely recognized already – not gonna sell it here… • With Qt and Mobility APIs you can easily extend your application to cover smartphone features and utilize f.ex location, contacts, messaging etc. • With maemo and Symbian you can reach more than 100 million devices with your Qt application – already with Qt 4.6! • Maemo is and will be very important for Nokia – get a head start to maemo which we believe will be one of the most interesting platforms! • With Ovi store you have a ready channel to sell your application to hundreds of millions of users
  • 46. From geek(ish) gizmos to mainstream devices • Maemo is an open-source development platform for Internet Tablets and maemo mobile computers (f.ex N900) • 90% of source code is open-source • Maemo 5 contains GSM and 3G functionality (i.e standard smartphone) • In maemo 5 GTK is still supported as development framework – not officially supported in maemo 6 anymore • We’re bringing in Qt for maemo and encourage all developers to use Qt as the long term solution • http://qt.nokia.com/developer/qt-for-maemo-developers
  • 47. Maemo 5 • Linux based operating system for N900 • Optimized for pocket sized devices and finger use • Panorama desktop N900 • Multitasking with dashboard TI OMAP 3 processor, ARM Cortex-A8 600 MHz • New UI style HSPA/3G support – online anywhere 3G connectivity • Animated UI High definition camera support (integrated Image • Compositing window manager Signal Processor) 5 megapixel camera (2584 × 1938 pixels) • Accelerated graphics with OpenGL-ES2 HW acceleration for OpenGL ES 2.0 3.5 inch touch-screen 800 × 480 pixel resolution High-speed USB 2.0 Integrated GPS with A-GPS WLAN IEEE 802.11b/g 32 GB internal storage http://www.forum.nokia.com/devices/N900
  • 48. Hildon UI – simple and customizable Status bar indicating device state Consistent controls across applications Taskbar to navigate applications Widgets and RSS feeds for up-to-date information
  • 49. Qt for maemo • Maemo is and will be very important platform for Nokia • Qt 4.6 will be officially supported on maemo 5 • Maemo 6 is built on Qt • With Qt and mobility APIs you can make true mobile applications that work accross different platforms • Develop now! • How to get information when official releases are coming • Distribute when Qt 4.6 for maemo is ready - Q1 2010! http://qt.nokia.com/maemo Slides will be available in http://www.slideshare.net/pkosonen
  • 51. Developer Resources •http://qt.nokia.com/developer/qt-for-maemo-developers • http://wiki.maemo.org/Qt4_Hildon#Using_the_Qt_4.6_tech_preview _in_Fremantle •http://wiki.maemo.org/ •Maemo 5 documentation http://wiki.maemo.org/Documentation •Qt for Maemo developers guide : beta http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guid e •Targeting to get Qt Creator support for Maemo development!
  • 53. ! 2010: Qt Mobility Project What is it? – New Qt APIs enabling cross-platform mobile application development and service access What is the value? – Easier to create applications targeting many platforms – Reuse of code between the mobile platforms – Bring existing Qt developers as well as new ideas – Bring Symbian and Nokia developers to new platforms Supported Platforms - Symbian 3rd Ed FP1, Symbian 3rd Ed FP2, Symbian 5th Edition, Maemo, Windows CE, Windows XP/Vista, Linux, Mac OS X http://qt.nokia.com/developer/new-qt-apis 53
  • 54. 2010: Qt Mobility Project • Service Framework Launch, discover, and communicate with services Use services natively or through Javascript etc Control access to services • Context Framework Share context information between applications • Contacts API Access stored contacts or create new contacts • Location API Query current location API hides underlying Location source (GPS, Cell ID, etc) http://qt.nokia.com/developer/new-qt-apis 54
  • 55. ! 2010: Qt Mobility Project • System Information API Access to platform and/or device information Determine status of available resources • Bearer Management Manage available network connections Use the best available connection • Messaging API Send and receive a variety of message types • Multi-Media API Play and record audio/video http://qt.nokia.com/developer/new-qt-apis 55
  • 56. Mobility APIs per platform Maemo 5 support will be implemented as well! http://qt.nokia.com/developer/new-qt-apis
  • 57. More to come •There are still many enabler missing from Mobility • Sensors, Calendar, Telephony, … •Good things : • We’re bringing those in as well! • Even without these APIs you can access all the features of the device from Qt applications – as Qt applications are native you can use the OS specific APIs seamlessly within your Qt application •Stay tuned : http://qt.nokia.com/developer/new-qt-apis •Provide your input for us : • http://discussion.forum.nokia.com/forum/forumdisplay.php?f=232 •Remember the contest : http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest http://qt.nokia.com/developer/new-qt-apis
  • 58. Taking Mobility APIs into usage on Symbian •Prerequisites : Qt for Symbian 4.6.0 installed on your development environment and device •Download and extract the Mobility package symbian •Copy the zip file to your Symbian SDK install.txt install_to_SDK • next to epoc32 folder Qt_Mobility_tech_preview_libraries.zip •Configure the examples install_to_device Qt_Mobility_tech_preview.sis • configure.bat -examples •Build the examples and install to your device • cd examples • qmake [example].pro • make release-gcce • createpackage -i [example]_template.pkg release-gcce http://qt.nokia.com/developer/new-qt-apis
  • 59. Still up to more? 59
  • 60.
  • 61. Our vision: Web into any application Now Web browser Web Runtime widget Now Open source WebKit is the foundation and common engine Widget + Now platform services Native application Next
  • 62. Interact with Web Services • QtWebKit allows • Intuitive use of network resources • Exposing QWidget to HTML and QObject to JavaScript • Calling JavaScript from Qt and vice versa JS Qt OS specific APIs • Based on the Open Source WebKit engine
  • 63. QWebView and QWebPage classes QWebView inherited from QWidget • Renders the content in QWebPage QWebView • Easy to embed wherever widget could be used QWebPage provides access to the document QWebPage structure in a page • Frames QWebFrame • Navigation history • Undo/redo stack for editable content Each QWebpage has one QWebFrame object as its main frame HTML documents can be nested using frames QWebView *view = new QWebView( parent ); view->load(QUrl(“http://www.nokia.com”)); view->show();
  • 64. Hybrid - combining the best of both worlds So you can run JS and HTML inside Qt application… What are the differences compared to a WRT widget? WRT Widget running on top of Qt application webkit Webkit QWebView running webkit Widgets HTML, CSS, Same HTML, CSS, JavaScript JavaScript Platform Services Native APIs Native APIs incl. Qt Mobility APIs Platform Services “Platform implementation Services” implementation
  • 65. Key selling points in the hybrid approach • No feature restrictions! • Asset is protected – widgets are essentially open source • Works where ever Qt is available (symbian, maemo, windows, linux, mac, …), huge install base • Utilize web developer skills to make native applications • Qt native skills to implement”platform services” • Qt script generator http://labs.trolltech.com/page/Projects/QtScript/Generator • Mixing native and HTML UI • Interesting scenarious coming f.ex with Orbit widgets • Tools might be problematic (migrating web tools and native (Qt Creator)) • We can make hybrid approach even for compelling by providing ready framework where existing widgets can be plugged in • We are working on a framework to make this as easy as possible for web developers
  • 66. Still up to more? 66
  • 67. 2010: 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 (QML) – Exposes Qt objects and properties via JavaScript – Transitions and manipulations 67 67
  • 68. 2010: Declarative UI Designer • Utilizing declarative UI technology • For programmers and designers, visual and code • Target mobile/embedded and desktop platforms • Create state-of-the-art, visually appealing user interfaces 68
  • 69. Flexible and Visual Appealing UI? QML – Express a UI the way we think about it: components, views, states, transitions, animations and effects – Connect the UI to real data and back-end functionality – Everything should be fast and easy – It’s so simply and intuitive that designers and developers can work directly together QML is a new declarative language extension to Qt 69
  • 70. QML Hierarchy • QML is fundamentally a hierarchy of of elements with properties – Single root element – Parent reference • Can bind element properties • Think of a scene graph 70
  • 72. 72 Declarative UI demo
  • 73. We’ll be making it easy for you • All you need is Qt Creator – no SDKs ;) • Integrated with Remote Device Access (RDA) - you don’t even need a device ;) • http://www.forum.nokia.com/rda • No promises here about dates or months yet… Combine hybrid framework with this one – isn’t it creepy how easy we can make it for you?
  • 74. To conclude What the h e ck was the dude talki ng about? 75
  • 75. Qt Qt SDK Qt modular class library Qt development tools Qt Creator Cross‐platform IDE Core XML GUI Multimedia WebKit Database Qt Designer Qt Assistant Graphics View Network  GUI designer Help reader Scripting Unit Tests OpenGL Benchmarking qmake Qt Linguist Cross‐Platform  I18N Toolset Build Tool Cross‐platform support Windows Mac OS X Linux/X11 eLinux Win CE Symbian Maemo Chipsets *Coming soon 76
  • 76. Qt is… •Easy to learn •Productive •Supported in several platforms •Enables using web asset and skills in native applications •Qt applications have no feature restrictions •Nokia will be doing it’s own applications on top of Qt •Get started today : http://qt.nokia.com •Demo videos of Qt running in maemo and Symbian in http://www.youtube.com/watch?v=PCx8RfNhhXk
  • 77. Nokia + Ovi Developer Story | 78 Nokia developer offering, redefined 1= Nokia cross-platform SDKs that you’ll love 2= WRT & Ovi APIs. Amazing features in your web apps 3= Ovi Store. Sell your app to hundreds of millions
  • 78. Qt Development Chain - Maemo & Symbian Distribution Ovi Store Certification Symbian signed N/A IDEs •Qt Creator •Qt Creator •Carbide Common offering •Mobility APIS •Mobility APIs SDKs Qt for Symbian platform Qt for maemo platform & Plugins Symbian SDKs Maemo SDKs Symbian Maemo
  • 79. Be the “Qtst” – Forum Nokia Code Competition Grand Prize Winner will receive a trip to the upcoming Nokia 2010 Developer Summit to be held in San Francisco, USA during June 9th and 10th! Top winners will also be selected to receive nominations as Forum Nokia Champion program as well as getting the coolest Nokia devices free of charge! For details go to http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest Entries to the contest will be open from Dec 7th, 2009 until January 31, 2010. Register by latest 30th of December 2009! THANK YOU!
  • 80. http://wiki.forum.nokia.com/index.php/Qt_Mobility_Contest Thank you! qt.nokia.co m Slides will be available in http://www.slideshare.net/pkosonen