Qt - for stack overflow developer conference


Published on

Presentation for stack over flow event in London 28.10.2009. Good event, over 500 guys and gals in the audience!


Published in: Technology
  • Be the first to comment

Qt - for stack overflow developer conference

  1. 1. 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/
  2. 2. 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 2
  3. 3. Qt everywhere Getting to the fast-lane Pekka Kosonen Head of Technology Development Pekka Kosonen Forum Nokia Head of Technology Development, Nokia 28.10.2009 Qt developer days - Munich 13.10.2009 http://qt.nokia.com
  4. 4. 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
  5. 5. What’s on the menu today? For appetizers –code and 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 6. Get your Qt app running in a smartphone - without installing any SDKs or even having a device
  6. 6. The importance of the developer to Nokia Nokia’s success with it’s devices and services strategy comes from 3rd party innovation! Source: SA, Canalys, August 2009
  7. 7. Open and rich platform Operators Developers Ovi APIs and SDK Cross Platform: Qt, Web Runtime Nokia devices on Symbian Platform
  8. 8. 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?
  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 13
  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. Appetizers are over - Motivated? Time for the main course It’s web and Qt for Nokia
  14. 14. Nokia + Ovi Developer Story | 19 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.
  15. 15. Amazing features in your apps – sooner than you can expect
  16. 16. Nokia + Ovi Developer Story | 22 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 We’re doing all the services consumer usually needs – and will open the APIs for those!
  17. 17. Let us sell your app through Ovi store to hundreds of millions of users!
  18. 18. Ovi Store is open around the world Ovi Store has active users in more than 180 countries Supporting over 100 device models And I can do powerpoint animations!
  19. 19. Nokia + Ovi Developer Story | 26 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
  20. 20. Distribute your Qt application to Ovi store – reached through more than 100 Nokia device models
  21. 21. Instead of just powerpoint marshmallow…
  22. 22. Qt Creator: Cross Platform IDE • Lightweight cross-platform IDE for Qt • An advanced C++ code editor • Integrated, context sensitive help system • Integrated visual debugger • 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
  23. 23. 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
  24. 24. 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
  25. 25. 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 }
  26. 26. 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);
  27. 27. 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 }
  28. 28. 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
  29. 29. 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();
  30. 30. Plus Qt Mobility APIs for Mobile Development • First release planned already during 2009 Mobile Extensions for Qt for Symbian • Experimental Symbian-specific APIs for • Service Framework, Context Framework accessing Symbian platform functionality • Contacts API • Available for technology preview at Forum Nokia to invite feedback • Location API • Feedback is used to guide the new Qt • System Information API APIs for Mobile Development • Support for Access point Manager, • Messaging API Location, Sensor, Camera, Contacts, Media • Bearer Management http://labs.trolltech.com/page/Projects/QtMobility
  31. 31. Did you like the meal? Let’s have something sweet to end with... Choose hybrid and get the best of both worlds
  32. 32. 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
  33. 33. 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
  34. 34. 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!
  35. 35. Get your Qt app running in real Nokia device - without installing SDKs or having a device!
  36. 36. 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?
  37. 37. What the heck was the dude talking about?
  38. 38. Nokia + Ovi Developer Story | 46 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 47