SlideShare une entreprise Scribd logo
1  sur  30
Qt
                                                      Qt™

                                Software Development
                               on Nokia Devices with Qt

                                      Qt is © Nokia Corporation and/or its subsidiaries.
    Nokia, Qt d th i
    N ki Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
                            ti l            t d      k f N ki C         ti i Fi l d d/        th       ti       ld id
                               All other trademarks are property of their respective owners.
1                                                 Andreas Jakl, 2010                                                  v1.0 – 5.3.2010
About Me: Andreas Jakl
    About Me: Andreas Jakl




2                  Andreas Jakl, 2010
Qt in a Nutshell
       in a Nutshell


                                 Qt is a class library for platform 
                                 independent development of graphical 
                                 user interfaces based on C++.

                                 The framework also includes XML, 
                                 The framework also includes XML,
                                 databases, internationalization, 
                                 network, multithreading, 3D, 
                                 WebKit m ltimedia etc
                                 WebKit, multimedia, etc.



3                      Andreas Jakl, 2010
Short History
             Short History of Qt
●   1991: Development started
     −   Cross platform GUI toolkit was needed
●   1994: Decided to go into business
     −   “Q” looked beautiful in Emacs font. “t” for toolkit             Eirik Chambe‐        Haavard
     −   Company name: Quasar Technologies 
                                                                            Eng Nord
         (later: Trolltech)
●   1995: First public release through newsgroups (Qt 0.90)
     −   Dual licensing: commercial & free for open source
●   2000: Qtopia – platform for mobile phones & PDAs
●   2005: Qt 4.0 – compatibility break, leads to new KDE 4 desktop
          Q           p        y      ,                          p
●   2008: Nokia purchases Qt, name changes first to Qt Software, then to Qt Development Frameworks
●   2009 / 2010: Focus on mobile platforms (Symbian, Maemo, MeeGo), dedicated mobility APIs


         4                                          Andreas Jakl, 2010
Customers




5               Andreas Jakl, 2010   … and many, many more!
Qt Licensing

●   LGPL license
●   Qt is completely free!
    −   Unlike GPL, the LGPL:
        Unlike GPL the LGPL
            –   Allows using Qt for free in commercial, closed source apps
    −   Complete development source code of Qt available
        C   l t d l        t          d f Qt      il bl
●   Commercial version
    −   Code changes to Qt source code don’t have to be shared
    −   Included support options
        6                              Andreas Jakl, 2010
Platforms                                         Windows
                                                       Mac OS
                                                       Linux / X11
                                                       Linux / X11
C++                                                    Embedded Linux
                                                       Windows CE
                                                       Windows CE
                                                       Maemo / MeeGo
        Java                                           Symbian (S60)
                                                       S bi (S60)
        Python
        Ada
        Pascal
                    Maintained by
        Perl
                  Qt open source community.
        PHP      Not officially supported by Qt Development Frameworks.
                 Not officially supported by Qt Development Frameworks

 7                             Andreas Jakl, 2010
Mobile Development
    Mobile Development




                                   Java ME


8                 Andreas Jakl, 2010
Symbian and
            Symbian and Qt

●   Symbian^4: replaces S60 with Qt‐based UI
     y           p               Q
●   Components:
    −   Uiemo (UI Extensions for Mobile, Orbit): 
        extension library for Qt, 50+ UI elements 
        tailored for mobile
        t il d f       bil
    −   Direct UI: new app framework based on 
        Uiemo
●   Availability: end of 2010                        Symbian^4 Concept Video

        9                       Andreas Jakl, 2010
Maemo and
             Maemo and Qt
●   Maemo 5
    −   GTK+ based UI
    −   Final Qt support: H1 2010
        Final Qt support: H1 2010
●   Maemo 6
    −   Qt replaces GTK+
           replaces GTK+
    −   Multi‐touch, gestures support
    −   MeeGo
        M G compatible
                 tibl
    −   GTK and Clutter will stay in MeeGo

        10                      Andreas Jakl, 2010
MeeGo and Qt
             MeeGo and Qt

●   Moblin (Intel) and Maemo (Nokia) merge to 
           (     )           (     )    g
    −   New Linux distribution
    −   MeeGo UI toolkit based on Qt
                    lki b d
    −   GTK and Clutter included for application compatibility




        11                       Andreas Jakl, 2010
