SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Qt & Qt Quick
   ”Coding Qt”-Workshop
 C-Base, Berlin, 01.04.2011
Outline
• Basics
    – What is Qt?
    – What is Qt Quick?
•   How to obtain the SDK(s)
•   Example walkthrough
•   Hot stuff from the labs
•   Q&A
What is Qt?
C++ (Modules)                                                                 Qt Quick

                           GUI                                                 Declarative
      Core                                    Database            Network
                      (GraphicsView)                                             (QML)


                          WebKit              QtScript                          QtScript
   Network                                                     Xquery/Xpath
                         (HTML 5)           (ECMAScript)                      (ECMAScript)


                         WebKit               OpenVG
      XML                                                       Multimedia
                        (HTML 5)               OpenGL


Tools                                                                         Qt Creator
 Comprehensive Help         Translation (Linguist)       Build tool (qmake)   C++/QML IDE


External libraries: Qt Mobility (Nokia), Qxt (Community), etc.
Qt is used everywhere
  From embedded devices to   By companies from
     desktop applications     many industries
Qt Mobility

  •   Bearer Management                 •   Messaging
  •   Camera                            •   Multimedia
  •   Contacts                          •   Organizer
  •   (Document) Gallery                •   Publish & Subscribe
  •   Tactile Feedback API              •   Sensors
  •   Landmarks                         •   Service Framework
  •   Location                          •   System Info
  •   Maps/Navigation                   •   Versit (vCard)
http://qt.nokia.com/products/qt-addons/mobility/     Blue: QML-enabled
Qt Development on MeeGo
• Qt Widgets (C++, deprecated)
  – Limited use on MeeGo
• MeeGo Touch Framework (C++, QGV)
  – MeeGo-internal toolkit, to be deprecated
• Qt Quick (QML, JavaScript, C++)
  – The new toolkit                   Our focus!
Getting the package

QT SDK 1.1 / MEEGO SDK 1.2
SDK’s for Development
• Qt SDK 1.1 (beta)
  – One stop Shop for development on all
    released Nokia Smartphone Devices
  http://developer.qt.nokia.com/prereleases
• MeeGo.com MeeGo SDK 1.2 (preview)
  – Same Installer Framework (Windows), binary
    distro packages (Linux) for Development on
    MeeGo
  http://meego.com/downloads
SDK Contents
• Qt Creator IDE
• Qt for Maemo/MeeGo
  – MADDE (cross compile toolchain)
• Qt for Symbian
• Qt for Desktop
  – Windows (MinGW, MSVC optional)
• Qt Mobility APIs
                                  Blue: Qt SDK only
                                  Pink: Meego SDK only
Compelling UI’s with Qt

THE QT QUICK STORY
The state of the UI in
• 5 – 10 year product lifecycle
• UI adds value, but doesn´t differentiate
• Standard desktops and keypad form
  factors
• Native is the only
  way to get things
  done
The state of the UI today
•   1 – 2 year product lifecycle
•   UI differentiation is a must
•   Touch-screen and large-screen UI
•   Script developers more available
    than C++ developers
Developers are from Mars
Designers are from Venus
 01010001
                               ♥☺
 01001101                      
 01001100




                     Flash Mockups
            Qt C++
                       Photoshop
GIMP/Photoshop to QML
Properties of QML
• Declarative Language (Flash, HTML, XAML)
• Bases on Property Bindings
    – Reuses the Qt property system
•   Easy to read and write (think JSON)
•   Extends JavaScript (imperative)
•   Extensible with C++ code
•   Provides simple, fast to execute
    primitives
The QML Philosophy

PROVIDE ONLY THINGS THAT
CAN BE FAST
Import s
Elements
Properties
Getting our hands dirty

CODE EXAMPLE

                          (Curtesy of Jens Bache-Wiig, Qt DF)
Pickr – A Flickr search app
• A full application in a few minutes
• Topics
  – Building your own reusable QML elements
  – Using graphical assets
  – Using animations, states and transitions
  – Declaring properties
  – Get from mockup to working app using the
    same code base with not discontinuity be-
    tween Designer and Developer perspective
Concept

           Dog




           Star



           House


 Search:
Design
States


             Initial state




View state
Using XmlListModel
• C an be used for parsing all XML
  – Examples: ATOM and RSS feeds
  – For instance Twitter:


http://api.flickr.com/services/feeds/photos_
  public.gne? format=rss2&tags=zeppelin
Using XmlListModel (cont‘d.)
<?xml version="1.0"? >
<rss>
   <channel>
     <item>
        <title>Shiny car</title>
<media:thumbnail url="http://flickr.com/42/f7_t.jpg" />
      </item>
   </channel>
</rss>
Fully running example
Look at this in full detail:




http://qt.nokia.com/developer/learning/online/talks/developerdays2
   010/tech-talks/qt-quick-rapid-user-interface-prototyping
Beyond Qt 4.7

THE FUTURE
Qt Components
• Provide high level widgets
  – Symbian
  – MeeGo
  – Desktop (inofficial)
  – Custom
• MeeGo widgets not public yet (again)
• Custom Widgets depend on QML 1.1
QML 2.0 and Lighthouse
             QML 1.0/1.1                                   QML 2.0

                             QML Elements
                   Rect, Image, Text, MouseRegion, Flickable



     Qt Quick - QML Engine                                     Qt GUI „light“
                                              Qt Quick
                                                                     +
 Qt GraphicsView                                QML
                                                               Lighthouse
                                               Engine
    Qt GUI                                                        plugin


                              OS/Hardware
                   2D, 3D (Open GL 2.0, GL ES 2.0, etc)
