Cross platform application development with Qt Daniel Rocha Sr. Technology Expert Forum Nokia
Contents Introduction Qt overview Qt for Nokia’s mobile platforms Hands-on demo
1. Introduction Qt is cute
Background Trolltech was founded in 1994 and first Qt release went live 1995 I n June 2008 Nokia acquired Trolltech ASA to enable the acceleration of their cross-platform software strategy for mobile devices and desktop applications, and to develop its Internet services business. On September 27, 2008 Nokia fully integrated Trolltech and named the new Nokia entity Qt Software. Nokia will keep the Qt cross platform focus. Nowadays ” Qt Development Frameworks ” http:// qt.nokia.com
Facts Easy to learn Comprehensive documentation with good examples Qt x mobile features In the first phase you will need to write Qt + native code Qt ’Mobility APIs’ Supports major desktop OSs + Nokia’s platforms Qt will be the main choice for developers cross-platform development and Nokia platforms http:// qt.nokia.com
What is Qt? Pronounced “cute”. Qt is a cross platform application framework . All the tools you need to develop applications are offered free of charge. Qt offers APIs for C++ An application done with Qt can be run on all widely used desktop environments and also embedded environments like Windows CE, Maemo Linux (N900) and Symbian Apps are compiled to native applications . Qt is implemented starting from as low level as suitable instead of providing new API layers on top of existing high-level APIs. http:// qt.nokia.com
Qt http:// qt.nokia.com
Qt versions Qt 4.5 is the latest stable version of Qt and was released in March 2009. Improvements include: Newest Qt WebKit Integration The WebKit browser engine included with Qt has the latest WebKit features: Support for full page zooming, with appropriate rescaling of images and fonts. The CSS-based transformation and animation features provided by a WebKit extension. Netscape plugin API Mac OS X Cocoa Support XML Transformations with XSLT http:// qt.nokia.com
Qt versions Qt 4.6 beta has been announced in October 2009. Improvements include: Symbian support Maemo support Animation framework State machine framework Multi touch support DOM access API: Web pages and XML Performance optimizations Graphics effects: blurring, colorizing, blooming. Qt 3D – simplifying Open GL http:// qt.nokia.com
2. Overview Qt is easy
C++ Application Framework Qt provides easy C++ APIs Qt goes beyond C++ in the areas of inter-object communication and flexibility for advanced GUI development. Adds some features to C++: A very powerful mechanism for seamless object communication called signals and slots Queryable and designable object properties Powerful events and event filters Contextual string translation for internationalization Sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI Hierarchical and queryable object trees that organize object ownership in a natural way Guarded pointers (QPointer) that are automatically set to 0 when the referenced object is destroyed
Overview The Qt class library encompasses all the functions needed to build robust, high-end applications Separated into several modules, Qt’s intuitive API includes Core Classes GUI Classes SQL Database Classes XML Classes Networking Classes OpenGL ® Classes Qt WebKit Integration Multimedia classes And more
Signals and Slots in Core Module Unique inter-object communication mechanism provides Type-safe callback between objects Facilitates loose coupling / encapsulation Sender and receiver does not “know about” each other 1-to-many, many-to-1 communication between objects Works across threads Fully object-oriented A signal is emitted when a particular event occurs . A slot is a function that is called in response to a particular signal .
Qt GUI Classes All the UI components usually needed Customized components can be written and integrated with IDEs Provides rich set of GUI components and supporting functionality User interface components Simple to complex widgets and controls, dialogs Model-View-Controller (MVC) Item views Styles – ensuring native or custom look and feel on target platforms Font-aware layout system Accessibility classes Canvas component with Widget support
Qt Database Classes Provide platform and database- independent access functionality Driver Layer Low-level bridge between specific databases and the SQL API layer SQL API Layer Provide access to databases User Interface Layer Link data from a database to data-aware widgets Supports most major database drivers DB2, IBASE, MySQL, OCI, ODBC, PSQL, SQLITE, TDS QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query ("SELECT Lastname, City FROM Names", db);
Qt Networking Classes Provides TCP/IP networking functionality TCP sockets for clients and for servers Encapsulates TCP and UDP APIs SSL support HTTP 1.1 compliant asynchronous API FTP, DNS implementation & SSL support QHttp http; connect(http, SIGNAL(done(bool)), this, SLOT(done(bool))); http->get(“http://www.softafoorumi.com/amazingApi.jsp?action=doGreatThings”); void MyClass::done(bool error) { QString data = http->readAll(); //handle data }
OpenGL is a standard API for rendering 3D graphics Allows you to build your user interface in Qt, display and manipulate 3D model in OpenGL ® Integrates OpenGL canvas with Qt Provides frame buffer and pixel buffer abstraction Supports accelerating 2D painting with OpenGL Mix 2D painting and 3D scenes Qt Open GL/3D Classes
Qt XML Classes Core Module Simple XML stream reader and writer XML Module A well-formed XML parser using the SAX2 (Simple API for XML) interface Implementation of the DOM Level 2 (Document Object Model) XmlPatterns module An implementation of the XQuery standard Enable users to query XML files similar to SQL Semantics for value assignment, filtering, and simple operations Fully controllable output formatting Qt 4.5 adds XSLT support QXmlStreamReader xml; xml.addData( data ); while (!xml.atEnd()) { xml.readNext(); ... // do processing }
Qt WebKit Integration An open source HTML rendering component integrated with Qt Based on webkit ( http://webkit.org ) that is also used by f.ex Safari, Google Chrome & iPhone Web standards compliant support for HTML, XHTML, XML, stylesheets, JavaScript, HTML editing, HTML canvas, AJAX, XSLT, XPath, some SVG. Deployable wherever Qt is: cross-platform/cross-version/cross-device Interact with Web environment, expose native objects NPAPI support with Qt 4.5 QWebView *view = new QWebView(parent); view->load(QUrl("http: // qt.nokia.com/")); view->show(); http://webkit.org
Phonon Single, easy to use API (”Phonon”) for playback Provides possibility to play/synchronize multiple sound/video streams Will use native back-end format support DirectShow on Windows GStreamer on X11 QuickTime on Mac MMF on Symbian Plan to add more video and authoring support in the future Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, parentWidget); player->play(url);
Qt Designer: GUI layout and forms builder Qt Creator : C ross-platform IDE for use with the Qt application framework Qt Linguist: Internationalization toolset Qt Assistant: Customizable documentation reader qmake: Cross-platform build tool Integration with Visual Studio ® and Eclipse ® IDEs – including Nokia’s Carbide.C++ For Symbian Integration with Maemo SDK in the works Development Tools
Qt Designer Qt Designer is a powerful, drag-and-drop GUI layout and forms builder Features Supports forms and dialog creation with instant preview Integrates with Qt layout system Extensive collection of standard widgets Support for custom widgets and dialogs Seamless integration with many IDEs Benefits Greatly speeds the interface design process Enables native look and feel across all supported platforms Developers work within the environment of their choice, leveraging existing skills
Qt Creator Lightweight, cross-platform IDE for Qt Advanced C++ code editor Integrated, context sensitive help system Integrated visual debugger (based on gdb) Integrated source code management Project and build management tools Integrated Qt development tools
Code navigation tools Challenge Projects contain hundreds of source files Developers often don’t know name/location of file Solution Open files without knowing exact names or locations Search for classes, functions, symbols and files Follow symbols across several locations/files Switch between headers and source files Switch between declarations and definitions Quickly finding and opening classes.
Tailored to the needs of Qt cross-platform developers Challenge Qt is cross-platform, but IDEs/dev. environments are not Can be difficult to get up with a new framework Solution True cross-platform development environment for Qt Integrated Qt-specific features (i.e. Signals & Slots) Debugger aware of Qt class structures New developers get productive sooner Visualizing Qt class structures in Debug mode.
Powerful C++ code editor Challenge Writing elegant, correct code can be time consuming Finding help often demands context switching Solution Syntax highlighting and automatic code completion Static code checking as you type Context sensitive help Code folding Parenthesis matching and parenthesis selection modes Advanced editing capabilities like block selection Code completion. Context-sensitive help.
Available as part of complete SDK Qt Designer GUI Layout & Forms Tool Qt Assistant Help file/documentation browser Qt Linguist Translation/I18n Tool qmake Cross-platform build tool Qt Development Tools Qt Libraries Qt SDK Licensing Options: Commercial LGPL
3. Qt on Nokia’s mobile platforms Qt is mobile
Nokia + Ovi Developer Story |  With the simplified toolchain you can tackle f. ex Maemo and Symbian-based devices Develop on PC, Mac or Linux Nokia’s Qt mobile offering
Qt for Symbian platform Qt Development Frameworks announced in October-08 the porting of Qt to Symbian OS, the world's leading, open smartphone platform Beta package available for download from Qt Development Frameworks website http://qt.nokia.com (http://qt.nokia.com/developer/qt-4.6-beta-for-symbian-developers). With the inclusion of the Symbian OS platform, developers have an additional 130 million target devices that they can support with their Qt-based applications.
Qt for Symbian platform - Total Offering Qt for Symbian – Qt 4.6 ported to S60 3 rd Edition FP 1 and FP 2, 5 th editions. Will be the only UI framework for Symbian Foundation devices in 2010. Carbide.c++ 2.0 supporting Qt/Symbian development. Fully integrated form editor ( Qt Designer ) Wizards for creating new Qt projects and classes Integrated .pro file editor Automated build setup for moc, uic, and rcc Examples and additional documentation available in Forum Nokia And more to come…
Current Release The release is called Colossus with following functionality QtCore - http://doc.trolltech.com/4.5/qtcore.html QtGui - http://doc.trolltech.com/4.5/qtgui.html QtNetwork - http://doc.trolltech.com/4.5/qtnetwork.html QtScript - http://doc.trolltech.com/4.5/qtscript.html QtSql - http://doc.trolltech.com/4.5/qtsql.html QtSvg - http://doc.trolltech.com/4.5/qtsvg.html QtTest - http://doc.trolltech.com/4.5/qttest.html QtWebKit - http://doc.trolltech.com/4.5/qtwebkit.html QtXml - http://doc.trolltech.com/4.5/qtxml.html Phonon - http://doc.trolltech.com/4.5/phonon-module.html Where to get it: http://pepper.troll.no/s60prereleases/
Qt for Symbian releases FINAL P11 Garden P3-09 based on 4.5 Tower P6-09 based on 4.5 Pyramid P10 based on 4.4 QtNetwork QtXml QtGUI *) QtCore QtScript QtSql QtSvg http://pepper.troll.no/s60prereleases/ Beta late P9 QtXmlPatterns QtWebkit Phonon QtTest Colossus release focusing on HW acceleration and performance Bringing in QtSqt, QtWebkit (experimentary version) and phonon with MMF QtOpenGL Q3Support
Qt Support in Carbide.c++ 2.0 Support for Qt development Carbide works with Qt projects .PRO editor for easy project configuration Package /deploy projects to phone Qt plug-ins are included in Carbide Qt project Wizard Support for Qt UI design tool Oh yeah, since Qt for Symbian is a Symbian application, you can use same tools for debugging, profiling etc.
Qt for Maemo platform Maemo is an open-source development platform for Internet Tablets and maemo mobile computers (f.ex N900) 90% of source code is open-source Maemo 5 contains GSM and 3G functionality In maemo 5 GTK is still supported as development framework – not officially supported in maemo 6 anymore We’re bringing in Qt for maemo and encourage all developers to use Qt as the long term solution http://qt.nokia.com/developer/qt-for-maemo-developers
Product evolution Internet Optimized Multimedia Computer Nokia N800 2 nd generation of Nokia Internet Tablets. Nokia N810 Taking the positioning of the Tablet Category from a predominantly ‘one-way’ surfing tool, to a genuine ‘two way’ communication device. With integrated slide keyboard N810 leads the richly connected pocketable Web 2.0 experience allowing you to connect to your content and experiences wherever you are. Nokia N810 WiMAX Edition Bringing WiMAX connection to strengthen the internet story. With wider wireless internet coverage, Internet will truly become personal and mobile. Nokia 770 1 st generation of Nokia Internet Tablets Easy access to the internet. High resolution touch screen.
Maemo 5 Linux based operating system for N900 Optimized for pocket sized devices and finger use Panorama desktop Multitasking with dashboard New UI style Animated UI Compositing window manager Accelerated graphics with OpenGL-ES2 http://www.forum.nokia.com/devices/N900 N900 WLAN IEEE 802.11b/g 32 GB internal storage Integrated GPS with A-GPS High definition camera support (integrated Image Signal Processor) 5 megapixel camera (2584 × 1938 pixels) HW acceleration for OpenGL ES 2.0 3.5 inch touch-screen 800 × 480 pixel resolution High-speed USB 2.0 HSPA/3G support – online anywhere 3G connectivity TI OMAP 3 processor, ARM Cortex-A8 600 MHz
Hildon UI – simple and customizable Taskbar to navigate applications Status bar indicating device state Widgets and RSS feeds for up-to-date information Consistent controls across applications
Maemo software architecture ARM/OMAP-based Linux kernel GNOME Structured File Library System Libraries incl. GNU C, STD C++, OpenSSL, curl HTTP, etc Maemo SDK Qt Maemo UI and applications Debian Package Management System services such as D-Bus, DSM, MCE, BME, and SQLite DB GNOME Configuration Management Telepathy Communication Framework gStreamer Multimedia Framework E-D-S Calendar/ Contacts GNOME VFS File Access Maemo Launcher Maemo platform: Mostly open source except connectivity, power management and licensed software Mostly binary code for Nokia devices Hildon UI Framework GNOME/GTK+ Application Framework
Plus Qt Mobility APIs for Mobile Development First release planned Q4/2009 Supporting Symbian Maemo support under investigation Planned content Service Framework Contacts API Location API System Information API Messaging API Bearer Management Context Framework http:// labs.trolltech.com/page/Projects/QtMobility
4. Demo Time to embarrass myself…
How to Get Started? http://qt.nokia.com
Comments? Questions? Thank you! [email_address]
Back-up slides
Qt 4.5 Licensing
Licensing There have been lot of speculation and concerns of used licensing model. The current release is under Commercial Tech Preview license which allows evaluating and testing only. Qt 4.5 will be released under LGPL i.e no license fees for closed source commercial development On 14 January, Nokia announced that its Qt cross-platform user interface (UI) and application framework for desktop and embedded platforms will be available under the open source LGPL version 2.1 license from the release of Qt 4.5, scheduled for March 2009.  In addition: Qt source code repositories will be made publicly available and will encourage contributions from desktop and embedded developer communities. Service offerings for Qt will be expanded to ensure that all Qt development projects can have access to the same levels of support, independent of the selected license. 

Qt Technical Presentation

  • 1.
    Cross platform applicationdevelopment with Qt Daniel Rocha Sr. Technology Expert Forum Nokia
  • 2.
    Contents Introduction Qtoverview Qt for Nokia’s mobile platforms Hands-on demo
  • 3.
  • 4.
    Background Trolltech wasfounded in 1994 and first Qt release went live 1995 I n June 2008 Nokia acquired Trolltech ASA to enable the acceleration of their cross-platform software strategy for mobile devices and desktop applications, and to develop its Internet services business. On September 27, 2008 Nokia fully integrated Trolltech and named the new Nokia entity Qt Software. Nokia will keep the Qt cross platform focus. Nowadays ” Qt Development Frameworks ” http:// qt.nokia.com
  • 5.
    Facts Easy tolearn Comprehensive documentation with good examples Qt x mobile features In the first phase you will need to write Qt + native code Qt ’Mobility APIs’ Supports major desktop OSs + Nokia’s platforms Qt will be the main choice for developers cross-platform development and Nokia platforms http:// qt.nokia.com
  • 6.
    What is Qt?Pronounced “cute”. Qt is a cross platform application framework . All the tools you need to develop applications are offered free of charge. Qt offers APIs for C++ An application done with Qt can be run on all widely used desktop environments and also embedded environments like Windows CE, Maemo Linux (N900) and Symbian Apps are compiled to native applications . Qt is implemented starting from as low level as suitable instead of providing new API layers on top of existing high-level APIs. http:// qt.nokia.com
  • 7.
  • 8.
    Qt versions Qt4.5 is the latest stable version of Qt and was released in March 2009. Improvements include: Newest Qt WebKit Integration The WebKit browser engine included with Qt has the latest WebKit features: Support for full page zooming, with appropriate rescaling of images and fonts. The CSS-based transformation and animation features provided by a WebKit extension. Netscape plugin API Mac OS X Cocoa Support XML Transformations with XSLT http:// qt.nokia.com
  • 9.
    Qt versions Qt4.6 beta has been announced in October 2009. Improvements include: Symbian support Maemo support Animation framework State machine framework Multi touch support DOM access API: Web pages and XML Performance optimizations Graphics effects: blurring, colorizing, blooming. Qt 3D – simplifying Open GL http:// qt.nokia.com
  • 10.
  • 11.
    C++ Application FrameworkQt provides easy C++ APIs Qt goes beyond C++ in the areas of inter-object communication and flexibility for advanced GUI development. Adds some features to C++: A very powerful mechanism for seamless object communication called signals and slots Queryable and designable object properties Powerful events and event filters Contextual string translation for internationalization Sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI Hierarchical and queryable object trees that organize object ownership in a natural way Guarded pointers (QPointer) that are automatically set to 0 when the referenced object is destroyed
  • 12.
    Overview The Qtclass library encompasses all the functions needed to build robust, high-end applications Separated into several modules, Qt’s intuitive API includes Core Classes GUI Classes SQL Database Classes XML Classes Networking Classes OpenGL ® Classes Qt WebKit Integration Multimedia classes And more
  • 13.
    Signals and Slotsin Core Module Unique inter-object communication mechanism provides Type-safe callback between objects Facilitates loose coupling / encapsulation Sender and receiver does not “know about” each other 1-to-many, many-to-1 communication between objects Works across threads Fully object-oriented A signal is emitted when a particular event occurs . A slot is a function that is called in response to a particular signal .
  • 14.
    Qt GUI ClassesAll the UI components usually needed Customized components can be written and integrated with IDEs Provides rich set of GUI components and supporting functionality User interface components Simple to complex widgets and controls, dialogs 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
  • 15.
    Qt Database ClassesProvide platform and database- independent access functionality Driver Layer Low-level bridge between specific databases and the SQL API layer SQL API Layer Provide access to databases User Interface Layer Link data from a database to data-aware widgets Supports most major database drivers DB2, IBASE, MySQL, OCI, ODBC, PSQL, SQLITE, TDS QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query ("SELECT Lastname, City FROM Names", db);
  • 16.
    Qt Networking ClassesProvides TCP/IP networking functionality TCP sockets for clients and for servers Encapsulates TCP and UDP APIs SSL support HTTP 1.1 compliant asynchronous API FTP, DNS implementation & SSL support QHttp http; connect(http, SIGNAL(done(bool)), this, SLOT(done(bool))); http->get(“http://www.softafoorumi.com/amazingApi.jsp?action=doGreatThings”); void MyClass::done(bool error) { QString data = http->readAll(); //handle data }
  • 17.
    OpenGL is a standard API for rendering 3D graphics Allows you to build your user interface in Qt, display and manipulate 3D model in OpenGL ® Integrates OpenGL canvas with Qt Provides frame buffer and pixel buffer abstraction Supports accelerating 2D painting with OpenGL Mix 2D painting and 3D scenes Qt Open GL/3D Classes
  • 18.
    Qt XML ClassesCore Module Simple XML stream reader and writer XML Module A well-formed XML parser using the SAX2 (Simple API for XML) interface Implementation of the DOM Level 2 (Document Object Model) XmlPatterns module An implementation of the XQuery standard Enable users to query XML files similar to SQL Semantics for value assignment, filtering, and simple operations Fully controllable output formatting Qt 4.5 adds XSLT support QXmlStreamReader xml; xml.addData( data ); while (!xml.atEnd()) { xml.readNext(); ... // do processing }
  • 19.
    Qt WebKit IntegrationAn open source HTML rendering component integrated with Qt Based on webkit ( http://webkit.org ) that is also used by f.ex Safari, Google Chrome & iPhone Web standards compliant support for HTML, XHTML, XML, stylesheets, JavaScript, HTML editing, HTML canvas, AJAX, XSLT, XPath, some SVG. Deployable wherever Qt is: cross-platform/cross-version/cross-device Interact with Web environment, expose native objects NPAPI support with Qt 4.5 QWebView *view = new QWebView(parent); view->load(QUrl("http: // qt.nokia.com/")); view->show(); http://webkit.org
  • 20.
    Phonon Single, easyto use API (”Phonon”) for playback Provides possibility to play/synchronize multiple sound/video streams Will use native back-end format support DirectShow on Windows GStreamer on X11 QuickTime on Mac MMF on Symbian Plan to add more video and authoring support in the future Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, parentWidget); player->play(url);
  • 21.
    Qt Designer: GUIlayout and forms builder Qt Creator : C ross-platform IDE for use with the Qt application framework Qt Linguist: Internationalization toolset Qt Assistant: Customizable documentation reader qmake: Cross-platform build tool Integration with Visual Studio ® and Eclipse ® IDEs – including Nokia’s Carbide.C++ For Symbian Integration with Maemo SDK in the works Development Tools
  • 22.
    Qt Designer QtDesigner is a powerful, drag-and-drop GUI layout and forms builder Features Supports forms and dialog creation with instant preview Integrates with Qt layout system Extensive collection of standard widgets Support for custom widgets and dialogs Seamless integration with many IDEs Benefits Greatly speeds the interface design process Enables native look and feel across all supported platforms Developers work within the environment of their choice, leveraging existing skills
  • 23.
    Qt Creator Lightweight,cross-platform IDE for Qt Advanced C++ code editor Integrated, context sensitive help system Integrated visual debugger (based on gdb) Integrated source code management Project and build management tools Integrated Qt development tools
  • 24.
    Code navigation toolsChallenge Projects contain hundreds of source files Developers often don’t know name/location of file Solution Open files without knowing exact names or locations Search for classes, functions, symbols and files Follow symbols across several locations/files Switch between headers and source files Switch between declarations and definitions Quickly finding and opening classes.
  • 25.
    Tailored to theneeds of Qt cross-platform developers Challenge Qt is cross-platform, but IDEs/dev. environments are not Can be difficult to get up with a new framework Solution True cross-platform development environment for Qt Integrated Qt-specific features (i.e. Signals & Slots) Debugger aware of Qt class structures New developers get productive sooner Visualizing Qt class structures in Debug mode.
  • 26.
    Powerful C++ codeeditor Challenge Writing elegant, correct code can be time consuming Finding help often demands context switching Solution Syntax highlighting and automatic code completion Static code checking as you type Context sensitive help Code folding Parenthesis matching and parenthesis selection modes Advanced editing capabilities like block selection Code completion. Context-sensitive help.
  • 27.
    Available as partof complete SDK Qt Designer GUI Layout & Forms Tool Qt Assistant Help file/documentation browser Qt Linguist Translation/I18n Tool qmake Cross-platform build tool Qt Development Tools Qt Libraries Qt SDK Licensing Options: Commercial LGPL
  • 28.
    3. Qt onNokia’s mobile platforms Qt is mobile
  • 29.
    Nokia + OviDeveloper Story |  With the simplified toolchain you can tackle f. ex Maemo and Symbian-based devices Develop on PC, Mac or Linux Nokia’s Qt mobile offering
  • 30.
    Qt for Symbianplatform Qt Development Frameworks announced in October-08 the porting of Qt to Symbian OS, the world's leading, open smartphone platform Beta package available for download from Qt Development Frameworks website http://qt.nokia.com (http://qt.nokia.com/developer/qt-4.6-beta-for-symbian-developers). With the inclusion of the Symbian OS platform, developers have an additional 130 million target devices that they can support with their Qt-based applications.
  • 31.
    Qt for Symbianplatform - Total Offering Qt for Symbian – Qt 4.6 ported to S60 3 rd Edition FP 1 and FP 2, 5 th editions. Will be the only UI framework for Symbian Foundation devices in 2010. Carbide.c++ 2.0 supporting Qt/Symbian development. Fully integrated form editor ( Qt Designer ) Wizards for creating new Qt projects and classes Integrated .pro file editor Automated build setup for moc, uic, and rcc Examples and additional documentation available in Forum Nokia And more to come…
  • 32.
    Current Release Therelease is called Colossus with following functionality QtCore - http://doc.trolltech.com/4.5/qtcore.html QtGui - http://doc.trolltech.com/4.5/qtgui.html QtNetwork - http://doc.trolltech.com/4.5/qtnetwork.html QtScript - http://doc.trolltech.com/4.5/qtscript.html QtSql - http://doc.trolltech.com/4.5/qtsql.html QtSvg - http://doc.trolltech.com/4.5/qtsvg.html QtTest - http://doc.trolltech.com/4.5/qttest.html QtWebKit - http://doc.trolltech.com/4.5/qtwebkit.html QtXml - http://doc.trolltech.com/4.5/qtxml.html Phonon - http://doc.trolltech.com/4.5/phonon-module.html Where to get it: http://pepper.troll.no/s60prereleases/
  • 33.
    Qt for Symbianreleases FINAL P11 Garden P3-09 based on 4.5 Tower P6-09 based on 4.5 Pyramid P10 based on 4.4 QtNetwork QtXml QtGUI *) QtCore QtScript QtSql QtSvg http://pepper.troll.no/s60prereleases/ Beta late P9 QtXmlPatterns QtWebkit Phonon QtTest Colossus release focusing on HW acceleration and performance Bringing in QtSqt, QtWebkit (experimentary version) and phonon with MMF QtOpenGL Q3Support
  • 34.
    Qt Support inCarbide.c++ 2.0 Support for Qt development Carbide works with Qt projects .PRO editor for easy project configuration Package /deploy projects to phone Qt plug-ins are included in Carbide Qt project Wizard Support for Qt UI design tool Oh yeah, since Qt for Symbian is a Symbian application, you can use same tools for debugging, profiling etc.
  • 35.
    Qt for Maemoplatform Maemo is an open-source development platform for Internet Tablets and maemo mobile computers (f.ex N900) 90% of source code is open-source Maemo 5 contains GSM and 3G functionality In maemo 5 GTK is still supported as development framework – not officially supported in maemo 6 anymore We’re bringing in Qt for maemo and encourage all developers to use Qt as the long term solution http://qt.nokia.com/developer/qt-for-maemo-developers
  • 36.
    Product evolutionInternet Optimized Multimedia Computer Nokia N800 2 nd generation of Nokia Internet Tablets. Nokia N810 Taking the positioning of the Tablet Category from a predominantly ‘one-way’ surfing tool, to a genuine ‘two way’ communication device. With integrated slide keyboard N810 leads the richly connected pocketable Web 2.0 experience allowing you to connect to your content and experiences wherever you are. Nokia N810 WiMAX Edition Bringing WiMAX connection to strengthen the internet story. With wider wireless internet coverage, Internet will truly become personal and mobile. Nokia 770 1 st generation of Nokia Internet Tablets Easy access to the internet. High resolution touch screen.
  • 37.
    Maemo 5 Linux based operating system for N900 Optimized for pocket sized devices and finger use Panorama desktop Multitasking with dashboard New UI style Animated UI Compositing window manager Accelerated graphics with OpenGL-ES2 http://www.forum.nokia.com/devices/N900 N900 WLAN IEEE 802.11b/g 32 GB internal storage Integrated GPS with A-GPS High definition camera support (integrated Image Signal Processor) 5 megapixel camera (2584 × 1938 pixels) HW acceleration for OpenGL ES 2.0 3.5 inch touch-screen 800 × 480 pixel resolution High-speed USB 2.0 HSPA/3G support – online anywhere 3G connectivity TI OMAP 3 processor, ARM Cortex-A8 600 MHz
  • 38.
    Hildon UI –simple and customizable Taskbar to navigate applications Status bar indicating device state Widgets and RSS feeds for up-to-date information Consistent controls across applications
  • 39.
    Maemo softwarearchitecture ARM/OMAP-based Linux kernel GNOME Structured File Library System Libraries incl. GNU C, STD C++, OpenSSL, curl HTTP, etc Maemo SDK Qt Maemo UI and applications Debian Package Management System services such as D-Bus, DSM, MCE, BME, and SQLite DB GNOME Configuration Management Telepathy Communication Framework gStreamer Multimedia Framework E-D-S Calendar/ Contacts GNOME VFS File Access Maemo Launcher Maemo platform: Mostly open source except connectivity, power management and licensed software Mostly binary code for Nokia devices Hildon UI Framework GNOME/GTK+ Application Framework
  • 40.
    Plus Qt MobilityAPIs for Mobile Development First release planned Q4/2009 Supporting Symbian Maemo support under investigation Planned content Service Framework Contacts API Location API System Information API Messaging API Bearer Management Context Framework http:// labs.trolltech.com/page/Projects/QtMobility
  • 41.
    4. Demo Timeto embarrass myself…
  • 42.
    How to GetStarted? http://qt.nokia.com
  • 43.
    Comments? Questions? Thankyou! [email_address]
  • 44.
  • 45.
  • 46.
    Licensing There havebeen lot of speculation and concerns of used licensing model. The current release is under Commercial Tech Preview license which allows evaluating and testing only. Qt 4.5 will be released under LGPL i.e no license fees for closed source commercial development On 14 January, Nokia announced that its Qt cross-platform user interface (UI) and application framework for desktop and embedded platforms will be available under the open source LGPL version 2.1 license from the release of Qt 4.5, scheduled for March 2009.  In addition: Qt source code repositories will be made publicly available and will encourage contributions from desktop and embedded developer communities. Service offerings for Qt will be expanded to ensure that all Qt development projects can have access to the same levels of support, independent of the selected license.