Qt Architecture
●   Qt uses native styles to draw UI
     −  UI elements have original 
        look & feel
     − Can be adapted by the
        Can be adapted by the 
        developer
●   Built on low level APIs of platform
     − No runtime!
●   Cross‐platform
     −   Single source for multiple 
         Si l          f     li l
         platforms
     −   Only requires recompilation

         12                            Andreas Jakl, 2010
Qt Modules
     Module             Description
     QtCore             Core non‐graphical classes used by other modules
     QtGui              Graphical user interface (GUI) components
     QtMultimedia       Classes for low‐level multimedia functionality
     QtNetwork          Classes for network programming
     QtOpenGL           OpenGL support classes
     QtOpenVG           OpenVG support classes
     QtSc pt ( oo s)
     QtScript (Tools)   Make C++ applications scriptable through ECMAScript‐based language
                         a e     app ca o s sc p ab e oug            Sc p based a guage
     QtSql              Classes for database integration using SQL
     QtSvg              Classes for displaying contents of SVG files
     QtWebKit           Classes for displaying and editing web content
                        Classes for displaying and editing web content
     QtXml              Classes for handling XML
     QtXmlPatterns      An XQuery & XPath engine for XML and custom data models
     Phonon
     Ph                 Multimedia framework classes
                        M l i di f         k l

13                                       Andreas Jakl, 2010
Getting Started

Install Qt SDK from qt.nokia.com
        Q           q
Start Qt Creator UI




  14                     Andreas Jakl, 2010
Hello World Project
           World Project

     main.cpp
      #include <QApplication>
      #include <QPushButton>

     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         QPushButton helloButton("Hello World");
         helloButton.resize(150, 50);
         helloButton.show();

         return app.exec();
     }



15                              Andreas Jakl, 2010
Deploy

●   Run your Qt application on all platforms!
        y    Q pp                  p




                Windows 7              Maemo 5     Symbian^1
                                                    y
                                                 (S60 5th Edition)
      16                    Andreas Jakl, 2010
Qt and C
             Qt and C++

●   Q g
    Qt goes beyond C++
              y
    −   Seamless object communication
        ( g
        (signals & slots)
                        )
    −   Meta object system, featuring 
        object properties and object trees
          j p p                 j
    −   Contextual string translation for 
        internationalization
●   … but still works with standard C++ 
    compilers on all platforms!
        17                     Andreas Jakl, 2010
Interactivity: Quit
             Interactivity: Quit Hello World

●   Add functionality to exit the Hello World example:
                    y                             p
         QObject::connect(&helloButton, SIGNAL(clicked()),
                          &app,
                          &app SLOT(quit()));

    −   Button emits clicked() signal
    −   Connected to QApplication::quit()




        18                     Andreas Jakl, 2010
Signals & Slots
              Signals & Slots
●   Signal
     −   Emitted when a particular event occurs (e.g., clicked())
     −   Qt widgets: predefined signals
     −   Also create your own signals
●   Slot
     −   Function called in response to a signal
     −   Qt widgets: predefined slots (e.g., quit())
     −   Also create your own slots
         Al       t             l t
●   Connection signals  slots established by developer, 
    handled by Qt framework
             y
         19                          Andreas Jakl, 2010
What’s next?

The Future of Qt
              Q

    20             Andreas Jakl, 2010
Qt Quick (Qt User Interface Creation Kit)
             Qt Quick (Qt User Interface Creation Kit)

●   Create UIs as a designer
                        g
    −   Without C++ knowledge
    −   Using visual tools
        Using visual tools
    −   Module: Declarative UI
    −   Based on QML l
        B d      QML language 
        (extension to JavaScript)
    −   Supported in Qt 4.7
        Supported in Qt 4 7
    −   http://blog.qt.nokia.com/2010/02/15/meet‐qt‐quick/


        21                          Andreas Jakl, 2010
QML

