Qt For Maemo - getting to the fast-lane (v2)


Published on

Qt for maemo presentation in Qt developer days (13.10.2009).

Qt on N900 demo video available in http://www.youtube.com/watch?v=HkKNaZeTnHg

Published in: Technology
  • good overview
    Are you sure you want to  Yes  No
    Your message goes here
  • In case you're a tech geek and wanna give this a try the Qt for maemo tech preview is in http://qt.nokia.com/developer/qt-for-maemo-developers.
    There's Qt for maemo developers guide to ease the pain in wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide
    Are you sure you want to  Yes  No
    Your message goes here
  • If you're interested in this one I think you'd like to have a look at http://www.slideshare.net/pkosonen/qt-everywhere
    Are you sure you want to  Yes  No
    Your message goes here
  • Howdy - sorry had to replace the old presentation with this new one...

    Notice that the link changed as well.
    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 For Maemo - getting to the fast-lane (v2)

  1. 1. Qt for maemo Qt for maemo Getting in the fast-lane - why and how Pekka Kosonen Head of Technology Development Pekka Kosonen Forum Nokia Head of Technology Development, Nokia 25.9.2009 http://qt.nokia.com Munich 13.10.2009 Qt developer days -
  2. 2. What’s on the menu today? For appetizers - motivation Why Qt and why maemo? What can we offer for you? Main course will be served in 10 minutes 1. What is maemo about 2. What’s the maemo development story 3. How to do Qt apps for maemo 4. Pop the hood and get our hands dirty For dessert 5. Swing both ways (Qt and Web)? -> Go hybrid! Coffee and cognac later on… Slides will be available in http://www.slideshare.net/pkosonen
  3. 3. Qt, maemo, Ovi store, Forum Nokia… Slides will be available in http://www.slideshare.net/pkosonen
  4. 4. Maemo - Why should I care? • Coming from desktop? • The importance of mobile clients is widely recognized already – not gonna sell it here… • With Qt and Mobility APIs you can easily extend your application to cover smartphone features and utilize f.ex location, contacts, messaging etc. • With maemo and Symbian you can reach more than 100 million devices with your Qt application – already with Qt 4.6! • Maemo is and will be very important for Nokia – get a head start to maemo which we believe will be one of the most interesting platforms! • With Ovi store you have a ready channel to sell your application to hundreds of millions of users
  5. 5. The importance of the developer to Nokia Nokia’s success with it’s devices and services strategy comes from 3rd party innovation!
  6. 6. It’s will be web and Qt for Nokia
  7. 7. Cross-platform evolution expands opportunities Next Desktop Series 40* Symbian Maemo Enables rich service creation on supported Web Web platforms using standard Web Runtime Web technology Flash Flash Flash Lite Flash Java Java SE Java ME Enables fast application and UI development across mobile Native Web and desktop platforms Qt Web Runtime and Qt close the gap between mobile and desktop development * selected Series 40 devices 7 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials Web Runtime and Qt have only limited use on Series 40
  8. 8. Our Developer Offering: Elegantly connected services Services Level Apps Level Platform Nokia platforms Desktop OSs Level 8
  9. 9. Qt Development Chain - maemo & Symbian Distribution Ovi Store Certification Symbian signed None - atleast yet… IDEs •Qt Creator •Qt Creator •Carbide Common offering •Mobility APIS •Mobility APIs SDKs Qt for Symbian Qt for maemo & platform platform Plugins Symbian SDKs Maemo SDKs Symbian Maemo
  10. 10. Nokia supports the entire development ecosystem OPERATORS Nokia devices Ovi Store Sell devices to deliver essential connects consumers solutions to the developers with consumer consumers Successful Successful ecosystem ecosystem benefits all benefits all Cross-platform Ovi API adds parties parties environments people and reduce costs and places features CONSUMERS speed to your apps, innovation easily Buy devices and download or purchase applications
  11. 11. Forum Nokia is the Nokia Developer Community Business Opportunities Forum Nokia accelerates the development and delivery of great 3rd Party 3rd party Software applications and Developers services on Nokia devices Technical Global Support Community
  12. 12. Recognized Developer Programs http://www.youtube.com/watch?v=S4iz-qTsPz4 “Nokia is the benchmark for all developer programs in nearly every category, is unsurpassed in content and traffic, and has the strongest collection of training options, including in-person courses.” - Evans Data Corporation 2009 Q2 Nokia’s market share continued to grow from 42 to 45%! * http://www.forum.nokia.com/maemo * Source: SA, Canalys, August 2009
  13. 13. maemo.org – the 21.000 registered users community for 900 hosted projects innovation on Maemo. October 2009
  14. 14. Start today : you can soon get your Qt app running on more than + 130 000 000 smartphones! in addition to all major desktop OSs
  15. 15. Let us sell your app through Ovi store to hundreds of millions of users!
  16. 16. Nokia + Ovi Developer Story | 16 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
  17. 17. N900 apps for Ovi
  18. 18. Appetizers are over - Motivated? Time for the main course - Walking through powerpoint marshmallow!
  19. 19. From geek(ish) gizmos to mainstream devices • 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 (i.e standard smartphone) • 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
  20. 20. Maemo 5 • Linux based operating system for N900 • Optimized for pocket sized devices and finger use N900 • Panorama desktop • Multitasking with dashboard TI OMAP 3 processor, ARM Cortex-A8 600 MHz HSPA/3G support – online anywhere 3G connectivity • New UI style High definition camera support (integrated Image Signal • Animated UI Processor) 5 megapixel camera (2584 × 1938 pixels) • Compositing window manager HW acceleration for OpenGL ES 2.0 • Accelerated graphics with OpenGL-ES2 3.5 inch touch-screen 800 × 480 pixel resolution High-speed USB 2.0 Integrated GPS with A-GPS WLAN IEEE 802.11b/g 32 GB internal storage http://flors.wordpress.com/2009/10/06/maemo-5-final-sdk-released-go-extras/ http://www.forum.nokia.com/devices/N900
  21. 21. Hildon UI – simple and customizable Status bar indicating device state Consistent controls across applications Taskbar to navigate applications Widgets and RSS feeds for up-to-date information
  22. 22. Maemo software architecture today Maemo UI and applications Hildon UI Maemo Framework Qt Maemo SDK Launcher GNOME/GTK+ Application Framework gStreamer GNOME GNOME GNOME E-D-S Telepathy Multimedia VFS File Structured Configuration Calendar/ Communication Framework Access File Library Management Contacts Framework System services such as D-Bus, DSM, MCE, BME, and SQLite DB Debian Package Management Mostly binary code for Nokia devices System Libraries incl. GNU C, STD C++, OpenSSL, curl HTTP, etc Maemo platform: Mostly open source except connectivity, power ARM/OMAP-based Linux kernel management and licensed software Note: This is only a simplified illustration and not all components are shown. Components in the upper layers of the software stack may interface also with components in the lower stacks even if there is no direct connection visible here between those.
  23. 23. Development resources for Maemo Maemo SDK: • The Maemo SDK creates a sandboxed development environment on a GNU/Linux desktop system largely built on the Scratchbox cross-compilation toolkit. • Maemo 5 final SDK announced 6th of October: http://flors.wordpress.com/2009/10/06/maemo-5-final-sdk-released-go-extras/ Qt: • The cross-platform application framework • http://qt.nokia.com • There will be official Qt support for Maemo 5 (Fremantle) Maemo.org: • Maemo.org website has a lot of different repositories that are meant to be used with standard Debian package installation tools. • Documentation include tutorials, API references, manuals and several other guides. Maemo online training: • Maemo training courses provide an efficient overview of the tools and methodologies needed when developing applications and platform services. Forum Nokia: • Consulting and technical service for application development on Maemo. • http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide
  24. 24. Get the weapons ready!
  25. 25. Qt for X11/Linux • Input events received from X11 Qt/X11 • Painting handled by X11 • Qt event loop on the top of GLib Application event loop Graphics Operations Qt • Events mapped to Qt events • Nothing to do with Hildon Qt/X11 Xlib In-Process Client Protected Mode Xserver Server Device Input Linux Driver Layer http://qt.nokia.com/products/platform/qt-for-linux-x11
  26. 26. Qt Integration to maemo Hildon Application Framework UI FW Games Hildon App Hildon Home Hildon Input Method libraries Wrapper Mgr FW Clutter Matchbox Tracker Hildon Hildon Control Panel Desktop Multimedia subsystem Connectivity subsystem Real-time communications subsystem Glib Telepathy PulseAudio libcanberra BlueZ Connection Manager Farsight2 AddressBook API GUPnP Speex audio codec GW OBEX libnice Accounts API Mobility APIs GStreamer Bellagio OpenMAC IL WLAN Event Logger API Media App FW FM Transmitter Wireless tools System SW subsystem Battery query interface API Vibra service API API HAL Device orientation API Core subsystem X Window Linux kernel Open GL ES drivers
  27. 27. Styles are more than just decorations • Improved finger usability and screen real estate usage • Lists and window panes scrollable with finger from window pane • New dialog layout, no cancel button, cancel action by clicking outside of dialog
  28. 28. Hildon menus • Hildon menus are very different from the desktop menu structure • finger optimized HildonAppMenu • Menus handled different way than in desktop X11 • menu bar is a property of window manager • No API changes to achieve this – it’s just Qt
  29. 29. 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
  30. 30. Peek into the torture chamber…
  31. 31. The building blocks • Setup your development environment • Install Maemo SDK from maemo.org • Maemo SDK is based on scratchbox pseudo virtual environment that emulates maemo device under x86 desktop Linux • Maemo SDK can be installed as VMWare virtual machine under Macintosh OSX or Windows • Update Qt once new versions available • Stay tuned http://qt.nokia.com/developer/qt-for-maemo-developers • Set up your maemo device • Install/Update Qt libraries • Set up connection with your computer
  32. 32. Development environment - the big picture Virtual machine Linux Scratchbox Maemo SDK Targets Armel Qt X86 Hildon Xephyr X Server
  33. 33. Environment for Windows machine • Vmware www.vmware.com • Maemo vmware image from http://maemovmware.garage.maemo.org (readme) • Contains Fremantle and Diablo SDK environments • Qt libraries for Fremantle • Setup the repositories and use apt-get to retrieve and install (same for device) • http://qt.nokia.com/developer/qt-for-maemo-developers • Instructions also in http://wiki.maemo.org/Qt#Fremantle • Remember http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide Do not get confused: You’re running a virtualized Linux PC inside a Windows operating system and inside the virtualized Linux you’re running Scratchbox which has maemo SDK that contains Qt – Keep it simple…
  34. 34. What is Scratchbox • Maemo development happens inside Scratchbox • Scratchbox provides a sandboxed cross-compilation development environment • maemo SDK is installed inside Scratchbox • Maemo SDK provides two targets for Scratchbox: • X86 used for active development • ARMEL for cross-compilation • maemo SDK also provides closed Nokia binaries separately • For SDK : contains some apps and f.ex opengl binaries • Qt development for maemo also requires scratchbox • Well you can develop the Qt app anywhere but need scratchbox to compile…
  35. 35. Using Scratchbox • From the terminal : Start scratchbox by typing the command scratchbox • Configure targets sb-menu • Switch between targets sb-conf select FREMANTLE_X86 (FREMANTLE_ARMEL) • Otherwise work in a similar way like outside SB • Single source concept : Single source – multiple targets
  36. 36. XServer • X server allows applications to create windows to which they can draw on the screen • Applications are X server clients • X server also provides key press and pointer events to applications • Maemo applications require a pseudo X server to be installed • Xephyr X server is typically used with Maemo SDK • Kdrive-based X server capable of emulating 16-bit color depth for clients • Start your engines : go outside Scratchbox and use the spell Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb & • In Scratchbox, direct the display to window 2 by typing export DISPLAY=:2 • In case you need to install Xephyr : apt-get install xserver-xephyr
  37. 37. Hildon Application Framework Start • Launch the application framework [sbox-FREMANTLE_X86: ~/Hw]: af-sb-init.sh start • Or run standalone shell (themes, fonts will work) [sbox-FREMANTLE_X86: ~/Hw]: run-standalone.sh ./helloworld
  38. 38. Enabling extras repository on development machine • To install/update libraries you need to have the correct repository enabled • Modify one text file in scratchbox called sources.list.d – add the following # Maemo extras and extras-devel deb http://repository.maemo.org/extras/ fremantle free non-free deb-src http://repository.maemo.org/extras/ fremantle free deb http://repository.maemo.org/extras-devel/ fremantle free non-free deb-src http://repository.maemo.org/extras-devel/ fremantle free • This needs to be done from terminal • Can’t use file explorer – ”virtual files” http://qt.nokia.com/developer/ qt-for-maemo-developers
  39. 39. Enabling extras repository for the devices • The Qt for Maemo 5 public repository is located at http://qt.gitorious.org/qt/qt-x11-maemo • Once Qt is in extras - easiest way to enable extras and extras-devel repository is to browse to http://wiki.maemo.org/Extras and click a link • Installing Qt : apt-get update //gets new packages apt-get install libqt4-gui //installs those • In some cases you need super user rights http://wiki.maemo.org/Root_access • One way to update the device is to check updates from application manager - will update Qt libraries when Not sure of what versions new versions are available of libraries you have: • Or by installing a Qt app that declares a dependency to //terminal: the libraries – app manager fetches the needed dpkg –s [lib name]
  40. 40. Go nuts and mix Qt with Maemo APIs • As Qt is not a runtime you can always use native apps to fill the gaps • Needed especially since mobility APIs are not there yet… • For guidance see the maemo for mobile document in http://wiki.forum.nokia.com/index.php/Qt_for_Maemo_Developers_Guide • LibLocation • LibCityinfo • MCEDev • ICD2
  41. 41. Create a debian package and install it to the device It ain’t black magic after all!
  42. 42. Installing the application on the device • For real world distribution debian package is needed (in real life for end users): • Debian package = application installer package like SIS files in Symbian world • Repositories – maemo.org • Ovi store • In development phase – for us geeks only • Transfer the application binaries (or even the full debian package) to a device • Ssh • USB • (or why not from some repository..)
  43. 43. Packaging Qt app for maemo • Maemo uses debian packaging • http://en.wikipedia.org/wiki/Deb_(file_format) • http://en.wikipedia.org/wiki/Debian • Anatomy of a debian package : http://video.google.com/videoplay?docid=- 6726522426109060914# • To get an applications installed to a maemo device and icon visible in the desktop you need a debian package 1. Handcraft it in “5 minutes“ • http://wiki.forum.nokia.com/index.php/Creating_Debian_packages_for_Maemo_Qt_application s_and_showing_in_the_application_menu 2. Or use dh_make to make the package sceleton • http://wiki.maemo.org/Packaging_a_Qt_application 3. Or use ESBOX IDE [sorry; no time today to check that one today] • http://esbox.garage.maemo.org/index.html • Later on we will have the support in Qt Creator
  44. 44. I got it done... So can you! Debian package Handcraft it in “5 minutes“ http://wiki.forum.nokia.com/index.php/Creating _Debian_packages_for_Maemo_Qt_applications_a nd_showing_in_the_application_menu Debian package DEBIAN - control file USR Bin - the app (ARMEL) LIB share applicationshildon - desktop file pixmaps - the icon dpkg-deb -b collidingMiceApplication
  45. 45. Installing the package • Once the debian package is manually transfered to device you need to install it sudo gainroot dpkg -i package.deb • After this if you have the desktop file and icon functioning you will see the app in application menu (go to ’more…’, you’ll see it next to X terminal) icon Me did it!
  46. 46. Making it easy for you • All you (will) need is Qt creator – no SDKs ;) • No need to even specify debian package • Once integrated with Remote Device Access you won’t even need a device! • http://www.forum.nokia.com/rda • No promises here about anything though… • Would you like us to make this tool available for you?
  47. 47. Time to laugh at Nokia engineers while they embarrass themselves…
  48. 48. •Big hand for Sami ”the wizard” Viitanen • the floor is yours - and soon the the roof, the roof, the roof is on fire ;)
  49. 49. Did you like the meal? Let’s have something sweet to end with... Choose hybrid and get the best of both worlds
  50. 50. 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
  51. 51. 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
  52. 52. Hybrid apps - meaning for maemo • With no WRT in maemo (yet) hybrid apps are one way for a web developer to utilize existing skills to make apps for maemo • Take existing widgets to maemo as Qt hybrid apps • Check out”Nokia, Qt and the Internet” - today 17:15 in Qt labs, Jukka Blomberg (MU), Oren Levine (SF) • Stay tuned – more news in Symbian expo (Tuesday 27th Oct) • 14:00 - 14:30 Next Generation Hybrid Applications – Utilizing your Web Development Skills with Qt based Solutions Mr Pekka Kosonen, Head of Technology Development, Forum Nokia
  53. 53. i.e what the heck was the dude talking about?
  54. 54. Nokia + Ovi Developer Story | 61 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
  55. 55. Qt for maemo • Maemo is and will be very important platform for Nokia • Qt 4.6 will be officially supported on maemo 5 • Maemo 6 is built on Qt • With Qt and mobility APIs you can make true mobile applications that work accross different platforms • Develop now! • How to get information when official releases are coming • Distribute when Qt 4.6 for maemo is ready - Q1 2010! http://qt.nokia.com/maemo Slides will be available in http://www.slideshare.net/pkosonen
  56. 56. Forum Nokia in Qt dev days • Tech geeks: • Pekka Kosonen • Sami Viitanen • Eero Bragge • Tapio Tolvanen (maemo) • Seppo Pakarinen • Business development and marketing • Anthony Fabbricino • Jarkko Tolvi • Janaina Pilomia • Sami Pippuri • FN hang around place is in the lobby – 2nd floor, left from the stairs – come chat with us • Stay tuned for these presentations in Qt labs: • Nokia, Qt and the Internet (Jukka Blomberg (MU), Oren Levine (SF)) – today 17:15 • The Mobility Project (Alex Luddy) - tomorrow 9:00 • Hands On with Qt for Symbian: Demo Session Tino Pyssysalo, Digia – tomorrow 10:15 Slides will be available in http://www.slideshare.net/pkosonen
  57. 57. http://maemo.org/ http://qt.nokia.com/ Thank you very ma ny! Questions? pekka.kosonen@n okia.com 64 Slides will be available in http://www.slideshare.net/pkosonen