Qt everywhere


Published on

Conference presentation for http://overtheair.org 25.9.2009

Video that was used in the beginning is in http://www.youtube.com/watch?v=E2YhBBO_BZs

Published in: Technology, Business
  • awesome! could you enable the download of your slides?
    Are you sure you want to  Yes  No
    Your message goes here
  • Check out also my Qt for maemo stuff http://www.slideshare.net/pkosonen/qt-for-maemo-getting-to-the-fastlane-v2
    Are you sure you want to  Yes  No
    Your message goes here
  • Removed the starting video - for some reason people were more interested in the slides ;)
    Are you sure you want to  Yes  No
    Your message goes here
  •    Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Unfortenately the visual appearance suffered a bit in the transformation - hopefully you'll manage to read the stuff.
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Qt everywhere

  1. 1. Qt everywhere - visions of application development on Nokia platforms Pekka Kosonen Head of Technology Development, Nokia 25.9.2009 http://overtheair.org
  2. 2. What’s on the menu today? For appetizers - motivation we’ve got the volumes, productity, distribution channels and customers are just waiting to give their money to you! Main course will be served in 10 minutes 1. Simple and powerful Cross Platform Offering with Qt 2. Add in a twist of web services with Ovi APIs 3. Do you like money? Distribute to Ovi Store 4. Pop the hood - What has Qt eaten? For dessert 5. Swing both ways (Qt and Web)? -> Go hybrid! Coffee and cognac later on…
  3. 3. About this presentation This presentation is describing a new, radically focused, holistic developer story based on actual roadmapped developments for starting from late 2009. It shows where Nokia is heading. This presentation is NOT a product vision nor promise, nor does it directly propose changes to our products or roadmaps.
  4. 4. The importance of the developer to Nokia Nokia’s success with it’s devices and services strategy comes from 3rd party innovation! 2009 Q2 Nokia’s market share continued to grow from 42 to 45%! Source: SA, Canalys, August 2009
  5. 5. Our Developer Offering: Elegantly connected services Services Level Apps Level Platform Nokia platforms Desktop OSs Level 5
  6. 6. What do you developers want? Can I make money by selling my app to many people? Is my development efficient? If I get stuck, will someone help Can my app have cutting edge me out? features?
  7. 7. 2009 : The audience has spoken. Developers around the world have spoken and the results cant be surprising for anyone - developing for Nokia platforms sucks. “Is the Nokia store supposed to challenge Apple? You know what folks, you had your chances. If you want to impress me, if you want me to start developing for your platforms again, get your houses in order. Once things change - then we can talk again.” http://venturebeat.com/2009/04/12/mobile-app-developers-fire-back-nokia-sucks/
  8. 8. 2010 : Back to the track – The Cross Platform Promise Increase Total Commit to Addressable Market Open Source Combine the Best of Lower Entry Barriers Both Worlds for Developers 8
  9. 9. 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 9
  10. 10. Today : Qt is used already used everywhere! From embedded devices By companies to desktop applications from many industries
  11. 11. Significant development benefits with Qt true stories behind the scenes Development Time Savings Better Code Maintainability • CS Virtual Reality, a leading provider of virtual reality • European Space Agency solutions in military/defense, space imaging and • From days to hours aerospace • ”With Qt, the process of issuing a new release has gone • 50% time savings from taking a few days to taking a few hours” • “We developed GUIs 1.5 times faster with Qt compared to basic development techniques” Faster Learning Curve • Siemens Project Cost Savings • Very quick technology induction • DFS Deutsche Flugsicherung, air traffic control in • “In fact, one person who joined the team was a student Germany with no experience at all. Within 2&1/2 months, the • Millions of Euros saved student was implementing MFC controls as Qt widgets.“ • ”Developing the system in-house on Qt saved DFS an estimated 1 million Euros, and as many of 104 man months of development time ” Reduced Personnel Requirements • Digital Film Tools, three Emmy awards and hundreds of feature films on its resume Code Size Reductions • Scalability without need to hire more staff • National Instruments • ”We are able to write a single set of source code for all • 54% less code platforms. There’s no way we could have written native • “When we rewrote the app using Qt, it went from code for all operating systems without hiring additional 650,000 lines of source code to fewer than 300,000 people. ” lines, making it much easier to manage“
  12. 12. Qt: a cross-platform application and UI development framework http://qt.nokia.com
  13. 13. Nov 2009 : get your Qt app running on more than + 130 000 000 smartphones! - Not to mention that Qt runs on all major desktop OSs as well
  14. 14. Appetizers are over - Motivated? Time for the main course It’s web and Qt for Nokia
  15. 15. Nokia + Ovi Developer Story | 15 Simplified offering | Based on Qt The future offering will be based on Qt, the development tool globally used to build desktop apps – you may already know it. With the simplified toolchain you can tackle f.ex Maemo and Symbian based devices
  16. 16. Nokia + Ovi Developer Story | 16 Simplified | Develop on 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.
  17. 17. 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
  18. 18. Amazing features in your apps – sooner than you can expect
  19. 19. Nokia + Ovi Developer Story | 19 Ovi API | Ovi features opened Nokia selects the best Ovi service features opened for developers – such as 3D mapping, hybrid positioning, push information and social networking First Ovi APIs to be opened soon Closed beta : Ovi Maps Put maps in your apps. Coming : Push Information APIs Real-time relevant context to your applications We are constantly planning what features to open up – let us know what inspires you. * Branding TBD
  20. 20. Nokia + Ovi Developer Story | 20 Simplified | Device & Service API Nokia will bring the most powerful device and Ovi service features into a single offering, so that your apps can do more than anywhere else
  21. 21. Let us sell your app through Ovi store to hundreds of millions of users!
  22. 22. Nokia + Ovi Developer Story | 22 One Store | Distribute to masses Ovi Store offers unparalleled reach for distribution and sales to over 200 million Nokia device owners (end 2009) around the globe. Global distribution to S40, S60 on over 200 million Symbian, Maemo handsets 70% / 30% revenue share* Promotion of key apps in packaging, Credit card and advertising and opertator billing POS * 70% of Gross sales, net of refunds and returns, less applicable taxes and, where applicable, fixed operator billing cost
  23. 23. Distribute your Qt application to Ovi store – reached through more than 100 Nokia device models
  24. 24. Instead of just powerpoint marshmallow…
  25. 25. 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 QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support QtGui QtSql QtXml QtNetwork QtScript Phonon QtCore
  26. 26. 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
  27. 27. 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 }
  28. 28. 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 different databases QSqlDatabase::database("sales"); • Several drivers are supplied with Qt QSqlQuery query ("SELECT Lastname, City FROM Names", db);
  29. 29. 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.addData( data ); XML documents while (!xml.atEnd()) • Can select and aggregate XML elements of interest and transform them for output as { XML or in some other format xml.readNext(); ... // do processing }
  30. 30. Qt – Modules (Phonon) QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • Multimedia framework for audio and video content • Support playback of the most common formats • Media can be read from files or streamed over a QtGui QtSql QtXml QtNetwork QtScript Phonon network • Just FW, backend provides the actual functionality QtCore • Windows: DirectX and DirectShow 9 or higher • Linux: GStreamer • Mac: QuickTime • Based on three basic concepts • Media objects Phonon::VideoPlayer *player = • Manages media sources new Phonon::VideoPlayer( • Media control: start, stop, pause etc Phonon::VideoCategory, • Sinks parentWidget); • Outputs media (video rendering to widget, audio to player->play(url); sound card) • Paths • Used to connect media objects and sinks • Enables media graphs
  31. 31. Qt – Modules (WebKit) QtOpenGl QtSvg QtWebKit QtXmlPatterns Qt3Support • Classes for displaying and editing Web content QtGui QtSql QtXml QtNetwork QtScript Phonon • Web content can be enhanced with native 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 *view = new QWebView(parent); view->load(QUrl("http://qt.nokia.com/")); • QWebView, QWebPage and QWebFrame view->show();
  32. 32. Plus Qt Mobility APIs for Mobile Development • First release planned Q4/2009 Mobile Extensions for Qt for Symbian • Experimental Symbian-specific APIs for accessing Symbian platform functionality • Planned content • Available for technology preview at Forum Nokia to invite feedback • Service Framework • Feedback is used to guide the new Qt APIs for Mobile Development • Contacts API • Support for Access point Manager, • Location API Location, Sensor, Camera, Contacts, Media • System Information API • Messaging API • Bearer Management • Context Framework
  33. 33. Did you like the meal? Let’s have something sweet to end with... Choose hybrid and get the best of both worlds
  34. 34. 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
  35. 35. Hybrid - combining the best of both worlds So you can run JS and HTML inside Qt application… WRT Widget Qt application Webkit QWebView running webkit Widgets HTML, CSS, Same HTML, CSS, JavaScript JavaScript Platform Services Native APIs Platform Services implementation Accessing Native APIs through JS
  36. 36. Webview Demo • Pure JS content run on top of Webkit • Demonstrates different applications & look and feel • In the demo there’s BBC News, games like Rock-Paper-Scissors, Tic-Tac-Toe, Calculator and Bubble • Anything from web can be pulled to the hybrid container • Statistics: • 300 lines of Qt code • Size of .sis file: 20 kB • Development time: approx. 5 hours Browser/ Standalone Web runtime Application *) Qt C++ Hybrid Application Services written in Qt C++, Declarative HTML, CSS, UI, Access to Qt JavaScript Cool guys swing both ways Go hybrid with Qt and Web!
  37. 37. What the heck was the dude talking about?
  38. 38. Nokia + Ovi Developer Story | 38 Nokia native dev offering, redefined 1= Nokia cross-platform SDKs that you’ll love – with a money back guarantee (as it’s free) 2= Ovi APIs. Amazing features in your apps – take the Ovi social network to be a part of your solution 3= Ovi Store. Sell your app to hundreds of millions
  39. 39. http://qt.nokia.com/ Thank you very ma ny! Questions? pekka.kosonen@n okia.com 39