●   Describe UI by tree structure of 
                 y
    property bindings
    −   Properties dynamically evaluated
                   dynamically evaluated
                                                   Rectangle {
    −   Communication through                        width: 200
        signals & slots
        signals & slots                              height: 200
                                                     height: 200
                                                     color: "white"
    −   Bindings to C++ code possible                Image {
                                                       source:  pics/logo.png
                                                       source: "pics/logo png"
    −   Animate properties using states                anchors.centerIn: parent
        and transitions                              }
                                                   }
        22                    Andreas Jakl, 2010
UI Frameworks (Dui, Uiemo)
             UI Frameworks (Dui, Uiemo)

●   Scene graph approach to the UI
          g p pp
●   Optimized for                                   Maemo 6 UI Framework Widget Demo 
                                                                (15.2.2010)

    −   Graphics effects, 3D HW acceleration
    −   Gestures, multi‐touch, kinetics
●   Adventurous?
    −   Maemo: http://qt.gitorious.org/maemo‐6‐ui‐framework
        Maemo http //qt gitorious org/maemo 6 ui framework
    −   Symbian: http://qt.gitorious.org/uiemo

        23                     Andreas Jakl, 2010
Hybrid Applications
     Hybrid Applications
                                                      HTML App

                                                      Qt Web 
                                                      Technology

                                                      Qt




24                        Andreas Jakl, 2010                                                From: Rajesh Lal
                  http://www.slideshare.net/rajeshlal/hybrid‐application‐development‐for‐maemo‐n900‐device
Advantages of Hybrid Applications
     Advantages of Hybrid Applications

               Web                                                 Qt

       HTML, CSS, JavaScript                        C++
       Rapid development
         p         p                                Full device access
       Broad reach                                  Powerful libraries



                 Embed Qt UI elements into HTML page
                   Access Qt objects from JavaScript
                                j                 p
                      Trigger JavaScript from Qt
                            Shared storage


25                             Andreas Jakl, 2010
                                                    http://qt.nokia.com/forms/whitepapers/reg‐whitepaper‐hybrid
Qt Mobility
              Qt Mobility

●   Q
    Qt: Desktop → Mobile
              p
●   Requires new APIs for
     −   Sensors
         S
     −   Location
     −   Messaging
     −   etc.
●   Qt Mobility: new cross‐platform APIs for mobile use cases
     −   Back‐end implementation on all platforms where it makes sense
         Back‐end implementation on all platforms where it makes sense
         26                     Andreas Jakl, 2010
Qt 4.7

●   Q
    Qt 4.7 Tech Preview: March 2010
    −   Includes Qt Quick
    −   Integrates f
                   first parts of Qt Mobility
                                f      bili
    −   Focus on performance
●   http://qt.nokia.com/developer/qt‐roadmap




        27                     Andreas Jakl, 2010
Qt Books

         C++ GUI Programming with Qt 4 (2nd edition)
         C++ GUI Programming with Qt 4 (2
         Jasmin Blanchette, Mark Summerfield. Prentice Hall.
         Official book for Qt development. Quite complete, but its structure could 
         be improved.
         be improved.
         Status: Qt 4.3, 2008



         Foundations of Qt Development
         Johan Thelin. Apress.
         More in‐depth and technically oriented explanation of Qt. Most other
         More in depth and technically oriented explanation of Qt. Most other 
         books are rather similar to the official documentation that you get for free 
         with the SDK – this is different, and is therefore a good companion.
         Status: 2007

28                               Andreas Jakl, 2010
Even More Information
     Even More Information

         Qt for Symbian
            for Symbian
         Editors: Frank H. P. Fitzek, Tommi Mikkonen, Tony Torp.
         For Qt developers wanting to get started with development on the mobile 
         Symbian platform, or the other way round.
         Symbian platform, or the other way round.
         Status: Qt 4.6, March 2010



         Online: qt.nokia.com, www.forum.nokia.com, www.qtcentre.org
         Lots of documentation and examples installed with SDK




29                             Andreas Jakl, 2010
That’s it.

Thanks for your attention.
           y

     30           Andreas Jakl, 2010

Contenu connexe

Tendances

OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...ICS
 
Gallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver ModelGallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver ModelChia-I Wu
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...NETWAYS
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to QtJanel Heilbrunn
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Qt
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?Janel Heilbrunn
 
Creating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtCreating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtICS
 
下午3 intel fenghaitao_mee_go api and application development
下午3 intel fenghaitao_mee_go api and application development下午3 intel fenghaitao_mee_go api and application development
下午3 intel fenghaitao_mee_go api and application developmentcsdnmobile
 
Meet Qt 6.0
Meet Qt 6.0 Meet Qt 6.0
Meet Qt 6.0 Qt
 
Maximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN BusMaximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN BusJanel Heilbrunn
 
Qt Internationalization
Qt InternationalizationQt Internationalization
Qt InternationalizationICS
 
LCU14 Keynote by George Grey
LCU14 Keynote by George GreyLCU14 Keynote by George Grey
LCU14 Keynote by George GreyLinaro
 

Tendances (13)

OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...
 
Gallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver ModelGallium3D - Mesa's New Driver Model
Gallium3D - Mesa's New Driver Model
 
I965g
I965gI965g
I965g
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
Driving Down Automotive Costs for Richer HMIs with Qt & i.MX RT1170
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?
 
Creating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with QtCreating Advanced GUIs for Low-power MCUs with Qt
Creating Advanced GUIs for Low-power MCUs with Qt
 
下午3 intel fenghaitao_mee_go api and application development
下午3 intel fenghaitao_mee_go api and application development下午3 intel fenghaitao_mee_go api and application development
下午3 intel fenghaitao_mee_go api and application development
 
Meet Qt 6.0
Meet Qt 6.0 Meet Qt 6.0
Meet Qt 6.0
 
Maximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN BusMaximizing High Performance Applications with CAN Bus
Maximizing High Performance Applications with CAN Bus
 
Qt Internationalization
Qt InternationalizationQt Internationalization
Qt Internationalization
 
LCU14 Keynote by George Grey
LCU14 Keynote by George GreyLCU14 Keynote by George Grey
LCU14 Keynote by George Grey
 

Similaire à Andreas Jakl Software Development on Nokia Deviceswith Qt

Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1rmitc
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical PresentationDaniel Rocha
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5thiagomacieira
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertQT-day
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering UpdateJanaina Pilomia
 
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 user interface
Qt user interfaceQt user interface
Qt user interfacemeriem sari
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Nokia
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Johan Thelin
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedNokia
 
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
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiFrancesco Baldassarri
 

Similaire à Andreas Jakl Software Development on Nokia Deviceswith Qt (20)

Software development with qt
Software development with qtSoftware development with qt
Software development with qt
 
Software development with qt
Software development with qtSoftware development with qt
Software development with qt
 
Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
 
Qt introduction
Qt introductionQt introduction
Qt introduction
 
Qt
QtQt
Qt
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
 
Nokia Developer Offering Update
Nokia Developer Offering UpdateNokia Developer Offering Update
Nokia Developer Offering Update
 
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 user interface
Qt user interfaceQt user interface
Qt user interface
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
 
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
 
Qtframework
QtframeworkQtframework
Qtframework
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
 

Plus de NokiaAppForum

Toshl.com - Od ideje do končnega izdelka
Toshl.com - Od ideje do končnega izdelka Toshl.com - Od ideje do končnega izdelka
Toshl.com - Od ideje do končnega izdelka NokiaAppForum
 
Alexander Oswald The Future of Maemo and Symbian
Alexander Oswald The Future of Maemo and SymbianAlexander Oswald The Future of Maemo and Symbian
Alexander Oswald The Future of Maemo and SymbianNokiaAppForum
 
Petri Niemi Qt Web Kit
Petri Niemi Qt Web KitPetri Niemi Qt Web Kit
Petri Niemi Qt Web KitNokiaAppForum
 
Petri Niemi Qt Advanced Part 2
Petri Niemi Qt Advanced Part 2Petri Niemi Qt Advanced Part 2
Petri Niemi Qt Advanced Part 2NokiaAppForum
 
Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1NokiaAppForum
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartNokiaAppForum
 
Mobile Web Development from Scratch
Mobile Web Development from ScratchMobile Web Development from Scratch
Mobile Web Development from ScratchNokiaAppForum
 
Wolfgang Damm Wikitude
Wolfgang Damm WikitudeWolfgang Damm Wikitude
Wolfgang Damm WikitudeNokiaAppForum
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeNokiaAppForum
 
Jure Sustersic Monetization through Ovi Services
Jure Sustersic Monetization through Ovi ServicesJure Sustersic Monetization through Ovi Services
Jure Sustersic Monetization through Ovi ServicesNokiaAppForum
 

Plus de NokiaAppForum (12)

Toshl.com - Od ideje do končnega izdelka
Toshl.com - Od ideje do končnega izdelka Toshl.com - Od ideje do končnega izdelka
Toshl.com - Od ideje do končnega izdelka
 
Razum
RazumRazum
Razum
 
Hello Mobile
Hello MobileHello Mobile
Hello Mobile
 
Alexander Oswald The Future of Maemo and Symbian
Alexander Oswald The Future of Maemo and SymbianAlexander Oswald The Future of Maemo and Symbian
Alexander Oswald The Future of Maemo and Symbian
 
Petri Niemi Qt Web Kit
Petri Niemi Qt Web KitPetri Niemi Qt Web Kit
Petri Niemi Qt Web Kit
 
Petri Niemi Qt Advanced Part 2
Petri Niemi Qt Advanced Part 2Petri Niemi Qt Advanced Part 2
Petri Niemi Qt Advanced Part 2
 
Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1Petri Niemi Qt Advanced Part 1
Petri Niemi Qt Advanced Part 1
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 
Mobile Web Development from Scratch
Mobile Web Development from ScratchMobile Web Development from Scratch
Mobile Web Development from Scratch
 
Wolfgang Damm Wikitude
Wolfgang Damm WikitudeWolfgang Damm Wikitude
Wolfgang Damm Wikitude
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web Runtime
 
Jure Sustersic Monetization through Ovi Services
Jure Sustersic Monetization through Ovi ServicesJure Sustersic Monetization through Ovi Services
Jure Sustersic Monetization through Ovi Services
 

Dernier

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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Dernier (20)

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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Andreas Jakl Software Development on Nokia Deviceswith Qt

  • 1. Qt Qt™ Software Development on Nokia Devices with Qt Qt is © Nokia Corporation and/or its subsidiaries. Nokia, Qt d th i N ki Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide. ti l t d k f N ki C ti i Fi l d d/ th ti ld id All other trademarks are property of their respective owners. 1 Andreas Jakl, 2010 v1.0 – 5.3.2010
  • 2. About Me: Andreas Jakl About Me: Andreas Jakl 2 Andreas Jakl, 2010
  • 3. Qt in a Nutshell in a Nutshell Qt is a class library for platform  independent development of graphical  user interfaces based on C++. The framework also includes XML,  The framework also includes XML, databases, internationalization,  network, multithreading, 3D,  WebKit m ltimedia etc WebKit, multimedia, etc. 3 Andreas Jakl, 2010
  • 4. Short History Short History of Qt ● 1991: Development started − Cross platform GUI toolkit was needed ● 1994: Decided to go into business − “Q” looked beautiful in Emacs font. “t” for toolkit Eirik Chambe‐ Haavard − Company name: Quasar Technologies  Eng Nord (later: Trolltech) ● 1995: First public release through newsgroups (Qt 0.90) − Dual licensing: commercial & free for open source ● 2000: Qtopia – platform for mobile phones & PDAs ● 2005: Qt 4.0 – compatibility break, leads to new KDE 4 desktop Q p y , p ● 2008: Nokia purchases Qt, name changes first to Qt Software, then to Qt Development Frameworks ● 2009 / 2010: Focus on mobile platforms (Symbian, Maemo, MeeGo), dedicated mobility APIs 4 Andreas Jakl, 2010
  • 5. Customers 5 Andreas Jakl, 2010 … and many, many more!
  • 6. Qt Licensing ● LGPL license ● Qt is completely free! − Unlike GPL, the LGPL: Unlike GPL the LGPL – Allows using Qt for free in commercial, closed source apps − Complete development source code of Qt available C l t d l t d f Qt il bl ● Commercial version − Code changes to Qt source code don’t have to be shared − Included support options 6 Andreas Jakl, 2010
  • 7. Platforms Windows Mac OS Linux / X11 Linux / X11 C++ Embedded Linux Windows CE Windows CE Maemo / MeeGo Java Symbian (S60) S bi (S60) Python Ada Pascal Maintained by Perl Qt open source community. PHP Not officially supported by Qt Development Frameworks. Not officially supported by Qt Development Frameworks 7 Andreas Jakl, 2010
  • 8. Mobile Development Mobile Development Java ME 8 Andreas Jakl, 2010
  • 9. Symbian and Symbian and Qt ● Symbian^4: replaces S60 with Qt‐based UI y p Q ● Components: − Uiemo (UI Extensions for Mobile, Orbit):  extension library for Qt, 50+ UI elements  tailored for mobile t il d f bil − Direct UI: new app framework based on  Uiemo ● Availability: end of 2010 Symbian^4 Concept Video 9 Andreas Jakl, 2010
  • 10. Maemo and Maemo and Qt ● Maemo 5 − GTK+ based UI − Final Qt support: H1 2010 Final Qt support: H1 2010 ● Maemo 6 − Qt replaces GTK+ replaces GTK+ − Multi‐touch, gestures support − MeeGo M G compatible tibl − GTK and Clutter will stay in MeeGo 10 Andreas Jakl, 2010
  • 11. MeeGo and Qt MeeGo and Qt ● Moblin (Intel) and Maemo (Nokia) merge to  ( ) ( ) g − New Linux distribution − MeeGo UI toolkit based on Qt lki b d − GTK and Clutter included for application compatibility 11 Andreas Jakl, 2010
  • 12. Qt Architecture ● Qt uses native styles to draw UI − UI elements have original  look & feel − Can be adapted by the Can be adapted by the  developer ● Built on low level APIs of platform − No runtime! ● Cross‐platform − Single source for multiple  Si l f li l platforms − Only requires recompilation 12 Andreas Jakl, 2010
  • 13. Qt Modules Module Description QtCore Core non‐graphical classes used by other modules QtGui Graphical user interface (GUI) components QtMultimedia Classes for low‐level multimedia functionality QtNetwork Classes for network programming QtOpenGL OpenGL support classes QtOpenVG OpenVG support classes QtSc pt ( oo s) QtScript (Tools) Make C++ applications scriptable through ECMAScript‐based language a e app ca o s sc p ab e oug Sc p based a guage QtSql Classes for database integration using SQL QtSvg Classes for displaying contents of SVG files QtWebKit Classes for displaying and editing web content Classes for displaying and editing web content QtXml Classes for handling XML QtXmlPatterns An XQuery & XPath engine for XML and custom data models Phonon Ph Multimedia framework classes M l i di f k l 13 Andreas Jakl, 2010
  • 14. Getting Started Install Qt SDK from qt.nokia.com Q q Start Qt Creator UI 14 Andreas Jakl, 2010
  • 15. Hello World Project World Project main.cpp #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton helloButton("Hello World"); helloButton.resize(150, 50); helloButton.show(); return app.exec(); } 15 Andreas Jakl, 2010
  • 16. Deploy ● Run your Qt application on all platforms! y Q pp p Windows 7 Maemo 5 Symbian^1 y (S60 5th Edition) 16 Andreas Jakl, 2010
  • 17. Qt and C Qt and C++ ● Q g Qt goes beyond C++ y − Seamless object communication ( g (signals & slots) ) − Meta object system, featuring  object properties and object trees j p p j − Contextual string translation for  internationalization ● … but still works with standard C++  compilers on all platforms! 17 Andreas Jakl, 2010
  • 18. Interactivity: Quit Interactivity: Quit Hello World ● Add functionality to exit the Hello World example: y p QObject::connect(&helloButton, SIGNAL(clicked()), &app, &app SLOT(quit())); − Button emits clicked() signal − Connected to QApplication::quit() 18 Andreas Jakl, 2010
  • 19. Signals & Slots Signals & Slots ● Signal − Emitted when a particular event occurs (e.g., clicked()) − Qt widgets: predefined signals − Also create your own signals ● Slot − Function called in response to a signal − Qt widgets: predefined slots (e.g., quit()) − Also create your own slots Al t l t ● Connection signals  slots established by developer,  handled by Qt framework y 19 Andreas Jakl, 2010
  • 20. What’s next? The Future of Qt Q 20 Andreas Jakl, 2010
  • 21. Qt Quick (Qt User Interface Creation Kit) Qt Quick (Qt User Interface Creation Kit) ● Create UIs as a designer g − Without C++ knowledge − Using visual tools Using visual tools − Module: Declarative UI − Based on QML l B d QML language  (extension to JavaScript) − Supported in Qt 4.7 Supported in Qt 4 7 − http://blog.qt.nokia.com/2010/02/15/meet‐qt‐quick/ 21 Andreas Jakl, 2010
  • 22. QML ● Describe UI by tree structure of  y property bindings − Properties dynamically evaluated dynamically evaluated Rectangle { − Communication through  width: 200 signals & slots signals & slots height: 200 height: 200 color: "white" − Bindings to C++ code possible Image { source:  pics/logo.png source: "pics/logo png" − Animate properties using states anchors.centerIn: parent and transitions } } 22 Andreas Jakl, 2010
  • 23. UI Frameworks (Dui, Uiemo) UI Frameworks (Dui, Uiemo) ● Scene graph approach to the UI g p pp ● Optimized for Maemo 6 UI Framework Widget Demo  (15.2.2010) − Graphics effects, 3D HW acceleration − Gestures, multi‐touch, kinetics ● Adventurous? − Maemo: http://qt.gitorious.org/maemo‐6‐ui‐framework Maemo http //qt gitorious org/maemo 6 ui framework − Symbian: http://qt.gitorious.org/uiemo 23 Andreas Jakl, 2010
  • 24. Hybrid Applications Hybrid Applications HTML App Qt Web  Technology Qt 24 Andreas Jakl, 2010 From: Rajesh Lal http://www.slideshare.net/rajeshlal/hybrid‐application‐development‐for‐maemo‐n900‐device
  • 25. Advantages of Hybrid Applications Advantages of Hybrid Applications Web Qt HTML, CSS, JavaScript C++ Rapid development p p Full device access Broad reach Powerful libraries Embed Qt UI elements into HTML page Access Qt objects from JavaScript j p Trigger JavaScript from Qt Shared storage 25 Andreas Jakl, 2010 http://qt.nokia.com/forms/whitepapers/reg‐whitepaper‐hybrid
  • 26. Qt Mobility Qt Mobility ● Q Qt: Desktop → Mobile p ● Requires new APIs for − Sensors S − Location − Messaging − etc. ● Qt Mobility: new cross‐platform APIs for mobile use cases − Back‐end implementation on all platforms where it makes sense Back‐end implementation on all platforms where it makes sense 26 Andreas Jakl, 2010
  • 27. Qt 4.7 ● Q Qt 4.7 Tech Preview: March 2010 − Includes Qt Quick − Integrates f first parts of Qt Mobility f bili − Focus on performance ● http://qt.nokia.com/developer/qt‐roadmap 27 Andreas Jakl, 2010
  • 28. Qt Books C++ GUI Programming with Qt 4 (2nd edition) C++ GUI Programming with Qt 4 (2 Jasmin Blanchette, Mark Summerfield. Prentice Hall. Official book for Qt development. Quite complete, but its structure could  be improved. be improved. Status: Qt 4.3, 2008 Foundations of Qt Development Johan Thelin. Apress. More in‐depth and technically oriented explanation of Qt. Most other More in depth and technically oriented explanation of Qt. Most other  books are rather similar to the official documentation that you get for free  with the SDK – this is different, and is therefore a good companion. Status: 2007 28 Andreas Jakl, 2010
  • 29. Even More Information Even More Information Qt for Symbian for Symbian Editors: Frank H. P. Fitzek, Tommi Mikkonen, Tony Torp. For Qt developers wanting to get started with development on the mobile  Symbian platform, or the other way round. Symbian platform, or the other way round. Status: Qt 4.6, March 2010 Online: qt.nokia.com, www.forum.nokia.com, www.qtcentre.org Lots of documentation and examples installed with SDK 29 Andreas Jakl, 2010
  • 30. That’s it. Thanks for your attention. y 30 Andreas Jakl, 2010