Further Developments
• Qt Modularization
• Open Governance
   – Open Reviews
   – Maintainer/Trust Relation Principle (Linux)
   – Reviewer Principle (WebKit)


Qt Contributors summit
http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki

Weitere ähnliche Inhalte

Empfohlen

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Empfohlen (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Qt & Qt Quick - "Coding Qt"-Workshop @ MeeGo Freeday

  • 1. Qt & Qt Quick ”Coding Qt”-Workshop C-Base, Berlin, 01.04.2011
  • 2. Outline • Basics – What is Qt? – What is Qt Quick? • How to obtain the SDK(s) • Example walkthrough • Hot stuff from the labs • Q&A
  • 3. What is Qt? C++ (Modules) Qt Quick GUI Declarative Core Database Network (GraphicsView) (QML) WebKit QtScript QtScript Network Xquery/Xpath (HTML 5) (ECMAScript) (ECMAScript) WebKit OpenVG XML Multimedia (HTML 5) OpenGL Tools Qt Creator Comprehensive Help Translation (Linguist) Build tool (qmake) C++/QML IDE External libraries: Qt Mobility (Nokia), Qxt (Community), etc.
  • 4. Qt is used everywhere From embedded devices to By companies from desktop applications many industries
  • 5. Qt Mobility • Bearer Management • Messaging • Camera • Multimedia • Contacts • Organizer • (Document) Gallery • Publish & Subscribe • Tactile Feedback API • Sensors • Landmarks • Service Framework • Location • System Info • Maps/Navigation • Versit (vCard) http://qt.nokia.com/products/qt-addons/mobility/ Blue: QML-enabled
  • 6. Qt Development on MeeGo • Qt Widgets (C++, deprecated) – Limited use on MeeGo • MeeGo Touch Framework (C++, QGV) – MeeGo-internal toolkit, to be deprecated • Qt Quick (QML, JavaScript, C++) – The new toolkit Our focus!
  • 7. Getting the package QT SDK 1.1 / MEEGO SDK 1.2
  • 8. SDK’s for Development • Qt SDK 1.1 (beta) – One stop Shop for development on all released Nokia Smartphone Devices http://developer.qt.nokia.com/prereleases • MeeGo.com MeeGo SDK 1.2 (preview) – Same Installer Framework (Windows), binary distro packages (Linux) for Development on MeeGo http://meego.com/downloads
  • 9. SDK Contents • Qt Creator IDE • Qt for Maemo/MeeGo – MADDE (cross compile toolchain) • Qt for Symbian • Qt for Desktop – Windows (MinGW, MSVC optional) • Qt Mobility APIs Blue: Qt SDK only Pink: Meego SDK only
  • 10. Compelling UI’s with Qt THE QT QUICK STORY
  • 11. The state of the UI in • 5 – 10 year product lifecycle • UI adds value, but doesn´t differentiate • Standard desktops and keypad form factors • Native is the only way to get things done
  • 12. The state of the UI today • 1 – 2 year product lifecycle • UI differentiation is a must • Touch-screen and large-screen UI • Script developers more available than C++ developers
  • 13. Developers are from Mars Designers are from Venus 01010001 ♥☺ 01001101  01001100 Flash Mockups Qt C++ Photoshop
  • 15. Properties of QML • Declarative Language (Flash, HTML, XAML) • Bases on Property Bindings – Reuses the Qt property system • Easy to read and write (think JSON) • Extends JavaScript (imperative) • Extensible with C++ code • Provides simple, fast to execute primitives
  • 16. The QML Philosophy PROVIDE ONLY THINGS THAT CAN BE FAST
  • 18. Getting our hands dirty CODE EXAMPLE (Curtesy of Jens Bache-Wiig, Qt DF)
  • 19. Pickr – A Flickr search app • A full application in a few minutes • Topics – Building your own reusable QML elements – Using graphical assets – Using animations, states and transitions – Declaring properties – Get from mockup to working app using the same code base with not discontinuity be- tween Designer and Developer perspective
  • 20. Concept Dog Star House Search:
  • 22. States Initial state View state
  • 23. Using XmlListModel • C an be used for parsing all XML – Examples: ATOM and RSS feeds – For instance Twitter: http://api.flickr.com/services/feeds/photos_ public.gne? format=rss2&tags=zeppelin
  • 24. Using XmlListModel (cont‘d.) <?xml version="1.0"? > <rss> <channel> <item> <title>Shiny car</title> <media:thumbnail url="http://flickr.com/42/f7_t.jpg" /> </item> </channel> </rss>
  • 25. Fully running example Look at this in full detail: http://qt.nokia.com/developer/learning/online/talks/developerdays2 010/tech-talks/qt-quick-rapid-user-interface-prototyping
  • 27. Qt Components • Provide high level widgets – Symbian – MeeGo – Desktop (inofficial) – Custom • MeeGo widgets not public yet (again) • Custom Widgets depend on QML 1.1
  • 28. QML 2.0 and Lighthouse QML 1.0/1.1 QML 2.0 QML Elements Rect, Image, Text, MouseRegion, Flickable Qt Quick - QML Engine Qt GUI „light“ Qt Quick + Qt GraphicsView QML Lighthouse Engine Qt GUI plugin OS/Hardware 2D, 3D (Open GL 2.0, GL ES 2.0, etc)
  • 29. Further Developments • Qt Modularization • Open Governance – Open Reviews – Maintainer/Trust Relation Principle (Linux) – Reviewer Principle (WebKit) Qt Contributors summit http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki