Axa Assurance Maroc - Insurer Innovation Award 2024
Â
Qt For Maemo - getting to the fast-lane (v2)
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. 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. Qt, maemo, Ovi store, Forum Nokia…
Slides will be available in http://www.slideshare.net/pkosonen
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. The importance of the
developer to Nokia
Nokia’s success with it’s
devices and services
strategy comes from
3rd party innovation!
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. 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. 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. 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. maemo.org – the
21.000 registered users
community for
900 hosted projects
innovation on
Maemo.
October 2009
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. Let us sell your app through Ovi store to
hundreds of millions of users!
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
18. Appetizers are over - Motivated? Time for the main course
- Walking through powerpoint marshmallow!
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. 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. 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. 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. 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
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. 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. 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. 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. 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
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. Development environment - the big picture
Virtual machine
Linux
Scratchbox
Maemo SDK Targets
Armel
Qt
X86
Hildon
Xephyr X Server
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. 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. 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. 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. 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. 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. 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. 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. Create a debian package and install it to the device
It ain’t black magic after all!
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. 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. 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. 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. 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. Time to laugh at Nokia engineers while they
embarrass themselves…
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. Did you like the meal? Let’s have something sweet to end with...
Choose hybrid and get the best of both
worlds
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. 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. 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
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. 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. 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. 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